GMM估计:AA%*%t(X)中的错误:需要数字/复杂矩阵/矢量参数

时间:2019-02-20 11:57:34

标签: r generalized-method-of-moments

我正在估计一个简单的CCAPM模型的参数,这是代码:

window.variableName = window.variableName || {};

指令变量是所有资产收益的n = 1,2,4,6滞后项。在数据中,我有17种资产,所以有4 * 17 * 17时刻条件。

运行代码时,出现错误:

library(gmm)
inst=c(1,2,4,6); #instruction variables set;
price<-read.table("return.txt",head=FALSE); #get price;
consumption<-t(read.table("consumption.txt",head=FALSE)); #get 
consumption;
j=ncol(price); #number of asset;
T=nrow(price); #number of observation;
r<-price[2:T,]/price[1:T-1,]; #get return;
c<-consumption[2:T,]/consumption[1:T-1,]; #get ct+1/ct;
g<-function(parm,data0){
  g1=vector()
  d=parm[1]*data0[,1]^(-parm[2])*data0[,2:(j+1)]-1
  for (i in 1:j){
    g1<-cbind(g1,d[,i]*data0[,(j+2):((length(inst)+1)*j+1)]);
  }
  return(g1)
}
ma=max(inst);
x0=cbind(c[-(1:ma)],r[(ma+1):(T-1),]);
for (i in inst){
  x0=cbind(x0,r[(ma-i+1):(T-1-i),])
}
data0=as.matrix(x0);
res<-gmm(g,x=data0,c(0.9,0.1))

在网站上搜索问题后,我仍然不知道我的代码有什么问题。我认为这可能是因为我的矩矩阵是奇异的,但是在更改滞后项后,错误仍然存​​在。

这是数据文件。 consumption.txtreturn.txt

0 个答案:

没有答案