Hallo,
ich bin R-Neuling und möchte eine logistische Regression mit R machen. Vorher muss ich allerdings eine Spalte meines tabellarischen Datensatzes in 2 Gruppen einteilen. Ich finde dazu leider nichts, kann mir jemand helfen?
Danke im Voraus für Eure Hilfe!
LG
eine Einteilung von Größen in 2 Gruppen
Re: eine Einteilung von Größen in 2 Gruppen
Hallo heythere,
hilft das so?
LG,
Bernhard
hilft das so?
Code: Alles auswählen
logreg <- read.csv("http://forum.r-statistik.de/download/file.php?id=1491")
str(logreg) # erst prüfen, ob Daten richtig eingelesen wurden
plot(density(logreg$wage), main = "") # Daten immer erstmal plotten
rug(logreg$wage)
abline(v = 250, lty = 3)
# Jetzt die vorgegebene Unterteilung:
logreg$wealthy <- ifelse(logreg$wage < 250, yes = FALSE, no = TRUE)
# und dann immer nachgucken, wie groß die Gruppen geworden sind:
table(logreg$wealthy)
# Ab jetzt kann man regredieren
regr <- glm(wealthy ~ education + age, data = logreg, family = binomial)
summary(regr)
# Und immer wieder plotten, ob das errechnete auch Sinn macht:
regr <- glm(wealthy ~ age, data = logreg, family = binomial)
summary(regr)
plot(jitter(logreg$age), logreg$wage, pch = 16, col = "#00005040")
predicted <- predict(regr, newdata = data.frame(age = 18:80),type = "response")*250 + 50
lines(x = 18:80, y = predicted, lwd = 3, col = "#FF0030A0")
axis(4, at = c(50, 175, 300), labels = c("0 %", "50 %", "100%"), col = "#FF0030")
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: eine Einteilung von Größen in 2 Gruppen
Wow Bernhard!
Vielen Dank das hat sehr geholfen, vielen Dank für deine schnelle und ausführliche Hilfe.
LG
Vielen Dank das hat sehr geholfen, vielen Dank für deine schnelle und ausführliche Hilfe.
LG
Re: eine Einteilung von Größen in 2 Gruppen
Die logistische Regression hat super funktioniert. Jedoch klappt das grafische Darstellen als ggplot nicht...
die Altersgruppen habe ich folgendermaßen eingeteilt:
age.min=16
age.max=100
age.x <- seq(age.min, age.max, by=1)
age.modell <- data.frame(age=age.x)
head(age.modell)
tail(age.modell)
age.prognose <- predict(regr, age.modell, type = "response")
und das Gehalt:
pred.wage <- predict(regr, Wage, type = "response")
anschließend den ggplot:
ggplot(age.prognose, aes(x=age.prognose, y=pred.wage)) + geom_line()
###Fehler: `data` must be a data frame, or other object coercible by `fortify()`, not a numeric vector
Wie und welcher Datensatz ist denn noch kein Data.Frame?
Danke im Voraus für eure Hilfe!
Liebe Grüße
Heythere
die Altersgruppen habe ich folgendermaßen eingeteilt:
age.min=16
age.max=100
age.x <- seq(age.min, age.max, by=1)
age.modell <- data.frame(age=age.x)
head(age.modell)
tail(age.modell)
age.prognose <- predict(regr, age.modell, type = "response")
und das Gehalt:
pred.wage <- predict(regr, Wage, type = "response")
anschließend den ggplot:
ggplot(age.prognose, aes(x=age.prognose, y=pred.wage)) + geom_line()
###Fehler: `data` must be a data frame, or other object coercible by `fortify()`, not a numeric vector
Wie und welcher Datensatz ist denn noch kein Data.Frame?
Danke im Voraus für eure Hilfe!
Liebe Grüße
Heythere
Re: eine Einteilung von Größen in 2 Gruppen
Hallo!
age.prognose entsteht hier als Vector und wird danach nicht mehr verändert.
LG,
Bernhard
PS: Guck mal hier, wie die das mit stat_smooth in ggplot2 machen: http://www.cookbook-r.com/Statistical_a ... egression/
age.prognose entsteht hier als Vector und wird danach nicht mehr verändert.
Und das wir dann hier als data an ggplot() übergeben:heythere hat geschrieben: ↑Mi Jun 16, 2021 4:13 pmCode: Alles auswählen
age.prognose <- predict(regr, age.modell, type = "response")
Das ist aber falsch, da ggplot2 im Gegensatz zu base-Grafiken keine Vektoren annimmt, wenn sie nicht vorher in einen Dataframe eingepackt wurden.Code: Alles auswählen
ggplot(age.prognose, ...
LG,
Bernhard
PS: Guck mal hier, wie die das mit stat_smooth in ggplot2 machen: http://www.cookbook-r.com/Statistical_a ... egression/
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: eine Einteilung von Größen in 2 Gruppen
Danke für die Hilfe!
Das sollte es jetzt gewesen sein.
Das sollte es jetzt gewesen sein.