在GMM下解决2个变量

时间:2017-04-07 15:13:51

标签: gmm

我试图用以下代码求解2 * 1 GMM估计矩阵:

x<-rnorm(50, mean = 3, sd = 2)
y<-rnorm(50, mean = 4, sd = 1)
z_1<-as.matrix(x)
z_2<-as.matrix(y)
e<-function(RGAAA,x,y)
          {m1<-exp(-x/RGAAA[1])-1
          m2<-exp(-y/RGAAA[2])-1
          f<-cbind(m1,m2)  
          return(f)}


summary(gmm(e,cbind(z_1,z_2),c(1,1),method="BFGS",control=1e-12)) 

但是,它们会产生错误消息:

Error in P$g(P$t0, x) : argument "y" is missing, with no default

有谁能帮我找出问题所在? 非常感谢!

1 个答案:

答案 0 :(得分:0)

Gmm函数只能有一个变量矩阵和一个参数矢量。你去了:

set.seed(123)#to replicate the results
x<-rnorm(50, mean = 3, sd = 2)
y<-rnorm(50, mean = 4, sd = 1)
z_1<-as.matrix(x)
z_2<-as.matrix(y)
z <- cbind(z_1,z_2) #make one matrix from both vectors
e<-function(RGAAA,x) #one input for the parameters and one input for the variables
          {m1<-exp(-x[,1]/RGAAA[1])-1
          m2<-exp(-x[,2]/RGAAA[2])-1
          f<-cbind(m1,m2)  
          return(f)}
summary(gmm(e,z,c(1,1),method="BFGS",control=1e-12))

使用伪随机数的种子,您将获得以下输出:

Call:
gmm(g = e, x = z, t0 = c(1, 1), method = "BFGS", control = 1e-12)


Method:  twoStep 

Kernel:  Quadratic Spectral

Coefficients:
          Estimate     Std. Error   t value      Pr(>|t|)   
Theta[1]   4.5256e+02   3.8809e+01   1.1661e+01   2.0121e-31
Theta[2]   4.9367e+02   1.5265e+01   3.2341e+01  1.8683e-229

J-Test: degrees of freedom is 0 
                J-test               P-value            
Test E(g)=0:    0.00577448313404338  *******            

#############
Information related to the numerical optimization
Convergence code =  0 
Function eval. =  25 
Gradian eval. =  24