楼主: 琳儿~漫索
8720 2

[问答] R做出5年数据的VAR模型以及采用ADF检验法对各序列的平稳性进行检验的代码,急!!大谢 [推广有奖]

  • 0关注
  • 0粉丝

初中生

42%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
172 点
帖子
8
精华
0
在线时间
13 小时
注册时间
2011-10-11
最后登录
2015-4-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

如果我建个模型,研究购销环节利益分配问题,需要设定的模型变量有三个,即农民、农村经纪人、企业的利益。在此,我们假设X1、X2、X3分别表示农民、农村经纪人、企业的利益波动。其中,X1可以通过农产品价格同比涨幅减生产资料同比涨幅反映;X2可以通过农产品收购价格同比涨幅减农产品价格同比涨幅反映;X3可以通过产品零售价格同比涨幅减农产品收购价格同比涨幅反映。

由于时间序列可能存在虚假回归问题, 所以在进行动态回归模型拟合前必须先检验各序列的平稳性。在此,我们拟采用ADF检验法对各序列的平稳性进行检验。另一方面,由于农产品购销中各经济单位的利益波动存在“由企业到农民”和“由农民到企业”两种动力,因此,为明确主要影响方向,还需对三方利益波动序列进行Granger因果检验,进而通过观察F分布的显著性程度来判断各变量相互之间的关系。在判定序列的平稳性及利益波动的相互影响关系之后,我们就确定了X1、X2、X3之间的因果关系,此后将进入模型分析的核心部分。为了能更清晰地说明该模型构建的思路,我们暂且假定X1为因变量,则通过构造X1在受到X2、X3一个单位标准差冲击后的脉冲响应函数,我们可以根据图形的收敛状态来判断其有效性。同时,根据冲击的方向性,可以进一步研究X2、X3对于X1究竟产生了何种影响。我怎么来做出这个模型呢?谢谢大神指教啊~~真心不太会用R


二维码

扫码加我 拉你入群

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

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

关键词:ADF检验 VAR模型 AR模型 VaR 检验法 农产品价格 零售价格 同比涨幅 经纪人 模型

沙发
nuomin 发表于 2013-11-7 10:30:48 |只看作者 |坛友微信交流群
对于你的情况,推荐一款免费软件,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发生,看帮助调参数

使用道具

藤椅
琳儿~漫索 发表于 2013-11-17 04:28:34 |只看作者 |坛友微信交流群
nuomin 发表于 2013-11-7 10:30
对于你的情况,推荐一款免费软件,Jmulti。可视化的操作,做起来比较方便。如果非得用要R做。
require(var ...
谢谢!!!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-28 17:37