deshesoft
2012-Jul-31 16:12 UTC
[R] Problems in using GMM for calculating linear regression
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.