2016-06-01 2 views
0

Ich lerne, wie die Quasi- Trennung R binomiale GLM beeinflusst. Und ich fange an zu denken, dass es in irgendein Umstand keine Rolle spielt.Ist die Quasi-Trennung in R binomial GLM wichtig?

In meinem Verständnis sagen wir, dass die Daten Quasi Trennung haben, wenn einige Linearkombination von Faktorstufen vollständig Fehler/Nicht-Fehler identifizieren kann.

Also habe ich einen künstlichen Datensatz mit einer quasi Trennung in R als:

fail <- c(100,100,100,100) 
nofail <- c(100,100,0,100) 
x1 <- c(1,0,1,0) 
x2 <- c(0,0,1,1) 
data <- data.frame(fail,nofail,x1,x2) 
rownames(data) <- paste("obs",1:4) 

Dann, wenn x1 = 1 und x2 = 1 (obs 3) die Daten immer nicht ausfällt. In diesen Daten hat meine Kovariatenmatrix drei Spalten: Schnittpunkt, x1 und x2.

In meinem Verständnis ergibt Quasi-Trennung in Schätzung des unendlichen Wertes. Also sollte die Anpassung fehlschlagen. Allerdings ist die folgende glm passen nicht scheitern:

summary(glm(cbind(fail,nofail)~x1+x2,data=data,family=binomial)) 

Das Ergebnis ist:

Coefficients: 
      Estimate Std. Error z value Pr(>|z|)  
(Intercept) -0.4342  0.1318 -3.294 0.000986 *** 
x1   0.8684  0.1660 5.231 1.69e-07 *** 
x2   0.8684  0.1660 5.231 1.69e-07 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Std. Der Fehler erscheint selbst bei der Quasi-Trennung sehr sinnvoll. Könnte mir jemand sagen, warum die Quasi-Trennung das Glm-Fit-Ergebnis NICHT beeinflusst?

Antwort

3

Sie haben ein interessantes Beispiel erstellt, aber Sie testen kein Modell, das tatsächlich die Situation untersucht, die Sie als Quasi-Trennung beschreiben. Wenn Sie sagen: "Wenn x1 = 1 und x2 = 1 (obs 3) die Daten immer fehlschlagen.", Implizieren Sie die Notwendigkeit für einen Interaktionsterm im Modell. Beachten Sie, dass dies erzeugt ein "interessantes" Ergebnis:

> summary(glm(cbind(fail,nofail)~x1*x2,data=data,family=binomial)) 

Call: 
glm(formula = cbind(fail, nofail) ~ x1 * x2, family = binomial, 
    data = data) 

Deviance Residuals: 
[1] 0 0 0 0 

Coefficients: 
       Estimate Std. Error z value Pr(>|z|) 
(Intercept) -1.367e-17 1.414e-01 0.000  1 
x1   2.675e-17 2.000e-01 0.000  1 
x2   2.965e-17 2.000e-01 0.000  1 
x1:x2  2.731e+01 5.169e+04 0.001  1 

(Dispersion parameter for binomial family taken to be 1) 

    Null deviance: 1.2429e+02 on 3 degrees of freedom 
Residual deviance: 2.7538e-10 on 0 degrees of freedom 
AIC: 25.257 

Number of Fisher Scoring iterations: 22 

Man braucht im Allgemeinen sehr suspekt von Beta-Koeffizienten von 2.731e + 01 sein: Die impliziten Odds Ratio i:

> exp(2.731e+01) 
[1] 725407933166 

In diesem Arbeits Umgebung gibt es keinen wesentlichen Unterschied zwischen Inf und 725.407.933.166.

+1

ja, und notieren Sie den Wald-Standardfehler dieses Begriffs ('5.2e4') (dies ist der * Hauck-Donner-Effekt *). Wenn Sie wollten, könnten Sie das Problem mit 'brglm :: brglm()', 'logistf :: logistf()', 'rms :: lrm()' (mit 'penalty' Parametersatz),' arm :: bayesglm() ', ... –

+0

@BenBolker Sollte ich eine Frage stellen, die nach einer erlernten Antwort fragt, die mir (und jedem anderen Statistikstudenten) hilft, sich an den Unterschied zwischen HD und QS zu erinnern? Sie sind beide mit mathematisch lächerlichen Parameterschätzungen verbunden, aber ist es so einfach wie: QS assoziiert mit hohen 'coef()' s ... HD mit aufgeblasenen 'sem()' s? –

+0

Darf ich fragen, wie genau und praktisch ich prüfen kann, ob Daten Quasi-Trennung enthalten? Ist es ausreichend zu prüfen, ob ich ein Skalar s und einen Spaltenvektor x finde, so dass x [i]> = s dann Y_i = 0 und x [i] <= s dann Y_i = 1 für alle i = 1, .. ., n (= Stichprobenumfang)? (In meiner Umgebung habe ich nur eine binäre Kovariate). – ThePrincess