资讯动态

Eviews时间序列分析实战:ARIMA模型预测销售数据

发布时间:2026/10/17 10:40:51 来源:尧图企业网站定制
在量化分析、销售预测、财务建模这些事情上时间序列分析几乎是无处不在的底层能力。而Eviews作为专门为计量分析设计的工具最大的优点就是操作路径短、结果输出集中特别适合在项目里快速完成从数据检查到模型预测的完整闭环。这篇文章我拿一个标准案例来演示某零售企业2016年1月到2023年12月共计96个月的月度销售额数据目标是基于历史走势建立ARIMA模型并预测未来12个月的销售变化。整个流程会覆盖数据导入、平稳性检验、模型识别、参数估计、残差诊断、样本外预测每一步我都会给出具体的操作路径和判断依据同时把实际使用中容易踩的坑一起说明。无论你是刚接触时间序列的学生还是工作中需要做销量预测、指标监测的分析师这套流程可以直接套用。1. 案例背景与数据准备1.1 案例怎么选销售数据是最合适的练手素材时间序列分析可以用的数据很多GDP、股价、气温、交通流量都能做但销售数据是最适合作为入门实例的。原因有三第一销售数据普遍带有趋势和季节性趋势让ARIMA模型的差分环节派上用场季节性让模型识别环节有看头不会像纯随机数据那样学完觉得没用第二销售数据好理解不需要额外的行业知识就能看懂预测结果是否合理第三销售预测本身就是一个高频业务需求做完能直接用用途非常明确。本例的原始数据结构很简单一张Excel表两列第一列是日期从2016年1月一直到2023年12月每月一行第二列是销售额单位万元。总样本量96个这个规模做月度序列分析是比较理想的既不缺数据量又不用处理超长序列的不平稳问题。1.2 导入Eviews前必做的数据清洗这一步看着不起眼但我在实际项目里见过太多人栽在这里。Eviews导入Excel数据时最挑剔的其实是日期格式。日期列请提前整理成两种通用格式之一标准格式2016-01、2016-02或者2016M01Excel日期格式2016/1/1千万不要直接用2016年1月这种中文混合格式也不要单元格里既有2016-01又有2016/1/1Eviews导入时会报错或者把日期识别成字符型。销售额列要检查两件事缺失值和异常值。月度销售数据里偶尔会出现某个月没有记录或者因促销、盘点等原因数值突然翻倍。对于缺失值如果前后月份波动不大用线性插值填充是可行的如果缺失值集中在几个连续月份宁可把样本区间缩短也不要做太多人工填充。异常值建议先保留等做完时序图再判断是否需要处理因为有些异常恰恰是季节效应的体现。1.3 创建工作文件与导入数据的完整操作打开Eviews后的标准操作路径如下点击菜单File - New - Workfile在Workfile structure type里选择Dated - regular frequency。Frequency选择MonthlyStart date填2016:01End date填2023:12点击 OK。这一步等于先建好了一张96个月的空日历。在工作文件窗口点击File - Import - Import from file选择你的Excel文件。在导入向导中第一列如果是日期列让Eviews按日期类型识别第二列销售额指定一个序列名比如sales。导入完成后工作文件里会出现sales序列双击它可以看数据表点击View - Graph - Line可以看时序图。这里有两点经验供参考。其一导入时如果Eviews提示某个观测值无法识别不用急着删数据多半是日期格式不统一回Excel里清洗比在Eviews里处理高效得多。其二工作文件里的样本范围默认是整段区间后期做样本外预测时需要手动收缩和扩展这个操作后面会详细说明。2. 平稳性检验先确认数据是活的还是漂的2.1 非平稳数据为什么不能直接建模时间序列分析里平稳性是一个绕不开的前提。所谓平稳粗略理解就是序列的均值、方差和自相关结构不随时间变化。更直白的说法是序列的整体形态不会因为起点不同而出现系统性漂移。为什么必须平稳因为如果用非平稳序列做回归很容易出现伪回归——两个本身毫无关系的序列只是因为都在上涨回归出来的R方依然很高、参数依然显著。这个结果放到预测场景里就是灾难。所以平稳性检验不是形式主义它决定了你后面所有结果是否可信。生活化的类比是一个人站在原地你看他的动作规律才能预测他下一步如果他在跑步你得先把他差分成每步的变化量研究变化量的规律才谈得上预测。差分就是让序列从跑步状态回到原地状态的操作。2.2 从时序图判断趋势与季节性第一步永远不是跑单位根检验而是画图。双击sales序列点击View - Graph - Line一张时序图能传达的信息比很多统计量都直观。图中如果出现以下特征需要留意整体向上或向下走有确定性趋势序列大概率非平稳。以年为周期上下起伏月度数据存在季节性比如销售数据每年年底冲高、年初回落。波动幅度随时间扩大方差非平稳后续可能需要考虑对数变换。本例的销售数据画出来之后向上的年度趋势非常明显且每年11月到12月有一个明显的峰值说明原始序列几乎不可能平稳。2.3 ADF单位根检验的操作细节看完图再跑ADF检验才有章法。操作的路径是选中sales序列点击View - Unit Root TestEviews会弹出单位根检验对话框。这里有几个关键选项不能乱选Test type默认是Augmented Dickey-Fuller即ADF检验保持不变。Test for unit root in选择Level即对原始序列做检验。Include in test equation这是最需要判断的选项。如果时序图有明显趋势选择Trend and intercept如果序列围绕某个恒定均值波动选Intercept。Lag length可以交给Eviews自动选择默认按Schwarz信息准则也可以手动指定。ADF检验的原假设是序列存在单位根也就是非平稳。因此判断标准是看p值p值小于0.05拒绝原假设说明序列平稳p值大于0.05不能拒绝原假设说明序列非平稳。本例中sales的ADF检验p值明显大于0.05结果符合预期原始序列不平稳不能直接建模。3. 模型识别与参数估计3.1 ARIMA模型的直觉理解ARIMA这个缩写看着唬人拆开其实很朴素。AR是自回归意思是当前值受过去若干期自身取值的影响MA是移动平均意思是当前值受过去若干期随机扰动的滞后影响中间的 I 是差分次数也就是前面用了几次差分让序列变得平稳。ARIMA(p, d, q) 三个参数的含义可以这样理解p自回归阶数模型会用到最近几期的数据来做预测。d差分次数让序列转为平稳所需的差分阶数。q移动平均阶数模型会参考最近几期的预测误差。拿AR(1)举例公式是 y_t c φ·y_{t-1} ε_t意思是本期值等于常数加上滞后一期值的加权结果再加上一个随机扰动。MA(1)则是 y_t ε_t θ·ε_{t-1}本期值等于当前扰动和滞后一期扰动的组合。实际做模型时p和q的具体数值不是拍脑袋定的有专门的工具来判断。3.2 ACF与PACF定阶的实操判断差分得到平稳序列后需要查看自相关函数图和非偏自相关函数图来判断p和q。操作路径先在工作文件里生成差分序列d_sales d(sales)或者直接把差分公式写进方程打开d_sales序列后选择View - CorrelogramEviews会同时输出两列图左侧是自相关函数ACF右侧是非偏自相关函数PACF旁边还带Q统计量的p值。判断规则是经典的三条如果ACF在若干阶后截尾突然变得不显著通常显示为掉进置信区间内而PACF拖尾逐渐衰减模型以MA为主q取ACF显著的最后阶数。如果PACF截尾而ACF拖尾模型以AR为主p取PACF显著的最后阶数。如果ACF和PACF都拖尾则需要用ARMA模型p和q需要结合信息准则确定。本例的数据做一阶差分后ACF在第一阶处显著之后快速衰减PACF则呈逐渐拖尾的形态初步判断模型为ARIMA(0,1,1)也就是MA(1)。3.3 Eviews中估计ARIMA模型的命令与结果解读估计模型的路径是Quick - Estimate Equation在方程对话框中直接输入d(sales,1) c ar(1) ma(1) ma(2)这里有几个要点需要注意。第一Eviews对方程输入支持直接写差分形式d(sales,1)也可以先用命令生成新序列再估计两者结果一致但是直接写更省事。第二AR和MA项必须写成ar(1)、ma(1)这种小写形式Eviews会识别为滞后算子否则会被当作普通变量造成报错。第三常数项c不是必须的如果常数项的t统计量不显著可以去掉重新估计。估计结果输出表里需要重点关注以下几项每个系数的Prob.值应小于0.05说明参数显著。R-squared和调整后的R方反映的是方程整体拟合度但时间序列模型不必过度追求极高的R方有时过高反而意味着模型过拟合。Durbin-Watson stat接近2说明一阶自相关处理得不错。Akaike info criterion和Schwarz criterion这两个值用于模型横向对比越低越好。4. 诊断检验与模型优化4.1 残差检验判断模型是否捕捉完全参数估计完并不算结束真正验证模型是否合格的是残差检验。残差就是实际值与模型拟合值之差理想情况下残差应该是白噪声也就是没有序列自相关、没有固定模式、均值为零。残差的自相关检验路径在方程输出窗口里View - Residual Diagnostics - Correlogram - Q-statistics。Eviews会画出残差的自相关图并给出每一阶的Q统计量p值。如果所有阶的p值都大于0.05说明残差没有明显的自相关模型已经把数据里的信息提取得比较干净。如果有某阶p值小于0.05就说明残差里还存在信息模型阶数可能需要调整。对于销售数据这类存在波动聚集现象的月度序列还可以顺手做一个异方差检验View - Residual Diagnostics - Heteroskedasticity Test选择ARCH类型。如果检验结果显著说明残差存在条件异方差预测的置信区间可能需要用GARCH类模型修正但对点预测影响不算太大。4.2 信息准则与备选模型横向对比实际操作中我不建议只跑一个模型就下结论而是把几个候选模型全部跑一遍用信息准则横向对比。比如对一阶差分后的序列分别估计d(sales,1) c ar(1) d(sales,1) c ma(1) d(sales,1) c ar(1) ma(1) d(sales,1) c ar(1) ma(2)每个模型输出结果里的AIC和SC记下来做对比表。模型AICSC调整R方残差Q检验p值ARIMA(1,1,0)10.8210.870.450.03ARIMA(0,1,1)10.7610.810.520.18ARIMA(1,1,1)10.7710.840.530.22选择标准很简单在残差都通过检验的前提下AIC和SC越小越好两个指标打架时优先看SC因为它对参数增加的惩罚更严格。上面这组对比里ARIMA(0,1,1)和ARIMA(1,1,1)表现接近前者更节俭所以我会优先选择ARIMA(0,1,1)。4.3 别忘了季节性SARIMA模型怎么扩展前面提到的都是普通ARIMA但如果你的数据带有明显的月度季节性只看差分后的相关图往往不够因为季节效应通常在滞后期12、24的位置还会出现显著峰值。判断季节性的方法很简单查看差分后序列的相关图如果滞后12阶或24阶的ACF值掉出置信区间说明存在季节性。这种情况下普通ARIMA的残差检验通常过不了或者预测结果在年末节点明显偏偏。Eviews里估计季节ARIMA模型也很方便直接写入SAR和SMA项d(sales,1) c ma(1) sma(1)这里的sma(1)表示季节移动平均项默认季节周期是12。扩展成SARIMA(0,1,1)(0,1,1)[12]后很多销售类数据的拟合效果会明显提升尤其是年末节假日前后的峰谷走势能描得更准。5. 预测构建与结果解读5.1 留出样本外数据做真实预测检验时间序列模型最怕的就是事后诸葛亮——样本内拟合得再漂亮样本外预测不行也是白搭。所以正确的做法是建模时不要把96个月全部用完留出一段数据做样本外验证。具体操作流程是双击工作文件窗口的Range区域弹出一个样本范围设置对话框。把样本终点从2023:12临时改为2022:12点击OK。此时工作文件的样本区间变成了2016:01到2022:12共84个月。在调整后的样本上重新估计模型。在方程输出窗口点击Proc - Forecast预测方法选择Dynamic solution预测序列名设为sales_f。预测结束后把样本范围再改回2023:12这时会发现sales_f里已经生成了从2023年1月到12月的预测值。把实际销售额与预测值画在同一个图里曲线形态是否贴合一目了然。这一步是检验模型真本事的关键。5.2 用RMSE、MAE、MAPE评判预测精度Eviews的预测窗口会直接输出几个误差指标不用手动算但知道它们的含义很重要因为业务汇报时你需要解释给别人听。常见的三个指标RMSE均方根误差对较大的误差惩罚更重适合判断模型是否出现极端偏差。MAE平均绝对误差直观表示平均每个月的预测值与实际值偏差多少万元。MAPE平均绝对百分比误差用百分比表示适合不同量级的数据之间做对比。如果12个月的样本外预测的MAPE控制在5%以内情况已经相当理想10%以内可用超过15%就要重新审视模型是否打中了核心模式。还有一个实务经验样本外预测误差指标其实比R方更有参考价值。R方只能说明拟合优度预测误差才是业务上的真金白银。如果两者的结论出现冲突以预测误差为准。5.3 预测结果怎么落到业务判断里预测做完最后一步是解读结果。这里最容易犯的错误是把Eviews输出的置信区间直接当成业务的保证值。时间序列模型的预测置信区间会随预测期拉长而快速变宽这是正常现象不代表模型错了而是说明不确定性在累积。所以在给业务团队汇报预测结果时建议按短期和长期分开表述未来1到3个月的预测值可以作为运营备货的直接参考未来半年以上的预测更适合作为趋势方向的判断依据而不是精确的目标值。同时预测值应当被视为基准线而不是命令值。如果业务部门下个月有大型促销在模型预测的基础上叠加一个促销影响系数这种统计模型业务修正的组合在实际落地中比单靠模型更可靠。6. 常见问题与实测排查技巧速查6.1 高频报错与解决对照表现象常见原因处理方式导入Excel提示日期无法识别日期列格式不统一回Excel统一为2016-01格式Estimate Equation输入ar(1)报错工作文件中存在同名变量检查是否有ar1等干扰变量删除或改序列名预测结果为全零或NaN样本范围未正确设置确认预测起点在估计样本范围内残差Q检验全部显著模型阶数不足或漏了季节项加入SAR/SMA项或提高p/q阶数ADF检验结果与图明显矛盾滞后阶数选择不当手动调整滞后阶数观察结果稳定性6.2 初学者最容易犯的5个习惯性错误第一拿到数据不画图直接跑ARIMA。这种做法最大的风险是漏掉季节性后面模型诊断全部通过但预测结果依然离谱。第二为了追求AIC最小不断加阶数。AIC确实会随着模型复杂度变化但没有业务支撑的复杂模型往往过拟合样本外表现反而变差。第三切换样本范围时忘记重新估计模型。窗口里显示了84个月的估计结果但预测却用了96个月的样本结果自然对不上。第四忽略常数项是否显著。Eviews默认包含常数项但有些差分后的序列常数项不显著保留它只会浪费自由度。第五不预留样本外数据就做预测。这一步省掉的话你永远不知道模型的真实表现后续一切判断都建立在自我感觉良好之上。最后再分享一个实操上的小技巧Eviews做预测时可以同时生成预测序列和置信区间序列如果把它们一并导出到Excel里做折线图和区间阴影汇报时的直观程度会提升很多。这套流程跑下来从原始Excel表到一份带预测值和误差评价的分析报告通常只需要小半天时间。数据和业务形态不同模型细节会变但核心流程是高度稳定的清洗、画图、检验、识别、估计、诊断、预测、复盘每一步都有明确的判断依据这也是时间序列分析作为一门工程而非玄学的地方。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑