开发者

F-test with plm-model

I want to make a f-test to a plm-model and test for

model <- plm(y ~ a + b)

if

# a = b

and

# a = 0 and b = 0

I tried linearHypothesis like this

linearHypothesis(ur.model, c("a", "b")) to test for a = 0 and b = 0

but got the error

Error in constants(lhs, cnames_symb) : 
  The hypothesis "sgp1" is not well formed: contains bad coefficient/variable names.
Calls: linearHypothesis ... makeHypothesis -> rbind -> Recall -> makeHypothesis -> constants
In addition: Warning message:
In constants(lhs, cnames_symb) : NAs introduced by coercion
Execution halted

My example above is with code that is a little simplified if the problem is easy. If the problems is in the details is the actual code here.

model3 <- formula(balance.agr ~ sgp1 + sgp2 + cp + eu + election + gdpchange开发者_如何学JAVA.imf + ue.ameco)
ur.model<-plm(model3, data=panel.l.fullsample, index=c("country","year"), model="within", effect="twoways")
linearHypothesis(ur.model, c("sgp1", "sgp2"), vcov.=vcovHC(plmmodel1, method="arellano", type = "HC1", clustering="group"))


I can't reproduce your error with one of the inbuilt data sets, even after quite a bit of fiddling.

Does this work for you?

require(plm)
require(car)
data(Grunfeld)
form <- formula(inv ~ value + capital)
re <- plm(form, data = Grunfeld, model = "within", effect = "twoways")
linearHypothesis(re, c("value", "capital"), 
                 vcov. = vcovHC(re, method="arellano", type = "HC1"))

Note also, that you seem to have an error in the more complex code you showed. You are using linearHypothesis() on the object ur.model, yet call vcovHC() on object plmmodel1. Not sure if that is the problem or not, but check that in case.

Is it possible to provide the data? Finally, edit your Question to include output from sessionInfo(). Mine is (from quite a busy R instance):

> sessionInfo()
R version 2.11.1 Patched (2010-08-25 r52803)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.utf8       LC_NUMERIC=C             
 [3] LC_TIME=en_GB.utf8        LC_COLLATE=en_GB.utf8    
 [5] LC_MONETARY=C             LC_MESSAGES=en_GB.utf8   
 [7] LC_PAPER=en_GB.utf8       LC_NAME=C                
 [9] LC_ADDRESS=C              LC_TELEPHONE=C           
[11] LC_MEASUREMENT=en_GB.utf8 LC_IDENTIFICATION=C      

attached base packages:
[1] splines   grid      stats     graphics  grDevices utils     datasets 
[8] methods   base     

other attached packages:
 [1] car_2.0-2        nnet_7.3-1       plm_1.2-6        Formula_1.0-0   
 [5] kinship_1.1.0-23 lattice_0.19-11  nlme_3.1-96      survival_2.35-8 
 [9] mgcv_1.6-2       chron_2.3-37     MASS_7.3-7       vegan_1.17-4    
[13] lmtest_0.9-27    sandwich_2.2-6   zoo_1.6-4        moments_0.11    
[17] ggplot2_0.8.8    proto_0.3-8      reshape_0.8.3    plyr_1.2.1      

loaded via a namespace (and not attached):
[1] Matrix_0.999375-44 tools_2.11.1


Could it be because you are "mixing" models? You have a variance specification that starts out:

, ...vcov.=vcovHC(plmmodel1, 

... and yet you are working with ur.model.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜