全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8959 2
2013-11-06

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

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


二维码

扫码加我 拉你入群

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

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

全部回复
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 ...
谢谢!!!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群