Vorbereitung der Variablen für die binäre logistische Regression
Verfasst: Fr Feb 03, 2023 10:14 am
Ich möchte eine binäre logistische Regression für eine binäre Variable durchführen. Die Variable "belastet" hat die beiden Werte zustimmen (1) und nicht zustimmen (2). Die Formel, mit der ich arbeite, ist glm () und family = "binomial". Wenn ich meine unabhängigen Variablen in das Modell einsetze (sowohl kategorisch als auch metrisch) und dann den p-Wert mit pchisq berechne, erhalte ich 0.
Als Output erhalte ich:
Und für:
Ich erhalte: bel_pchisq = 0.
Ich denke, das Problem ist, dass ich meine Daten nicht bereinigt habe? Ich habe bereits eine Revision meiner metrischen Variablen durchgeführt: data$Age[is.na(data$Age)] <- mean(data$Age,na.rm=T) und kategorisch: MF$belastetB <- as.factor(MF$belastetB), leider nur mit Teilerfolg. Außerdem habe ich durch die Anwendung der metrischen Formel alle meine Variablen überschrieben, die ich aber noch in ihrer ursprünglichen Form brauche. Leider bin ich mir überhaupt nicht sicher, wie ich meine Variablen für die binäre logistische Regression vorbereiten soll, damit ich einen p-Wert erhalte, der nicht 0 ist. Denn das bedeutet, dass ich einen Fehler in meiner Formel habe oder dass meine Variablen nicht richtig vorbereitet sind. Meine kategorialen unabhängigen Variablen sind: SES (hoch, mittel, niedrig), Angst (stimme zu, stimme nicht zu, stimme nicht zu), guteSeiten (stimme zu, stimme nicht zu, stimme nicht zu), finanzielleEinb (stimme zu, stimme nicht zu, stimme nicht zu), persKontakt (stimme zu, stimme nicht zu, stimme nicht zu) Meine metrischen unabhängigen Variablen sind: Alter, eig_Kinder, Zufriedenh_BZ (Skala: 0-10), LZ (Skala: 0-10) Die Ausgabe von LZ (metrisch) sieht zum Beispiel so aus:
Und für Angst (kategorisch):
Welche Formeln kann ich anwenden oder wie muss ich meine Variablen ändern/anpassen, damit ich eine andere Ausgabe als 0 für den p-Wert erhalte?
Code: Alles auswählen
belastet0 <- glm(belastetB ~ 1, data = MF, family = binomial (), subset = (sex == 2))
summary(belastet0)
belastet1 <- glm(belastetB ~ age + SES_3 + eig_Kinder + Zufriedenh_BZ + LZ + Angst + guteSeiten + finanzielleEinb + persKontakt, data = MF, family = "binomial", subset = (sex == 2))
summary(belastet1)
bel_chi <- belastet0$null.deviance - belastet1$deviance
bel_chidf <- belastet1$df.null - belastet1$df.residual
bel_pchisq <- 1 - pchisq(bel_chi, bel_chidf)
Code: Alles auswählen
Deviance Residuals:
Min 1Q Median 3Q Max
-3.0832 -0.5579 0.4269 0.7315 2.1323
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.933019 0.345034 11.399 < 2e-16 ***
age -0.017936 0.005805 -3.090 0.00200 **
SES_3mittel -0.252995 0.081740 -3.095 0.00197 **
SES_3niedrig -0.426660 0.131045 -3.256 0.00113 **
eig_Kinder 0.195782 0.044914 4.359 1.31e-05 ***
Zufriedenh_BZ 0.074256 0.021855 3.398 0.00068 ***
LZ -0.452521 0.026458 -17.103 < 2e-16 ***
Angststimme zu 0.955357 0.073680 12.966 < 2e-16 ***
Angstweder noch 0.554067 0.109405 5.064 4.10e-07 ***
guteSeitenstimme zu -1.312848 0.105667 -12.424 < 2e-16 ***
guteSeitenweder noch -0.451338 0.144038 -3.133 0.00173 **
finanzielleEinbstimme zu 0.759940 0.092765 8.192 2.57e-16 ***
finanzielleEinbweder noch 0.814164 0.136931 5.946 2.75e-09 ***
persKontaktstimme zu 1.001333 0.082896 12.079 < 2e-16 ***
persKontaktweder noch 0.538896 0.124962 4.312 1.61e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 6691.7 on 5928 degrees of freedom
Residual deviance: 5366.5 on 5914 degrees of freedom
(14325 Beobachtungen als fehlend gelöscht)
AIC: 5396.5
Code: Alles auswählen
bel_pchisq <- 1 - pchisq(bel_chi, bel_chidf)
Ich denke, das Problem ist, dass ich meine Daten nicht bereinigt habe? Ich habe bereits eine Revision meiner metrischen Variablen durchgeführt: data$Age[is.na(data$Age)] <- mean(data$Age,na.rm=T) und kategorisch: MF$belastetB <- as.factor(MF$belastetB), leider nur mit Teilerfolg. Außerdem habe ich durch die Anwendung der metrischen Formel alle meine Variablen überschrieben, die ich aber noch in ihrer ursprünglichen Form brauche. Leider bin ich mir überhaupt nicht sicher, wie ich meine Variablen für die binäre logistische Regression vorbereiten soll, damit ich einen p-Wert erhalte, der nicht 0 ist. Denn das bedeutet, dass ich einen Fehler in meiner Formel habe oder dass meine Variablen nicht richtig vorbereitet sind. Meine kategorialen unabhängigen Variablen sind: SES (hoch, mittel, niedrig), Angst (stimme zu, stimme nicht zu, stimme nicht zu), guteSeiten (stimme zu, stimme nicht zu, stimme nicht zu), finanzielleEinb (stimme zu, stimme nicht zu, stimme nicht zu), persKontakt (stimme zu, stimme nicht zu, stimme nicht zu) Meine metrischen unabhängigen Variablen sind: Alter, eig_Kinder, Zufriedenh_BZ (Skala: 0-10), LZ (Skala: 0-10) Die Ausgabe von LZ (metrisch) sieht zum Beispiel so aus:
Code: Alles auswählen
summary(MF$LZ)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.000 6.000 7.000 6.794 8.000 10.000 707
Code: Alles auswählen
table(MF$LZ)
0 1 2 3 4 5 6 7 8 9 10
231 261 728 1551 1775 4024 4166 7937 9792 4085 1710
Code: Alles auswählen
table(MF$Angst)
stimme nicht zu stimme zu weder noch
16918 14607 5255
summary(MF$Angst)
Length Class Mode
36967 character character