对于你的情况,推荐一款免费软件,Jmulti。可视化的操作,做起来比较方便。如果非得用要R做。
require(vars)
data<-ts(cbind(x1,x2,x3),start=c(2008),frequency=1,class="mts")
ADF检验:
adf_func <- function(x){
t<-x #t <- diff(x,lag=1,diff=1)
my_adf_trend<- ur.df(t,type="trend",lags=2,selectlags="BIC")
print(summary(my_adf_none))
my_adf_drift<- ur.df(t,type="drift",lags=2,selectlags="BIC")
print(summary(my_adf_trend))
my_adf_none<- ur.df(t,type="none",lags=2,selectlags="BIC")
print(summary(my_adf_drift))
}
lapply(data,adf_func)
granger test:
gtest_func <- function(z,data,lagoder){
x <- names(data)[z[1]];y <- names(data)[z[2]];print(paste(x,y,sep="~"))
grangertest(data[,x],data[,y],order=lagoder)
}
comb <- combn(1:3,2)
apply(comb,2,gtest_func,data=data,lagoder=...)
comb <- combn(3:1,2)
apply(comb,2,gtest_func,data=data,lagoder=...)
cointeger test:
ci_real_max<- ca.jo(data,type="eigen",ecdet="trend",spec="transitory");summary(ci_real_max)
ci_real_max<- ca.jo(data,type="eigen",ecdet="const",spec="transitory");summary(ci_real_max)
ci_real_max<- ca.jo(data,type="eigen",ecdet="none",spec="transitory");summary(ci_real_max)
ci_real_trace<- ca.jo(data,type="trace",ecdet="trend",spec="transitory");summary(ci_real_trace)
ci_real_trace<- ca.jo(data,type="trace",ecdet="const",spec="transitory");summary(ci_real_trace)
ci_real_trace<- ca.jo(data,type="trace",ecdet="none",spec="transitory");summary(ci_real_trace)
VAR:
var_out<-VAR(data,p=1,type=c("none"),ic=c("SC"),lag.max=2)
最后:不负责能运行,如果有error发生,看帮助调参数
|