菜鸟科技网

stata ar命令如何操作?适用场景有哪些?

ARIMA 模型

在深入 arima 命令之前,先要理解它所拟合的模型——ARIMA 模型,ARIMA 代表 Autoregressive Integrated Moving Average,即自回归积分移动平均模型,它由三个部分组成:

stata ar命令如何操作?适用场景有哪些?-图1
(图片来源网络,侵删)
  1. AR (p) - 自回归部分

    • 思想:当前值与其过去 p 期值的线性组合。
    • 公式y_t = c + φ₁y_{t-1} + φ₂y_{t-2} + ... + φ_p y_{t-p} + ε_t
    • 解释y_t 依赖于它自己的滞后项 y_{t-1}, y_{t-2}, ..., y_{t-p}p 是自回归阶数。
  2. I (d) - 积分部分

    • 思想:对原始数据进行 d 阶差分,使其平稳。
    • 解释:如果一个时间序列是非平稳的(有趋势),我们可以通过差分来消除趋势,使其变为平稳序列。d 是差分的阶数。
  3. MA (q) - 移动平均部分

    • 思想:当前值是过去 q 期随机误差项的线性组合。
    • 公式y_t = c + ε_t + θ₁ε_{t-1} + θ₂ε_{t-2} + ... + θ_q ε_{t-q}
    • 解释y_t 依赖于过去的“冲击”或“误差”。q 是移动平均阶数。

ar 命令就是专门指当 d=0q=0 时的情况,即只拟合 AR(p) 模型,而 arima 命令是更通用的命令,可以拟合完整的 ARIMA(p, d, q) 模型。

stata ar命令如何操作?适用场景有哪些?-图2
(图片来源网络,侵删)

arima 命令的基本语法

arima 命令是 Stata 中进行时间序列分析的核心命令。

arima depvar [indepvars] [if] [in] [, ar(numlist) ma(numlist) arch(numlist) garch(numlist) ... options]

参数说明:

  • depvar: 因变量(要建模的时间序列)。
  • indepvars: 外生自变量(可选)。
  • ar(numlist): 指定 AR 项的阶数。ar(1 2) 表示拟合 AR(1) 和 AR(2) 项。
  • ma(numlist): 指定 MA 项的阶数。ma(1) 表示拟合 MA(1) 项。
  • ..., options: 其他选项,如 vce(robust)noconstant 等。

关键选项:

  • arima(p, d, q): 这是更直观的指定模型阶数的方式。arima(1, 1, 1) 等价于 ar(1) ma(1) d(1)
  • vce(robust): 使用稳健的标准误。
  • noconstant: 模型中不包含常数项。
  • predict: 在估计模型后,使用 predict 命令进行预测或获取残差。
    • predict newvar, y: 计算预测值。
    • predict newvar, r: 计算残差。
    • predict newvar, y dynamic(time_constant): 进行动态预测,这在时间序列中非常重要。

ar 命令的语法(简化版)

ar 命令是 arima 的一个封装,语法更简单,专门用于 AR 模型。

stata ar命令如何操作?适用场景有哪些?-图3
(图片来源网络,侵删)
ar depvar [arlist] [if] [in] [, options]
  • depvar: 因变量。
  • arlist: 指定 AR 项的滞后阶数。ar(1/3) 表示包含 AR(1), AR(2), AR(3)。
  • options: 常用选项包括 trend(包含时间趋势)、noconstant 等。

完整操作步骤与实例

下面我们通过一个完整的例子来演示如何使用 arima(即 ar 命令的功能)进行时间序列建模。

第1步:加载数据并检查

我们使用 Stata 自带的 wpi1 数据集,这是一个批发物价指数的时间序列。

// 加载数据
webuse wpi1, clear
// 描述数据
describe
summarize wpi
// 绘制时间序列图,观察趋势和波动
tsset wpi // 将 wpi 设为时间序列数据
line wpi, title("Wholesale Price Index over Time") ytitle("WPI")

你会看到 wpi 序列有一个明显的上升趋势,这意味着它很可能是非平稳的。

第2步:平稳性检验

在建模前,必须检验序列的平稳性,常用的是 ADF (Augmented Dickey-Fuller) 检验

// 对原始序列进行 ADF 检验
dfuller wpi, lag(0) // lag(0) 表示最简单的 ADF 检验

结果解读: ADF 检验的原假设 (H0) 是“序列有一个单位根(即非平稳)”。

  • p-value > 0.05,我们不能拒绝原假设,说明序列非平稳。
  • p-value < 0.05,我们拒绝原假设,说明序列是平稳的。

对于 wpi,你会得到一个很大的 p-value (0.99 左右),证明它是非平稳的。

第3步:差分使其平稳

既然原始序列非平稳,我们对其进行一阶差分。

// 生成一阶差分序列
gen d_wpi = D.wpi
// 对差分后的序列进行 ADF 检验
dfuller d_wpi, lag(0)

d_wpi 的 p-value 应该会非常小(< 0.01),这表明差分后的序列是平稳的,我们确定 d=1

第4步:识别 ARMA 模型阶数 (p, q)

平稳后,我们需要确定 AR 和 MA 的阶数,常用工具是自相关函数图偏自相关函数图

// 绘制 ACF 和 PACF 图
ac d_wpi, lags(12)
pac d_wpi, lags(12)

图解法识别模型

  • ACF (自相关函数):ACF 图“缓慢衰减”,则可能存在 AR 结构,ACF 在滞后 q 阶后“截尾”(突然变为 0),则可能存在 MA(q) 结构。

  • PACF (偏自相关函数):PACF 图“缓慢衰减”,则可能存在 MA 结构,PACF 在滞后 p 阶后“截尾”,则可能存在 AR(p) 结构。

  • ACF 截尾,PACF 拖尾 → MA(q) 模型

  • PACF 截尾,ACF 拖尾 → AR(p) 模型

  • 两者都拖尾 → ARMA(p, q) 模型

观察 d_wpi 的 ACF 和 PACF 图,我们可以尝试拟合一个 AR(1) 模型,因为 PACF 在 lag 1 之后可能有一个“截尾”的趋势。

第5步:拟合模型

现在我们使用 arima 命令来拟合模型,因为我们差分了一次,d=1,我们尝试 p=1q=0

// 拟合 ARIMA(1, 1, 0) 模型
arima d.wpi ar(1), noconstant

命令解释

  • d.wpi:直接对 wpi 的一阶差分进行建模,这等同于设置 d=1
  • ar(1):包含一个 AR(1) 项,即设置 p=1
  • noconstant:因为我们是对差分后的序列建模,且差分序列的均值通常接近于0,所以不包含常数项。

结果解读: Stata 会输出系数表,包括:

  • ARMA 部分:AR(1) 的系数 AR1
  • 系数的 p-value:p-value < 0.05,说明该系数在统计上是显著的。
  • 对数似然值信息准则AICBIC,这些值越小,通常说明模型拟合得越好,可用于比较不同模型。

第6步:模型诊断

一个好的模型,其残差应该是白噪声(即不存在自相关),我们再次对残差进行 ADF 检验。

// 保存残差
predict residuals, r
// 对残差进行 ADF 检验
dfuller residuals, lag(0)

如果残差的 ADF 检验 p-value 非常小(< 0.05),我们就可以认为残差是平稳的,即模型已经充分提取了数据中的信息,没有遗漏的自相关结构。

第7步:预测

使用我们拟合好的模型进行预测。

// 进行样本内动态预测
// dynamic(45) 表示从第45个观测值开始使用预测值而非真实值来计算后续预测
predict wpi_hat, y dynamic(45)
// 绘制真实值和预测值的对比图
line wpi wpi_hat, sort
legend(order(1 "Actual WPI" 2 "Predicted WPI"))

这会生成一张图,直观地展示模型的拟合效果。


ar vs. arima
特性 ar 命令 arima 命令
功能 专门拟合 AR(p) 模型 拟合完整的 ARIMA(p, d, q) 模型
语法 ar depvar arlist arima depvar, ar(#) ma(#) d(#)arima(p, d, q) depvar
灵活性 低,只能处理 AR 模型 高,可处理 AR、MA、ARMA、ARIMA 模型,还可加入外生变量、ARCH/GARCH 效应等
推荐度 不推荐,功能有限 强烈推荐,是 Stata 时间序列分析的标准和强大工具

最佳实践建议

  1. 总是从 arima 开始:即使你只想拟合一个 AR 模型,也使用 arima 命令,arima y, ar(1)
  2. 平稳性是前提:永远不要忘记在建模前检验和确保序列的平稳性(通过差分或其它变换)。
  3. 模型选择是艺术:ACF/PACF 图是很好的起点,但不要完全依赖它们,尝试几个不同的 (p, q) 组合,并用 AIC/BIC 准则进行比较,选择信息准则值最小的模型。
  4. 诊断必不可少:模型拟合后,一定要对残差进行检验,确保它是白噪声,这是判断模型是否有效的最终标准。

分享:
扫描分享到社交APP
上一篇
下一篇