连老师您好,我遇到了如下的问题,我猜测可能是我的preseve, restore的位置有错误,所以才会有报错,请教你了,多谢
第一步,我先定义若干个矩阵(对应于不同的forecast horizons),会将产生的scalar一个个的放到相应的位置上
forvalues i = 1(1)3 {
forvalues j = 0(1)1 {
foreach h of numlist 1 3 6(6)36
{
mat yhat_arima_`i'_`j'_`h' = J(300,1,0)
}
}
}
第二步,分析的变量是d`h’_ln_cpi, 思路是选取不同的样本,estimation period是从obsvations 1-180, 1-181, 1-182,就是recursive的样本,选取过程一直到1-480,在每个样本里,依次估计不同p,q的arima模型,并对每个样本,每个arima模型做预测,每次均将预测的最后一行数值保存为scalar,并最终会放在matrix yhat_arima`i’`j’_`h’
foreach h of numlist 1 3 6(6)36 {
preserve
forvalues k = 1(1)300 {
keep if [_n]<181+`k'
local y "d`h'_ln_cpi"
local a = 3
local b = 1
forvalues i = 1(1)`a'{
forvalues j = 0(1)`b'{
if `j' == 0{
local ma ""
}
else{
local ma "ma(1/`j')"
}
qui arima `y' , ar(1/`i') `ma' vce(robust)
*est store arma`i'`j'
predict y_hat_cpi_arima_`i'_`j'_`h'_`k', xb
}
}
keep if [_n]==181+`k'-1
scalar y_hat_cpi_arima_`i'_`j'_`h'_`k' =
y_hat_cpi_arima_`i'_`j'_`h'_`k'
mat yhat_arima_`i'_`j'_`h'[`k',1]= y_hat_cpi_arima_`i'_`j'_`h'_`k'
}
restore
}
现在的问题是stata报错说y_hat_cpi_arima__1_1 not found,我尝试简化处理,先去掉predict命令以及下面的i,j下标,但是stata始终会报告说insufficient data,对于第一个问题,我不知道是不是因为我的下标过于复杂?对于第二个报错,我在考虑是不是restore, preserve的位置有问题,但是我尝试了其他位置,包括也尝试了snapshot的嵌套,但是还是说insufficient data,不知道对于这两个问题应该如何解决,谢谢连老师!