Ich führe eine logistische Regression durch. Ich habe die folgenden Testdaten erstellt (die beiden Prädiktoren und das Kriterium sind binäre Variablen):
UV1 UV2 AV
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
5 1 1 1
6 1 1 1
7 1 1 1
8 0 0 1
9 0 0 1
10 0 0 1
11 1 1 0
12 1 1 0
13 1 0 0
14 1 0 0
15 1 0 0
16 1 0 0
17 1 0 0
18 0 0 0
19 0 0 0
20 0 0 0
AV =
Zur Messung des UV-Effekts auf den AV ist eine logistische Regression erforderlich, da der AV eine binäre Variable ist. Daher habe ich den folgenden Code verwendet
> lrmodel <- glm(AV ~ UV1 + UV2, data = lrdata, family = "binomial")
einschließlich "family =" binomial "" . Ist das richtig?
In Bezug auf meine Testdaten habe ich mich über das gesamte Modell gewundert, insbesondere über die Schätzer und die Bedeutung:
> summary(lrmodel)
Call:
glm(formula = AV ~ UV1 + UV2, family = "binomial", data = lrdata)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.7344 -0.2944 0.3544 0.7090 1.1774
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.065e-15 8.165e-01 0.000 1.000
UV1 -1.857e+01 2.917e+03 -0.006 0.995
UV2 1.982e+01 2.917e+03 0.007 0.995
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 27.726 on 19 degrees of freedom
Residual deviance: 17.852 on 17 degrees of freedom
AIC: 23.852
Number of Fisher Scoring iterations: 17
Warum ist UV2 nicht signifikant? Sehen Sie daher, dass es für die Gruppe AV = 1 7 Fälle mit UV2 = 1 und für die Gruppe AV = 0 nur 3 Fälle mit UV2 = 1 gibt. Ich hatte erwartet, dass UV2 ein signifikanter Diskriminator ist.
Trotz der Nichtbedeutung der UVs sind die Schätzer meiner Meinung nach sehr hoch (zB für UV2 = 1,982e + 01). Wie ist das möglich?
Warum ist der Achsenabschnitt nicht 0,5? Wir haben 5 Fälle mit AV = 1 und 5 Fälle mit AV = 0.
Weiter: Ich habe UV1 als Prädiktor erstellt, von dem ich erwartet hatte, dass er nicht signifikant ist: Für die Gruppe AV = 1 gibt es 5 Fälle mit UV1 = 1 und für die Gruppe AV = 0 gibt es 5 Fälle mit UV1 = 1.
Das ganze "Bild", das ich aus der Logistik gewonnen habe, verwirrt mich ...
Was mich mehr verzehrte: Wenn ich eine "NICHT-logistische" Regression durchführe (indem ich "family =" binomial " weglasse )
> lrmodel <- glm(AV ~ UV1 + UV2, data = lrdata,)
Ich bekomme die erwarteten Ergebnisse
Call:
glm(formula = AV ~ UV1 + UV2, data = lrdata)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.7778 -0.1250 0.1111 0.2222 0.5000
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.5000 0.1731 2.889 0.01020 *
UV1 -0.5000 0.2567 -1.948 0.06816 .
UV2 0.7778 0.2365 3.289 0.00433 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.1797386)
Null deviance: 5.0000 on 19 degrees of freedom
Residual deviance: 3.0556 on 17 degrees of freedom
AIC: 27.182
Number of Fisher Scoring iterations: 2
- UV1 ist nicht signifikant! :-)
- UV2 wirkt sich positiv auf AV = 1 aus! :-)
- Der Achsenabschnitt ist 0,5! :-)
Meine allgemeine Frage: Warum führt die logistische Regression (einschließlich "family =" binomial ") nicht erwartungsgemäß zu Ergebnissen, eine" NOT-logistic "-Regression (ohne" family = "binomial") jedoch nicht?
Update: sind die oben beschriebenen Beobachtungen aufgrund der Korrelation von UV1 und UV 2. Corr = 0,56 Nach Manipulation der UV2-Daten
AV: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
UV1: 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0
UV2: 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
(Ich habe die Positionen der drei Nullen mit den drei Einsen in UV2 geändert, um eine Korrelation <0,1 zwischen UV1 und UV2 zu erhalten.) Daher:
UV1 UV2 AV
1 1 0 1
2 1 0 1
3 1 0 1
4 1 1 1
5 1 1 1
6 1 1 1
7 1 1 1
8 0 1 1
9 0 1 1
10 0 1 1
11 1 1 0
12 1 1 0
13 1 0 0
14 1 0 0
15 1 0 0
16 1 0 0
17 1 0 0
18 0 0 0
19 0 0 0
20 0 0 0
Um Korrelationen zu vermeiden, kommen meine Ergebnisse meinen Erwartungen näher:
Call:
glm(formula = AV ~ UV1 + UV2, family = "binomial", data = lrdata)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.76465 -0.81583 -0.03095 0.74994 1.58873
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.1248 1.0862 -1.036 0.3004
UV1 0.1955 1.1393 0.172 0.8637
UV2 2.2495 1.0566 2.129 0.0333 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 27.726 on 19 degrees of freedom
Residual deviance: 22.396 on 17 degrees of freedom
AIC: 28.396
Number of Fisher Scoring iterations: 4
Aber warum beeinflusst die Korrelation die Ergebnisse der logistischen Regression und nicht die Ergebnisse der "nicht logistischen" Regression?
t calculating an exact y-value but an value which can be defined as the probability to be part of group AV = 1 (and not part of group AV = 0); and this value isn
genau 0 oder 1 ist, sondern zwischen 0 und 1 liegt und Sie einen Schwellenwert für Ihr Modell auswählen müssen, um der Gruppe AV = 1 einen Fall zuzuweisen, wenn Der Schwellenwert wird überschritten. Daher gibt es in der logistischen Regression einen "abstrakteren" Wert und keinen klaren y-Wert wie in der linearen Regression. Wie gehe ich damit um?
R
Beispiel in einer Lösung unter stats.stackexchange.com/a/40609/919 veröffentlicht : siehe Codezeile unter dem Kommentar "Simulation durchführen".