2010-12-08 6 views
0

ich für einen f-Test zu einem plm-Modell und Test machen willF-Test mit plm-Modell

model <- plm(y ~ a + b) 

wenn

# a = b 

und

# a = 0 and b = 0 

I versuchte linearHypothesis wie dieses

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

bekam aber den Fehler

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 

Mein Beispiel ist oben mit Code, der ein wenig vereinfacht, wenn das Problem einfach ist. Wenn das Problem in den Details liegt, ist der eigentliche Code hier.

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

Wenn Sie Ihren eigenen Code bereitstellen, stellen Sie sicher, dass wir über ein Dataset verfügen, um es zu testen. Bitte geben Sie beim nächsten Mal ein reproduzierbares Beispiel an. –

Antwort

0

Ich kann Ihren Fehler mit einem der eingebauten Datensätze nicht reproduzieren, selbst nach ziemlich viel Gaunern.

Funktioniert das für Sie?

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

Beachten Sie auch, dass Sie scheinen, einen Fehler in dem komplexeren Code zu haben, den Sie zeigten. Sie verwenden linearHypothesis() für das Objekt ur.model, rufen Sie jedoch vcovHC() auf Objekt plmmodel1. Nicht sicher, ob das das Problem ist oder nicht, aber überprüfe das auf jeden Fall.

Ist es möglich, die Daten zur Verfügung zu stellen? Bearbeiten Sie abschließend Ihre Frage, um die Ausgabe von sessionInfo() einzuschließen. Meins ist (von einer ziemlich geschäftigen R-Instanz):

> 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

Könnte es sein, weil Sie Modelle "mischen"? Sie haben eine Varianz-Spezifikation, die beginnt:

, ...vcov.=vcovHC(plmmodel1, 

... und doch mit ur.model Sie arbeiten.

Verwandte Themen