小弟在做一个rolling的code,regressors是by_1,by_2….一直到by_120,总共有50个(下标不是连续的自然数,所以是50,而不是120,实际是by_1一直到by_30,然后是by_33到by_66,间隔为3;之后是by_72到by_108,间隔是6,最后一个是by_120),然后dependent variable是y_cpi_1,现在想用rolling 做recursive的回归并且得到每个预测值,最终得到一个预测值的序列,时间是从t=1970m1 到2009 m12,取的estimation period 是1970m1到1984m12,剩下是用来和预测值序列比较的真实数据(月度的数据),总共有480个观测值,t =1,…,480。
我的ado文件是这样写的
program define myforecast_OLS, rclass
syntax [if]
regress y_cpi_1 by_* `if'
summ date if e(sample)
local last = r(max)
local fcast = _b[_cons]
foreach num of numlist 1/30 33(3)66 72(6)108 120 {
local fcast = fcast + _b[by_`num']*by_`num'[`last']
}
return scalar forecast = `fcast'
return scalar actual = y_cpi_1[`last'+1]
end
然后就在stata的命令窗口里输入
rolling forecast=r(forecast) actual=r(actual), recursive window(180): myforecast_OLS
但是stata报错,显示
fcast not found
an error occurred when rolling executed myforecast_OLS
我觉得很迷惑,我在ado文件里面已经明确定义了local fcast这个local variable了啊,不知道到底错在哪里?请教连老师,非常感谢!


雷达卡




京公网安备 11010802022788号







