wie ihr euch es nicht vorstellen könnt, habe ich ein Problem..
Nämlich mit der Codierung einer Multinomialer logistischen Regression und (später) deren Interpretation.
Aber vorab möchte ich mich bei jogo für seine Hilfe und Tipps bei meinem vorherigen Problem bedanken. Das hat bis dato wunderbar funktioniert und mir sehr geholfen.
Nun bin ich aber an einem Punkt angekommen, an dem ich (zumindest auf diesem Weg) nicht mehr weiterkomme.
Ich möchte für eine Analyse eine MNlogit durchführen, die im auf dem Lehrbuch von Wollschläger(2020): "Grundlagen der Datenanalyse mit R", S. 373ff. basiert. (Wenn es entsprechend der Forumregeln ok ist, poste ich gerne die entsprechenden Seiten in einem späteren Post.)
Meinen gesamten Datensatz möchte ich nicht gerne offenlegen, hoffe das ist verständlich. Dafür habe ich aber ein Sample/Subset erstellt. Ich denke, damit könnt ihr soweit alles nachvollziehen, und mit im Idealfall Ratschläge/Hinweise/Hilfestellungen geben.
Hier ist mein bisheriger Code..
Code: Alles auswählen
```{r include=FALSE}
library(data.table) # fread
library(VGAM) # vglm
library(DescTools) # für PseudoR2
```
```{r}
av_uv <- fread("av_uv_sample.csv")
```
```{r}
# names(av_uv)
# av_uv$c1_school_closing
table(av_uv$c1_school_closing)
```
# Test mit Politischen Faktoren und Maßnahme (AV) c1
```{r}
logitc1p <- vglm(c1_school_closing ~ system_of_government + system_of_internal_government + chambers + x1p_gov_ind, family=multinomial(refLevel="0"), model = TRUE, data = av_uv)
summary(logitc1p)
```
```{r}
exp(coef(logitc1p)) # odds ratios
```
```{r}
deviance(logitc1p)
AIC(logitc1p)
PseudoR2(logitc1p, which = "Nagelkerke") # hierfür "vglm-model = TRUE" gestellt
```
```{r}
sumc1p <- summary(logitc1p)
coefc1p <- coef(sumc1p)
coefc1p
```
```{r}
confint(logitc1p)
```
# ANOVA (Im Buch von zwei Prädiktoren auf einen im FitR-Modell, hier Minus x1p_gov_ind)
```{r}
logitc1pFitR <- vglm(c1_school_closing ~ system_of_government + system_of_internal_government + chambers, family=multinomial(refLevel="1"), model = TRUE, data = av_uv)
anova(logitc1pFitR, logitc1p, type = "I")
```
```{r}
c1categ <- predict(logitc1p, type="response") # vorhergesagte Kategorienwahrscheinlichkeiten
# c1categ
head(c1categ)
```
```{r}
colMeans(c1categ) # mittlere vorhergesagte Kategorien-Wahrscheinlichkeiten
```
```{r}
proportions(table(av_uv$c1_school_closing)) # empirische relative Kategorien-Häufigkeiten
```
```{r}
c1categhat <- levels(av_uv$c1_school_closing)[max.col(c1categ)]
head(c1categhat) # -> [b]NULL (Fehler?)[/b]
c1categhat # -> [b]NULL (Fehler?)[/b]
```
# Kontingenztafel
```{r}
[b]# Fehler aus c1categhat führt sich hier fort[/b]
c1hat <- factor(c1categhat, levels = levels(av_uv$c1_school_closing))
c1tab <- table(av_uv$c1_school_closing, c1hat, dnn = c("c1_school_closing", "c1hat"))
addmargins(c1tab)
```
```{r}
CCR <- sum(diag(c1tab)) / sum(c1tab)
```
Würde mich freuen, wenn jemand von euch einen Rat für mich hat, wie ich das auf diesem Weg hinbekomme.
Vielen Dank und einen entspannten Abend auch allen..
Danke R2