2010-12-08 32 views
0

Je veux faire un f-test à un modèle plm et test pourF-test avec plm modèle

model <- plm(y ~ a + b) 

si

# a = b 

et

# a = 0 and b = 0 

I essayé linéaireHypothèse comme ceci

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

mais a obtenu l'erreur

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 

Mon exemple ci-dessus est avec le code qui est un peu simplifiée si le problème est facile. Si les problèmes sont dans les détails est le code réel ici.

model3 <- formula(balance.agr ~ sgp1 + sgp2 + cp + eu + election + gdpchange.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")) 
+0

Si vous fournissez votre propre code, assurez-vous d'avoir un jeu de données pour l'essayer. Veuillez fournir un exemple reproductible la prochaine fois. –

Répondre

0

Je ne peux pas reproduire votre erreur avec l'un des jeux de données intégrés, même après un peu de bidouillage.

Est-ce que cela fonctionne pour vous?

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")) 

Notez également que vous semblez avoir une erreur dans le code plus complexe que vous avez montré. Vous utilisez linearHypothesis() sur l'objet ur.model, et pourtant appelez vcovHC() sur l'objet plmmodel1. Je ne sais pas si c'est le problème ou non, mais vérifiez cela au cas où.

Est-il possible de fournir les données? Enfin, modifiez votre question pour inclure la sortie de sessionInfo(). Le mien est (à partir d'une instance R assez occupée):

> 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 
0

Est-ce parce que vous "mélangez" des modèles? Vous avez une spécification de la variance qui commence:

, ...vcov.=vcovHC(plmmodel1, 

... et pourtant vous travaillez avec ur.model.