楼主: wyy19860530
2782 5

[Stata初级班] 关于rolling 命令调用ado文件的问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

7%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
892 点
帖子
59
精华
0
在线时间
164 小时
注册时间
2007-4-18
最后登录
2018-12-19

楼主
wyy19860530 在职认证  发表于 2011-2-26 14:18:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
小弟在做一个rollingcoderegressorsby_1,by_2….一直到by_120,总共有50个(下标不是连续的自然数,所以是50,而不是120,实际是by_1一直到by_30,然后是by_33by_66,间隔为3;之后是by_72by_108,间隔是6,最后一个是by_120),然后dependent variabley_cpi_1,现在想用rolling recursive的回归并且得到每个预测值,最终得到一个预测值的序列,时间是从t=1970m1 2009 m12,取的estimation period 1970m11984m12,剩下是用来和预测值序列比较的真实数据(月度的数据),总共有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了啊,不知道到底错在哪里?请教连老师,非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:rolling ado文件 roll do文件 Lin 文件 命令 ado rolling

沙发
arlionn 在职认证  发表于 2011-2-26 16:24:35
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']
*
* 上面那句应该修改为:
local fcast = `fcast' + _b[by_`num']*by_`num'[`last']

}

return scalar forecast = `fcast'

return scalar actual = y_cpi_1[`last'+1]
end
本文来自: 人大经济论坛 统计软件培训班VIP答疑区 版,详细出处参考:http://www.pinggu.org/bbs/viewth ... 1&from^^uid=40938

藤椅
wyy19860530 在职认证  发表于 2011-2-27 03:23:29
2# arlionn

非常感谢老师的解答,我已经照您说的进行了修改,但是现在的问题是我无论rolling window里面的数字是多少,60,120,180我都试了,或者有没有recursive的设置,发现每次都是从当last period 是2000m2的以后,actual value 和forecast都是缺失值,我仔细看了我的原始数据,从1970m1-2009m12(monthly data),没有发现异常情况,所以我猜测问题是不是出在命令的设置了window(180)的,所以导致后面的窗口数不到180,如果想样本的变化是从1970m1-1984m12, 1970m1-1985m1, 1970m1-1985m2,。。。1970m1-2009m12, 同时产生一个(480-n+1)*1(n是window的数字)的预测值序列,应该如何修改rolling命令呢,谢谢了

板凳
arlionn 在职认证  发表于 2011-2-27 08:43:07
我下周三答复你。

报纸
wyy19860530 在职认证  发表于 2011-3-4 02:09:35
自己顶一下

地板
wyy19860530 在职认证  发表于 2011-3-6 00:50:35
连老师我发现不管我用多少window,也不管我是rolling还是recursive的设置,每次都会发现最后的120(数目是固定的!)个actual value 和forecast都是缺失值,和我所选取的数据的时间范围也没有关系,这个可能是什么原因啊?谢谢老师了。。。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 11:31