Politikwissenschaft

 

Webseite durchsuchen

Panelregression mit R - Teil 2

Benjamin Schlegel | 14. Februar 2017

PDF

Dieser Artikel baut auf dem ersten Teil auf. Dort wird gezeigt, wie die vier verschiedenen lineare Panelmodelle geschätzt werden können. In diesem Artikel werden Tests vorgestellt, mit denen man herausfinden kann, welches Modell besser ist.

Als erstes wird der fixed effects (Within) mit dem OLS-Modell (Pooling) verglichen. Dazu kann die Funktion pFtest verwendet werden. Die Funktion testet auf individuelle oder Zeit Effekte.


pFtest(model.within, model.pooling)

	F test for individual effects

data:  Stimmbeteiligung ~ Typ + Thema + anzahl.vorlagen
F = 28.293, df1 = 2281, df2 = 134590, p-value < 2.2e-16
alternative hypothesis: significant effects

Da der p-Wert kleiner als 0.05 ist, kann $H_0$ verworfen werden, dass alle fixed Effekte Null sind. Deshalb ist das fixed-Effects Modell in diesem Fall besser als das normale OLS.

Im nächsten Schritt kann der Hausman Test verwendet werden, um zwischen dem fixed-Effects und random-Effects Modell zu unterscheiden. $H_0$ besagt, dass eines der Modelle inkonsistent ist. Der Test kann mit der Funktion phtest gerechnet werden.


phtest(model.within, model.random)

	Hausman Test

data:  Stimmbeteiligung ~ Typ + Thema + anzahl.vorlagen
chisq = 0.76467, df = 11, p-value = 1
alternative hypothesis: one model is inconsistent

Die Nullhypothese kann nicht verworfen werden, deshalb ist das random-Effects Modell besser. Als nächstes kann noch das random-effects Modell mit dem OLS-Modell mit dem Breusch-Pagan Lagrange Multiplier verglichen werden. Dazu kann die Funktion plmtest verwendet werden.


plmtest(model.pooling, type="bp")

	Lagrange Multiplier Test - (Breusch-Pagan)

data:  Stimmbeteiligung ~ Typ + Thema + anzahl.vorlagen
chisq = 395290, df = 1, p-value < 2.2e-16
alternative hypothesis: significant effects

Die Nullhypothese kann verworfen werden. Deshalb ist das random-Effects Modell besser. Als letztes kann man noch testen, ob die Zeit im fixed-Effects Modell fixiert werden soll. Dies kann Sinn machen, da dadurch Schocks wie z.B. Terroranschläge welche einen Einfluss auf die abhängige Variable haben könnten, aufgefangen werden können. Zuerst muss dieses Modell geschätzt werden. Wichtig dabei ist, dass die Zeitvariable als Faktor ins Modell aufgenommen wird.


model.fixedtime = plm(Stimmbeteiligung ~ Typ + Thema + anzahl.vorlagen + factor(Datum), 
  data=abstimmungen,index = c("Gemeinde","Datum"), model="within")
summary(model.fixedtime)

Error in crossprod(t(X), beta) : non-conformable arguments

Diese Fehlermeldung kommt, wenn das Problem der Kollinearität auftritt. In diesem Fall kann es nicht gerechnet werden. Wenn man es rechnen kann, dann kann man mit den beiden Funktionen pFtest und plmtest das ganze Test. Fixed-Time ist besser, wenn die Nullhypothese verworfen werden kann.


pFtest(modex.fixedtime,model.within)
plmtest(model.within, "time", type="bp")

Ob within oder between verwendet wird, hängt von der Fragestellung ab.