glm in R - welcher p-Wert repräsentiert die Anpassungsgüte des gesamten Modells?

10

Ich verwende glms in R (verallgemeinerte lineare Modelle). Ich dachte, ich kenne p-Werte - bis ich sah, dass das Aufrufen einer Zusammenfassung für ein glm keinen übergeordneten p-Wert ergibt, der für das gesamte Modell repräsentativ ist - zumindest nicht an der Stelle, an der lineare Modelle dies tun.

Ich frage mich, ob dies als p-Wert für den Achsenabschnitt oben in der Koeffiziententabelle angegeben ist. Während im folgenden Beispiel Wind.speed..knots und canopy_density für das Modell von Bedeutung sein können, woher wissen wir, ob das Modell selbst von Bedeutung ist? Woher weiß ich, ob ich diesen Werten vertrauen soll? Kann ich mich zu Recht fragen, dass Pr (> | z |) für (Intercept) die Bedeutung des Modells darstellt? Ist dieses Modell bedeutende Leute? Vielen Dank!

Ich sollte beachten, dass das Ausführen eines F-Tests keinen p-Wert ergibt, da eine Fehlermeldung angezeigt wird, dass das Ausführen von F-Tests für eine Binomialfamilie unangemessen ist.

Call:
glm(formula = Empetrum_bin ~ Wind.speed..knots. + canopy_density, 
    family = binomial, data = CAIRNGORM)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.2327  -0.7167  -0.4302  -0.1855   2.3194  

Coefficients:
                   Estimate Std. Error z value Pr(>|z|)  
(Intercept)          1.8226     1.2030   1.515   0.1298  
Wind.speed..knots.  -0.5791     0.2628  -2.203   0.0276 *
canopy_density      -2.5733     1.1346  -2.268   0.0233 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 59.598  on 58  degrees of freedom
Residual deviance: 50.611  on 56  degrees of freedom
  (1 observation deleted due to missingness)
AIC: 56.611
Martin
quelle
1
Wenn ich mich in einer binomialen Regression richtig erinnere, sollten Sie einen Abweichungstest verwenden, auch bekannt als Log Likelihood-Test - analog zu dem in einer linearen Regression verwendeten F-Test. Dies ist das -2 * (Null LL - Saturated LL), das zu einer Chi-Quadrat-Verteilung passt. Obwohl ich in Ihrer Zusammenfassungsausgabe keine Modellprotokollwahrscheinlichkeit sehen kann. Befindet es sich im Modellobjekt, aber nicht in der Zusammenfassungsausgabe?
SamPassmore

Antworten:

10

Sie können entweder einen asymptotischen Chi-Quadrat-Test von (59.598-50.611) gegen ein Chi-Quadrat mit (58-56) df durchführen oder anova()für Ihr glm-Objekt verwenden (das den Test nicht direkt durchführt, sondern zumindest berechnet ( 59.598-50.611) und (58-56) für Sie).

Dies ist effektiv eine Analyse der Abweichung .

Hier ist die Art von Berechnungen, die Sie durchführen können (für einen anderen Datensatz, der mit R geliefert wird):

spray1=glm(count~spray,family=poisson,data=InsectSprays)  # full model
spray0=glm(count~1,family=poisson,data=InsectSprays)      # null model
with(anova(spray0,spray1),pchisq(Deviance,Df,lower.tail=FALSE)[2]) 

Dies gibt den p-Wert für eine asymptotische Chi-Quadrat-Statistik basierend auf der Abweichung an .

Oder Sie können die devianceund df.residualFunktionen verwenden, um dies zu tun:

 pchisq(deviance(spray0)-deviance(spray1),
     df.residual(spray0)-df.residual(spray1),
    lower.tail=FALSE)

- -

Viele Leute würden den Vergleich zwischen Voll- und Nullmodell-AIC (oder in einigen Fällen vielleicht einen Vergleich zwischen einem interessierenden Modell und dem gesättigten Modell) verwenden, um herauszufinden, ob das Modell in diesem Sinne besser als das Nullmodell ist.

- -

Kann ich mich zu Recht fragen, dass Pr (> | z |) für (Intercept) die Bedeutung des Modells darstellt?

Das tut es nicht. In der Tat ist der Achsenabschnitt-p-Wert normalerweise nicht von direktem Interesse.

Wenn Sie ein Modell mit einem Dispersionsparameter in Betracht ziehen, haben einige Leute argumentiert, dass sie einen F-Test anstelle eines asymptotischen Chi-Quadrats durchführen. es entspricht Personen, die einen t-Test anstelle von az für die einzelnen Koeffizienten verwenden. Bei kleinen Stichproben ist dies wahrscheinlich keine vernünftige Annäherung. Ich habe keine Ableitung oder Simulation gesehen, die darauf hindeuten würde, dass F im Fall von GLMs im Allgemeinen notwendigerweise eine geeignete Näherung ist (dh besser als das asymptotische Ergebnis). Man könnte gut existieren, aber ich habe es nicht gesehen.

Glen_b - Monica neu starten
quelle
2
Sie können auch Anova(fit, type = 2)aus der carBibliothek laufen
Algorithmatic
3

Angenommen, Ihr Modell befindet sich im Objekt 'fit', könnten Sie diesen Code verwenden, um einen Log-Likelihood-Test für Ihr Binomialmodell durchzuführen. Wie Sie festgestellt haben, ist ein F-Test nicht geeignet, aber dieser Test testet, ob Ihr Modell besser vorhergesagt wird als zufällig.

LLR = -2 * (fit$null.deviance - fit$deviance)

Dies ist die Formel für den Log-Likelihood-Ratio-Test.

pchisq(LLR, 2, lower.tail = FALSE)

Und das gibt Ihnen den p-Wert. Obwohl ich nicht 100% sicher bin, dass dies der richtige df ist. Ich bin mir ziemlich sicher, dass es der Unterschied in der Anzahl der Parameter ist, von denen Sie 2 in Ihrem gesättigten Modell und keine im Null-Modell haben, ergo df = 3 - 1 = 2. Aber das könnte etwas sein, das Sie weiterverfolgen sollten.

SamPassmore
quelle
1

Fχ2

Alternativ können Sie sich AIC oder verwandte Maßnahmen wie BIC ansehen.

R2

Livius
quelle