Seite 1 von 1

lineare Regression, Streudiagramm

Verfasst: Fr Aug 10, 2018 10:56 am
von senta
Hallo,

im Rahmen einer Hausarbeit möchten wir die einfache lineare Regression auf Grundlage des PISA-Datensatzes von Bildungsgang und der Mathekompetenz errechnen und grafisch darstellen. Intercept und Steigungskoeffizient werden ausgespuckt, leider zeigt R einen Boxplot (mit Regressionsgerade) statt eines Streudiagramms.

Da "Bildungsgang" (nominal) vier verschiedene Schulformen enthält, haben wir die Variable dichotomisiert, um mit 0=kein Gymnasium und 1=Gymnasium weiter zurechnen.

Wir verzweifeln schon, es ist bestimmt ein Anfängerfehler! :roll: Kann uns vielleicht jemand helfen? Dankeschön!

Code: Alles auswählen

reg1.unst<-lm(pisa.nm$mathe~pisa.nm$bildga.gym)
reg1.unst
# Coefficients:
# (Intercept)  pisa.nm$bildga.gymGymnasium  
# 476.8                        118.7 
plot(pisa.nm$bildga.gym,pisa.nm$mathe)

Re: lineare Regression, Streudiagramm

Verfasst: Fr Aug 10, 2018 11:31 am
von jogo
Hallo Senta,

willkommen im Forum!
senta hat geschrieben: Fr Aug 10, 2018 10:56 am

Code: Alles auswählen

reg1.unst<-lm(pisa.nm$mathe~pisa.nm$bildga.gym)
reg1.unst
# Coefficients:
# (Intercept)  pisa.nm$bildga.gymGymnasium  
# 476.8                        118.7 
plot(pisa.nm$bildga.gym,pisa.nm$mathe)
Du hättest auch so schreiben können:

Code: Alles auswählen

reg1.unst <- lm(mathe ~ bildga.gym, data=pisa.nm)
plot(mathe ~ bildga.gym, data=pisa.nm)
Etwas mehr Informationen über die Regression bekommst Du mit

Code: Alles auswählen

summary(reg1.unst)
im Rahmen einer Hausarbeit möchten wir die einfache lineare Regression auf Grundlage des PISA-Datensatzes von Bildungsgang und der Mathekompetenz errechnen und grafisch darstellen. Intercept und Steigungskoeffizient werden ausgespuckt, leider zeigt R einen Boxplot (mit Regressionsgerade) statt eines Streudiagramms.

Da "Bildungsgang" (nominal) vier verschiedene Schulformen enthält, haben wir die Variable dichotomisiert, um mit 0=kein Gymnasium und 1=Gymnasium weiter zurechnen.
Bei dem Plot ist mir nicht klar, wie ein Streudiagramm aussehen soll, wenn $bildga.gym eine dichotome Variable ist.
Du meinst nicht zufällig ein Histogramm (bzw. zwei Histogramme)?

Gruß, Jörg

Re: lineare Regression, Streudiagramm

Verfasst: Fr Aug 10, 2018 1:27 pm
von bigben
Ob plot() einen Boxplot oder ein Streudiagramm zeichnet hängt nur davon ab, welchen Datentyp man übergibt. Ob man auf der x-Achse einen Faktor oder eine numerische Variable übergibt. Beispiel:

Code: Alles auswählen

beisp <- data.frame(mathe = runif(100), gymnasium = gl(2, 50))

plot(mathe ~ gymnasium, data = beisp) # boxplot
plot(mathe ~ as.numeric(gymnasium), data = beisp) # kein boxplot
plot(mathe ~ jitter(as.numeric(gymnasium)), data = beisp) # so ist besser, wenn man viele Datenpunkte hat
HTH,
Bernhard



Nachtrag von Edit: Ich fände ja sowas hier gut, wie würde Euch das gefallen?

Code: Alles auswählen

beisp <- data.frame(mathe = runif(100), gymnasium = gl(2, 50))

a <- density(beisp$mathe[beisp$gymnasium==1])
b <- density(beisp$mathe[beisp$gymnasium==2])
plot(a, ylim=c(0, max(a$y,b$y)), main = "Vergleich Mathe", 
     col="blue", xlim =c(0,1), lty=3, 
     xlab="Matheleistungen", ylab="Verteilungsdichte")
lines(b, col="darkgreen", lty=2)
rug(beisp$mathe[beisp$gymnasium==1], col="blue")
rug(beisp$mathe[beisp$gymnasium==2], col="darkgreen", side=3)