2016-11-01 4 views
3

Ich verwende das Plm-Paket für Panel-Daten zur instrumentellen Variablenschätzung. Es scheint jedoch, dass die Berechnung von Cluster-robusten Standardfehlern mithilfe der Funktion vcovHC() nicht unterstützt wird.IV Schätzung mit Cluster Robusten Standardfehlern mit dem plm-Paket in R

Fehler in vcovG.plm (x, type = Typ, cluster = cluster, l = 0, innen => Innen: Genauer gesagt, wenn ich die vcovHC() Funktion zu verwenden, wird die folgende Fehlermeldung ausgegeben ,: nicht verfügbar Verfahren zur IV

. Beispiel:?

data("Wages", package = "plm") 
IV <- plm(lwage ~ south + exp | wks + south, 
     data = Wages, model = "pooling", index = 595) 

vcvIV <- vcovHC(IV) 

nach dieser thread, jemand vor zwei Jahren an einer Lösung gearbeitet gibt es Fortschritte in der Frage weiß ich, dass die packag Es "lfe" und "ivpack" erlauben es, Cluster-robuste Standardfehler für die IV-Schätzung zu berechnen, aber keine von ihnen erlaubt zufällige Effekte/Abschnitte.

+0

Leider müssen Sie warten, bis es implementiert ist ... Sie können die Entwicklungsversion von plm hier verfolgen: https://r-forge.r-project.org/R/?group_id=406 – Helix123

+0

Vielen Dank für deine Antwort. Planen Sie die Implementierung in absehbarer Zeit? –

+0

Die offizielle CRAN-Version (1.6-4) von plm hat dies jetzt übernommen. – Helix123

Antwort

2

In der Tat ist es nicht implementiert. Sie können jedoch Schrimpf's clustered erros function verwenden, das direkt auf ein Objekt der Klasse plm angewendet wird. mit Ihrem Beispiel:

library (plm) 

data("Wages", package = "plm") 

IV <- plm(lwage ~ south + exp | wks + south, data = Wages, model = "pooling", index = 595) 

Wages$id <- rep(1:595, each = 7)   

cl.plm(Wages, IV, Wages$id) 

Wo ich Wages$id als Panel erste Dimension bin mit, um die Cluster gebildet werden. Vielleicht möchten Sie diese Ergebnisse mit denen anderer Software vergleichen. Wie auch immer, der Code ist einfach und erlaubt einige Tricks. Die Funktion cl.plm basiert auf Arais clustering notes, die Ihnen weiterhelfen kann.

Sie können das gleiche Ergebnis von cl.plm tun dies in Stata erhalten:

ivregress 2sls lwage south (exp = wks), vce(cluster id) small 

Oder das innerhalb Modell:

xtset id time, generic 

xtivreg2 lwage south (exp = wks), fe small cluster(id) 

Hinweis aber ich die kleine Probenformulierung in Stata verwendet, das ist Keine große Sache. Mehr dazu here. Wie auch immer, cl.plm behandelt richtig mit dem Klassenobjekt plm.

Der Vollständigkeit halber: Wie von @ Helix123 vorgeschlagen, können Sie die Entwicklungsversion (1.6-1) des plm Pakets verwenden und wie in der Tourfrage fortfahren.

+0

Es ist korrekt @ Helix123, wie Sie in der Referenz [hier] sehen können (http://fmwww.bc.edu/ec-p/wp545.pdf), [hier] (http://econweb.umd.edu/ ~ sarzosa/teach/2/Disc2_Cluster_handout.pdf) oder durch viele Vorträge dazu in Google unterscheidet sich die Formulierung für IV nicht vom Standard. Ich denke, der 'vcovHC' kann einfach nicht mehrteilige Formeln der' Formula' Klasse verarbeiten. –

+1

Großartig! Ich habe mit plm Entwicklung Version 1.6-1 überprüft und Plm 'vcovHC' und' cl.plm' gibt die gleichen Ergebnisse mit Ausnahme der Grad der Freiheit Anpassung in 'cl.plm' (multipliziert vcov mit' (M/(M-1)) * ((N-1)/(NK)) ') was auch von' vcovHC (..., type = "sss") 'durchgeführt werden kann. – Helix123

+0

Funktioniert! Vielen Dank! –

Verwandte Themen