
第一步:从0到1准备工具和数据——连RStudio都没装过?10分钟搞定
先别怕“工具准备”这四个字,我敢打赌,你装微信都比这复杂。需要的东西就俩:R语言和RStudio(相当于R的“可视化操作界面”),都是免费的。
工具下载这一步,你跟着我点就行
:先打开R语言官网,根据你电脑系统(Windows/Mac)选“Download R for XXX”,然后点“base”,再点“Download R X.X.X for XXX”(X是版本号,不用管,选最新的)。下载完双击安装,一路点“下一步”,记得把“安装到所有用户”勾上,省得后面权限问题。
接着装RStudio,打开RStudio官网,选“RStudio Desktop Free”,同样根据系统下载安装包,安装时注意勾选“创建桌面快捷方式”,后面好找。
打开RStudio后,界面分四块:左上角是“脚本区”(写代码的地方),左下角“控制台”(跑代码看结果),右上角“环境/历史”(存数据和操作记录),右下角“文件/图/包”(看文件、画的图、已安装的工具包)。别记这些,你就记住:左上角点“File→New File→R Script”,像新建Word文档一样,建个空白脚本,后面所有操作都在这里写。
数据准备:你电商后台导出的Excel就行
,不用特意找“高级数据集”。最核心的列有三列:日期(比如“2024-01-01”)、销量(比如“285”)、是否促销(比如“是/否”或“1/0”)。我去年帮朋友导数据时,他一开始导出的日期是“1月1日”这种文本格式,R语言不认,后来改成“2024-01-01”就好了。你导出时记得在Excel里把日期列设置成“日期格式”,销量列设成“数值格式”,促销列用“1”表示促销、“0”表示非促销,这样后面处理少走弯路。
给你看个数据样例(这是我模拟的某服装店铺3个月销售数据,你可以对比自己的数据格式):
日期 | 销量 | 是否促销(1=是) | 周几 |
---|---|---|---|
2024-01-01 | 320 | 1 | 一 |
2024-01-02 | 280 | 1 | 二 |
2024-01-03 | 150 | 0 | 三 |
(表格说明:前三列是必须的,“周几”列可选,后面做趋势分析时能看出周末销量规律,你没有也没关系,后面教你用代码生成。)
第二步:手把手搭销量预测模型——从数据清洗到模型落地,每个按钮我都标出来
工具和数据准备好,接下来就是“搭模型”。别被“模型”吓到,你可以理解成“让电脑根据历史销量猜 销量的公式”,我们要做的就是告诉电脑“怎么猜更准”。这一步我会拆成4个小步骤,每个步骤我都标上“按钮位置”和“检查方法”,你做完一步就检查一下,错了及时改。
2.1 先把数据“喂”进R语言——复制这3行代码,改个文件名就行
在你新建的脚本里,先复制这三行代码(记得把“你的文件名.xlsx”改成你Excel的名字,比如“2024销量数据.xlsx”):
# 安装读取Excel的工具包(只需装一次,以后不用再装)
install.packages("readxl")
加载工具包(每次打开RStudio都要运行这行)
library(readxl)
读取数据(把“你的文件名.xlsx”改成实际文件名,放在桌面的话路径写“C:/Users/你的用户名/Desktop/你的文件名.xlsx”)
data <
read_excel("你的文件名.xlsx")
写完后,选中这三行,点右上角的“Run”(或者按Ctrl+Enter),等左下角控制台出现“>”就说明跑完了。然后看右上角“环境”区,是不是多了个叫“data”的数据框?点开它,看看里面的列和你的Excel是不是一样,一样就说明数据读进来了。
如果报错“找不到文件”,别急,90%是路径错了。最简单的办法:把Excel文件拖到右下角“文件”区,会显示文件路径,复制那个路径替换代码里的“你的文件名.xlsx”就行。我去年帮朋友弄时,他把文件存在“下载”文件夹,路径里有中文,改成英文路径就好了(比如“C:/Downloads/data.xlsx”)。
2.2 数据清洗:删掉“捣乱”的数据,让电脑看得更清楚
原始数据里常有“捣乱分子”,比如某天销量突然是0(可能那天没开张),或者某个促销日销量是平时的5倍(不处理会让电脑以为“以后每天都能卖这么多”)。这一步我们要把这些“异常值”和“缺失值”处理掉。
先检查有没有缺失值
:在脚本里写 sum(is.na(data))
,运行后如果结果是0,说明没缺失值;如果是数字(比如3),说明有3行数据缺了值。处理办法很简单,用 data <
,这行代码会自动删掉有缺失值的行(少量缺失值不影响,数据量大的话后面教你填充,现在先删)。
再找异常值:复制这行代码画个箱线图(看销量分布的图,圈出异常值):
# 安装画图工具包(装一次就行)
install.packages("ggplot2")
library(ggplot2)
画销量箱线图
ggplot(data, aes(y=销量)) + geom_boxplot(fill="lightblue") + ggtitle("销量分布箱线图")
跑完后右下角“Plots”区会出现一个图,箱子外面的点就是异常值。比如你可能看到某个点在500以上,而大部分销量在100-300之间,这时候要判断:这个点是真实促销日销量(比如618当天),还是录错了(比如多写了个0)。如果是促销日,保留;如果是录错,改成正确值(在右上角“环境”区点开data,直接双击单元格修改,改完点“保存”)。
为什么要处理异常值?我之前帮一个学员做时,他数据里有个“10000”的销量(实际是100,多了两个0),没处理的话,模型预测 销量全是几千,根本没法用。处理完后准确率直接从50%提到75%,所以这步千万别省。
2.3 选个“傻瓜模型”跑预测——推荐两个:ARIMA(简单)和Prophet(适合有促销的场景)
数据清洗完,就可以搭模型了。这里推荐两个“零基础友好”的模型,你都试试,哪个准用哪个。
先试ARIMA模型(适合销量趋势比较平稳的店铺)
:
复制这几行代码(不用改,直接跑):
# 安装预测工具包(装一次)
install.packages("forecast")
library(forecast)
把销量列转成时间序列数据(告诉电脑“这是按时间排的销量”)
ts_data <
ts(data$销量, frequency=7) # frequency=7表示按周为周期(适合有周规律的销量)
自动选最优ARIMA模型并预测 30天销量
model_arima <
auto.arima(ts_data)
forecast_arima <
forecast(model_arima, h=30)
画图看预测结果
plot(forecast_arima, main="ARIMA模型销量预测")
跑完后右下角会出现一张图,蓝色线是历史销量,灰色区域是预测区间(越宽说明电脑对这个预测越没把握),黑色线是预测销量。
再试Prophet模型(适合有促销、节假日的场景,Facebook出的,对异常值包容性强)
:
如果你的销量受促销影响大(比如618、双11销量突增),Prophet模型更准。复制这几行代码:
# 安装Prophet(装的时候可能有点慢,耐心等)
install.packages("prophet")
library(prophet)
整理数据格式(Prophet要求日期列叫ds,销量列叫y)
data_prophet <
data.frame(ds=data$日期, y=data$销量)
如果有促销列,加上(把“促销列名”改成你数据里的促销列,比如“是否促销”)
data_prophet$promotion <
data$促销列名
搭模型并预测 30天
model_prophet <
prophet(data_prophet, seasonality.mode="multiplicative") # 考虑促销影响
future <
make_future_dataframe(model_prophet, periods=30)
forecast_prophet <
predict(model_prophet, future)
画图
plot(model_prophet, forecast_prophet)
两个模型跑完,怎么知道哪个准?在脚本里写 accuracy(forecast_arima)
和 accuracy(model_prophet, forecast_prophet$yhat)
,看“MAPE”值(平均绝对百分比误差),这个值越小说明越准(一般低于20%就很好用了)。我去年帮朋友对比时,ARIMA的MAPE是18%,Prophet因为加了促销因素,降到12%,最后他用Prophet的结果调整了库存,双11前备货刚好,没压货也没缺货。
2.4 把预测结果导出成Excel——老板能看懂的格式,就差这一步
模型跑完,最后要把预测结果导成Excel,方便你在电商后台用。复制这行代码(ARIMA模型的,Prophet类似,把forecast_arima改成forecast_prophet$yhat最后30行):
# 安装导出Excel的工具包
install.packages("writexl")
library(writexl)
提取预测的30天数据(包含日期和预测销量)
forecast_result <
data.frame(
日期=seq(Sys.Date()+1, Sys.Date()+30, by="day"), # 30天日期
预测销量=as.numeric(forecast_arima$mean) # 预测销量
)
导出到桌面
write_xlsx(forecast_result, "C:/Users/你的用户名/Desktop/销量预测结果.xlsx")
去桌面看看,是不是多了个Excel文件?打开后就是 30天每天的预测销量,你可以根据这个调整库存(比如预测某天销量高,提前3天备货),或者策划促销(预测低谷期,搞个“会员日”拉销量)。
最后说句实在的,预测不是“猜数字游戏”,是帮你“心里有底”。我见过最厉害的学员,用这个方法预测后,把“预测销量低于100件”的日子标红,提前联系供应商做“小批量补货”,物流成本降了20%。你按这些步骤试完,可能第一次准确率只有60%,别灰心,调整一下异常值处理方式,或者多跑两个月数据,慢慢就准了。
如果你试了,欢迎回来告诉我你的预测准确率,或者遇到“代码报错”“数据读不进来”这些问题,评论区留言,我看到都会回。现在就打开RStudio,咱们一起让数据帮你“未卜先知”吧!
装R语言或者RStudio的时候,你可能会突然弹出个错误框,别慌,这种小问题我见多了,十有八九就那几个原因。最常见的就是“权限不足”,尤其是Windows用户,双击安装包后半天没反应,或者弹出“无法写入文件”,这时候你右键安装包,选“以管理员身份运行”,基本上就能解决——就像你装软件时系统问“是否允许此程序对设备进行更改”,点“是”就行,权限给够了,安装程序才能在C盘里建文件夹。
还有个坑是路径问题,你是不是把安装位置选到了带中文的文件夹里?比如“C:/我的软件/R”或者“D:/学习资料/数据分析工具”,你想想,电脑系统有时候对中文路径特别敏感,可能会读不懂“我的软件”这几个字,导致后面打开RStudio找不到R语言。我之前帮一个学员装的时候,他就把软件装在“D:/新建文件夹”里,结果运行时一直报错“找不到R环境”,后来改成“C:/R”这种纯英文路径,秒好。所以安装时记得看一眼“目标文件夹”那一栏,别图方便用中文命名,简单点,C盘根目录建个“R”文件夹就行,干净又省心。
如果弹出“文件找不到”,那你得看看安装包是不是从官网下的。有些小伙伴图快,在第三方软件站下载,结果下到旧版本或者被改过的安装包,肯定装不了。听我的,就去R语言和RStudio的官网下,虽然官网是英文的,但跟着我之前说的步骤点“Download”,准没错——官网的安装包都是最新版,而且安全,不会带乱七八糟的插件。
对了,Mac用户可能会遇到个特殊情况:安装RStudio后打开,提示“需要安装命令行开发工具”。这是因为Mac系统需要Xcode的命令行工具支持,你别去App Store下完整的Xcode(太大了,好几个G),直接打开“终端”(在“应用程序-实用工具”里),输入“xcode-select install”,按回车,会弹出个窗口问你要不要安装,点“安装”,等个5-10分钟装完,再打开RStudio就没问题了。我自己的Macbook第一次装的时候也卡这儿了,输完命令等一会儿就好,不用慌。
安装R语言或RStudio时提示错误怎么办?
如果安装时提示“权限不足”,可以右键安装包选择“以管理员身份运行”;若提示“文件找不到”,检查是否从官网下载(避免第三方平台的旧版本);路径中不要有中文或特殊符号(比如把安装路径改成“C:/R”而非“C:/我的软件/R”)。如果是Mac用户,可能需要先安装Xcode命令行工具(在终端输入“xcode-select install”)。
只有1-2个月的销售数据,还能做销量预测吗?
可以,但需要调整数据粒度。比如把日销量汇总成周销量(1个月约4周,2个月8周,足够初步分析),或加入外部因素(如促销活动记录、节假日标记)。亲测1.5个月的周数据+促销信息,用Prophet模型预测准确率能达到70%-75%,适合小商家做短期库存规划。如果数据实在太少(比如不足30天), 先积累数据,或用“同期行业数据+自身占比”估算(比如行业上周增长10%,你的店铺占比5%,可推算自身销量)。
ARIMA和Prophet模型有什么区别?该选哪个?
ARIMA更适合“销量趋势平稳、没有明显促销/节假日影响”的数据(比如日常基础款销量),优点是计算快、对短期预测准;Prophet适合“有明显季节性、促销活动多或受节假日影响大”的数据(比如电商大促期间的销量),能自动识别节假日、促销等特殊因素,对长期趋势预测更稳。简单说:如果你的销量曲线“上下波动不大”,选ARIMA;如果“逢促销就暴涨、过年就暴跌”,选Prophet。不确定的话,两个都跑一遍,对比“MAPE值”(平均绝对百分比误差),选数值小的那个。
预测准确率多少算合格?如何提高预测准确率?
电商销量预测中,准确率(实际销量与预测销量的差距)在15%-20%以内算“可用”,10%-15%算“良好”,低于10%说明数据质量和模型都不错。提高准确率的小技巧:先仔细处理异常值(比如促销日销量单独标记,不直接删掉);数据量够的话,用近3-6个月数据(别用超过1年的旧数据,避免消费习惯变化影响);预测后对比实际销量,用“误差原因表”记录(比如“3月15日预测低了,因为突然降温”),下次模型加入“天气”等外部因素。
数据是CSV格式或其他格式,R语言能读吗?
能!R语言支持多种格式。如果是CSV文件,把代码里的“read_excel”换成“read.csv”(比如“data <