我是一名本科生,刚开始学习时间序列和R语言,希望得到一些帮助。我想请教关于markov switching autoregressive model的问题。模型来自
Hamilton,1994《Time Series Analysis》第22章,基于这个模型我想找到R语言中现有的程序包,于是我找
到了一个“MSwM”,但是拟合的时候遇到了困难。
- #这段程序来自“MSwM”程序包里的"MSwM examples.pdf"。
- library(MSwM)
- data(example) #内置数据集,包含两个变量x,y
- plot(ts(example))
- mod=lm(y~x,example)
- summary(mod)
- mod.mswm=msmFit(mod,k=2,p=1,sw=c(T,T,T,T),control=list(parallel=F))
- summary(mod.mswm)
问题是:msmFit()拟合之前一定要做一步lm()吗?我想对序列y建立自回归,但又没有外生变量x。然后我想了这
么个办法,就是把序列y截取一下构造成延迟1234阶的序列,然后用lm(y0~y1+y2+y3+y4)进行回归。
#这回换了个数据。
- library(MSBVAR)
- data(HamiltonGDP)
- x<-HamiltonGDP
- y<-numeric(130)
- for(i in 1: 130){ y[i] <- x[i] }
- y0<-y[5:130]
- y1<-y[4:129]
- y2<-y[3:128]
- y3<-y[2:127]
- y4<-y[1:126]
- y.lm<-lm(y0~y1+y2+y3+y4)
- summary(y.lm)
- y.msm<-msmFit(y.lm,k=2,sw=c(T,F,F,F,F),p=4,control=list(parallel=F)) #这一步一直报错,没找出原因。
我猜想是sw=c(T,F,F,F,F)的问题,其中的TF表示回归系数是否发生转换,我始终找不出原因。恳请了解这个模型或程序包的前辈解答,谢谢。


雷达卡




京公网安备 11010802022788号







