我想要达成的目的是:对同一个dta文件中的多个时间序列(var1 var2 var3)分别作garch(1,1)模型,并获得每个garch(1,1)模型的条件方差。
如果不写程序,我分别对三个序列做garch(1,1),以var1 为例,我要输入这些:
arch var1 l(1/3).var1,arch(1) garch(1) nolog
predict h_1,variance
其中l(1/3)中的3,是水平方程的最佳滞后项长度。但是对于var2,其最佳之后项长度为5,那么我要再写:
arch var2 l(1/5).var1,arch(1) garch(1) nolog
predict h_2,variance
显然,应该可以编程解决这个重复问题。在我已经知道3个序列各自对应的最佳长度的前提下(3,5,6),如何一次写程序获得三个garch(1,1,)模型的条件方差h_1,h_2和h_3?
我自己想法,不知道“??”部分如何处理(我已在dta文件中生成了新的序列num,其中num[1]=3;num[2]=5;num[3]=6):
local x "var1 var2 var3"
foreach var of varlist `x'{
local name=substr("`var'",-1,1)
local name2="h_"+"`name'"
arch `x' l(1/??).`x',arch(1) garch(1) nolog
predict `name2',variance
}
谢谢!


雷达卡





京公网安备 11010802022788号







