[R] Problems in using GMM for calculating linear regression

deshesoft giora at deshesoft.com
Tue Jul 31 18:12:13 CEST 2012


Hi,

I'm trying to use gmm package in order to calculate linear regression (I
need to use the gmm for other application and this is a prior test I'm
doing).

I've defined a function for linear regression with 2 variables (x[,1] holds
the y values, while x[,2:3] holds the x values):

function(tet, x)
{
 m1 <- (x[,1] - (tet[1] + tet[2] * x[,2] + tet[3] * x[,3])) * x[,2]
 m2 <- (x[,1] - (tet[1] + tet[2] * x[,2] + tet[3] * x[,3])) * x[,3]
 m3 <- (x[,1] - (tet[1] + tet[2] * x[,2] + tet[3] * x[,3])) * 1.0
 f <-cbind(m1, m2, m3)
 return(f)
}

Then I run:

gmm(g1, d, c(0,0,0)) 
* d - input data.frame

and I get:
Theta[1]  Theta[2]  Theta[3]  
0.055635  0.025520  0.047638  

However when I use:
glm(y~x1 + x2, data =d)

I get:
Coefficients:
(Intercept)           x1           x2  
    -0.2833       0.0318       0.6612  

When I tries to use the output from glm as initial values to the gmm I got
the following results:
 Theta[1]   Theta[2]   Theta[3]  
-0.283349   0.031798   0.661225

In addition when I'm trying the coefficients from the glm run in g1 I get
the minimum result (much smaller results relative to the gmm result).

BTW, d is:
   y x1         x2
1  0  1 0.29944294
2  0  2 0.12521669
3  1  3 0.97254701
4  0  4 0.79952796
5  0  5 0.77358425
6  0  6 0.09983754
7  1  7 0.46133893
8  0  8 0.59833493
9  0  9 0.80005524
10 0 10 0.02979412
11 1 11 0.70576655
12 0 12 0.67138962
13 0 13 0.33446510
14 1 14 0.72187427
15 0 15 0.28193852
16 1 16 0.11258881
17 0 17 0.22001868
18 1 18 0.54681964
19 0 19 0.03336023
20 1 20 0.47007378

Can someone explain what am I doing wrong and why I don't get the same
results?

Thanks!





--
View this message in context: http://r.789695.n4.nabble.com/Problems-in-using-GMM-for-calculating-linear-regression-tp4638557.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list