如何获得塔塔生产动态预测使用滞后的结果作为回归的时候?(How to get Stata to pr

2019-10-20 07:59发布

我目前正在处理难熬非常小的数据集(20个观察,我知道这是可怕的)。 但是,我需要以某种方式预测出的值。 当我只是回归时间对因变量,我能得到一个预测,但是当我添加或滞后变量求差不预测超过一年的未来。 这是由于有过一些意见?

这里是我的上下文代码。 这两条线都在本发明的数据更好的拟合预测注释掉结果,但只生成一个将来预测。

use "scrappage.dta", clear

drop if year == 1993

tsappend, add(12)

tsset year, y

reg scrappagerate year

*reg scrappagerate year l.scrappagerate l2.scrappagerate

*reg scrappagerate year d.scrappagerate d2.scrappagerate

predict p

predict yp if year>year(2013)

tsline yp p scrappagerate

很抱歉,如果这是一个愚蠢的问题,这是采用Stata预测值我的第一次。

Answer 1:

看看这里的答案和解释。 从本质上讲,你可以使用arima估计没有AR或MA组件模型(这应该是等同于OLS reg ),并创建动态/递归的预测:

arima y L(1/2).y, hessian
predict y_dynhat, dyn(tm(2011m2)))

只需更换2011平方米与任何地方你观察到的Y实际每月最后日期。 黑森州选项将强制标准误差更紧密地匹配OLS。

你可以考虑在你的数据的统计信息的网站 ,看看乡亲们有更好的造型建议,OLS。



Answer 2:

这是你的问题:

你只获得一个预测的原因无关与预测功能,但您的数据的性质。 比方说,你有N意见。 在你的情况,你所用tsappend, add(12)使得它让你有N+12的意见。 而你l1.y滞后变量将向下进行到N+1个行。

塔塔的predict功能将预测所有非缺失的数据,其中有可用的预测。 因此,由于你的独立变量, l1.y是在填充N + 1行中,将的Stata预测观察。 (同样, predict将无法预测第一观察,因为你的滞后预测将会丢失。)

这里是您的解决方案:

为了在Stata使用OLS回归以获得动态预测,则需要此喂N+1个预测到的X矩阵和使用回归系数矩阵来预测N+2观察。 然后迭代。

* Example of how to do dynamic prediction using OLS regression and lagged variables
clear
set obs 12
gen time = _n
gen y = rnormal(100,100)

tsset time
tsappend, add(12)
gen y_lag1 = l1.y

* Establish the regression relationship and save the coefficients
regress y y_lag1
matrix a = r(table)'
matrix beta = a[1..2,1]

* Predict the N+1 value (notice you have y_lag1 in the 13th row)
predict yhat

* Predict the next values
local lag = 1
forval i = 14/24 {
    local last_y = yhat[`i'-`lag']
    matrix xinput = [`last_y',1]
    * Estimate the next sales
    matrix next_y = xinput*beta
    replace yhat = next_y[1,1] in `i'
}

这相较于使用ARIMA模型(按照Dimitriy五Masterov的评论),你会得到几乎相同的结果。

arima y l1.y
predict yhat_ar, dyn(13)


文章来源: How to get Stata to produce a dynamic forecast when using lagged outcome as a regressor?