要实现以下的几个步骤,数据集已经有了,请高手们可以介绍下相关的函数吗?
halfyear_vector=data.frame(hsi_ir_h_ts,cenlhkl_ir_h_ts,m2_h_ts,ue_h_ts,cpi_h_ts,exp_h_ts,gdp_h_ts)
halfyear_vector=ts(halfyear_vector,start=c(1995,1),frequency=2)
halfyear_vector
plot(halfyear_vector,plot.type="single",lty=1:7,col=1:7)
title("key indicators")
legend("topleft",c("hsi_ir_h_ts","cenlhkl_ir_h_ts","m2_h_ts","ue_h_ts","cpi_h_ts","exp_h_ts","gdp_h_ts"),lty=1:7,col=1:7)
#稳定性检验
for (i in 1:7)
{
print(kpss.test(halfyear_vector[,i],null="Level"))
print(kpss.test(halfyear_vector[,i],null="Trend"))
print(kpss.test(diff(halfyear_vector[,i]),null="Level"))
print(kpss.test(diff(halfyear_vector[,i]),null="Trend"))
}
#需求一:进行ADF检验
#格兰杰因果检验
granger.test(halfyear_vector,p=7)
#需求二:进行指标共线性判断
#需求三:进行VAR阶数判断
#VAR模型拟合
halfyear_VAR=VAR(halfyear_vector,p=3,type="both")
halfyear_VAR
#需求四:价模型的稳定性、自相关性,异方差检验
#需求五:导出VAR模型
#VAR模型预测
halfyear_VAR_Predict=predict(halfyear_VAR,n.head=1,ci=0.9999)
plot(halfyear_VAR_Predict)
#需求六:计算95%,99%,99.9%分位数的预测取值
------------
DM小菜鸟
本帖最后由 DM小菜鸟 于 2015-2-26 15:27 编辑
1. 用tseries包里面的adf.test()
2. 可以计算X矩阵的秩qr(X)$rank,如果不是满秩的,说明其中有Xi可以用其他的X的线性组合表示;也可以计算条件数kappa(X),k<100,说明共线性程度小,如果100<k<1000,有较强的多重共线性,k>1000,存在严重的多重共线性。可以进行逐步回归,用step()命令,比如你一开始的模型是fm,step(fm)就可以了
3. adf.test()里面就可以设滞后项的判断,adf.test(x, alternative = c("stationary", "explosive"),
k = trunc((length(x)-1)^(1/3)))
AIC准则——
计算AIC统计量,模型的残差平方和(SS)除以样本容量(n),再取对数,加上2倍的解释变量个数(k)除以样本容量.
AIC=log(SS/n)+2*k/n
寻找某一k值是AIC达到极小值,则k就是最优滞后阶数。
SC准则——
SC=log(SS/n)+log(n)*k/n
4. R里有两种检验方法是常用的,LiMcLeod{portes}可以进行多元的Portmanteau Q检验。。。protest{portes}可以进行一元的Portmanteau Q检验,把函数中的参数SquaredQ=T
还可以把序列平方之后再检验自相关性。。。也相当于进行了异方差检验。。。
自相关检验可以通过ACF图,函数是acf{stats},或者单位根检验ur.df{urca}进行ADF检验或者ur.pp{urca}进行PP检验,或者进行白噪声检验Box.test{stats},相当于检验了序列的二阶自相关性。。。
{}里面的是package的名字