【问题标题】:Stata timeseries rolling forecastStata时间序列滚动预测
【发布时间】:2021-04-25 11:19:15
【问题描述】:

我是 Stata 的新手,对它的命令语言有疑问。我想使用我的 ARIMA 模型进行预测,即使用 x[t], x[t-1]... 生成估计值 xhat[t+1],然后前滚一个时间步长,进行下一次预测,每 N 个时间步重建模型。

我可以复制代码,比如下面的 T、T+1、T+2 等代码:

 arima x if t<=T, arima(2,0,2)
 predict xhat

生成一系列 xhats 以与样本内 x 观察值进行比较。在命令语言中必须有一种更自然的方式来执行此操作。任何建议,指针将不胜感激。

【问题讨论】:

  • 确实:arima 的帮助将您指向 rolling 作为前缀命令。

标签: time-series stata


【解决方案1】:

发布由 Stata 技术支持提供的工作解决方案:

webuse dfex
tsset month
generate int id = _n

capture program drop forecarima
program forecarima, rclass
        syntax [if]
        tempvar yhat
        arima unemp `if', arima(1,1,0)
        local T = e(tmax)
        local T1 = `T' + 1
        summarize id if month == `T1'
        local h = r(max)
        predict `yhat', y dynamic(`T')
        return scalar y = unemp[`h']
        return scalar yhat = `yhat'[`h']
end

rolling unemp = r(y) unemp_hat = r(yhat), window(400) recursive ///
        saving(results,replace): forecarima 
use results,clear
browse

这提供了预测和观察到的输出。日期差了一步,但更容易进行后期处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2018-09-22
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多