So führen sie eine einfache lineare regression in r durch (schritt für schritt)
Die einfache lineare Regression ist eine Technik, mit der wir die Beziehung zwischen einer einzelnen erklärenden Variablen und einer einzelnen Antwortvariablen verstehen können.
Kurz gesagt, diese Technik findet eine Linie, die am besten zu den Daten „passt“ und hat die folgende Form:
ŷ = b 0 + b 1 x
Gold:
- ŷ : Der geschätzte Antwortwert
- b 0 : Der Ursprung der Regressionslinie
- b 1 : Die Steigung der Regressionsgeraden
Diese Gleichung kann uns helfen, die Beziehung zwischen der erklärenden Variablen und der Antwortvariablen zu verstehen, und (vorausgesetzt, sie ist statistisch signifikant) kann verwendet werden, um den Wert einer Antwortvariablen anhand des Werts der erklärenden Variablen vorherzusagen.
Dieses Tutorial bietet eine Schritt-für-Schritt-Erklärung, wie eine einfache lineare Regression in R durchgeführt wird.
Schritt 1: Daten laden
Für dieses Beispiel erstellen wir einen gefälschten Datensatz mit den folgenden zwei Variablen für 15 Schüler:
- Gesamtzahl der Stunden, die für bestimmte Prüfungen gelernt wurden
- Prüfungsergebnis
Wir werden versuchen, ein einfaches lineares Regressionsmodell anzupassen, das Stunden als erklärende Variable und Untersuchungsergebnisse als Antwortvariable verwendet.
Der folgende Code zeigt, wie dieser gefälschte Datensatz in R erstellt wird:
#create dataset df <- data.frame(hours=c(1, 2, 4, 5, 5, 6, 6, 7, 8, 10, 11, 11, 12, 12, 14), score=c(64, 66, 76, 73, 74, 81, 83, 82, 80, 88, 84, 82, 91, 93, 89)) #view first six rows of dataset head(df) hours score 1 1 64 2 2 66 3 4 76 4 5 73 5 5 74 6 6 81 #attach dataset to make it more convenient to work with attach(df)
Schritt 2: Visualisieren Sie die Daten
Bevor wir ein einfaches lineares Regressionsmodell anpassen, müssen wir zunächst die Daten visualisieren, um sie zu verstehen.
Zunächst möchten wir sicherstellen, dass die Beziehung zwischen Stunden und Punktzahl annähernd linear ist, da dies eine massive zugrunde liegende Annahme einer einfachen linearen Regression ist. Wir können ein einfaches Streudiagramm erstellen, um die Beziehung zwischen den beiden Variablen zu visualisieren:
scatter.smooth(hours, score, main=' Hours studied vs. Exam Score ')
Aus der Grafik können wir ersehen, dass die Beziehung linear zu sein scheint. Mit zunehmender Stundenzahl steigt tendenziell auch die Punktzahl linear an.
Anschließend können wir ein Boxplot erstellen, um die Verteilung der Prüfungsergebnisse zu visualisieren und auf Ausreißer zu prüfen. Standardmäßig definiert R eine Beobachtung als Ausreißer, wenn sie das 1,5-fache des Interquartilbereichs über dem dritten Quartil (Q3) oder das 1,5-fache des Interquartilbereichs unter dem ersten Quartil (Q1) beträgt.
Wenn eine Beobachtung ein Ausreißer ist, erscheint ein kleiner Kreis im Boxplot:
boxplot(score)
Es gibt keine kleinen Kreise im Boxplot, was bedeutet, dass es in unserem Datensatz keine Ausreißer gibt.
Schritt 3: Führen Sie eine einfache lineare Regression durch
Sobald wir bestätigt haben, dass die Beziehung zwischen unseren Variablen linear ist und es keine Ausreißer gibt, können wir mit der Anpassung eines einfachen linearen Regressionsmodells fortfahren, indem wir Stunden als erklärende Variable und die Punktzahl als Antwortvariable verwenden:
#fit simple linear regression model model <- lm(score~hours) #view model summary summary(model) Call: lm(formula = score ~ hours) Residuals: Min 1Q Median 3Q Max -5,140 -3,219 -1,193 2,816 5,772 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 65,334 2,106 31,023 1.41e-13 *** hours 1.982 0.248 7.995 2.25e-06 *** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.641 on 13 degrees of freedom Multiple R-squared: 0.831, Adjusted R-squared: 0.818 F-statistic: 63.91 on 1 and 13 DF, p-value: 2.253e-06
Aus der Modellzusammenfassung können wir ersehen, dass die angepasste Regressionsgleichung lautet:
Punktzahl = 65,334 + 1,982*(Stunden)
Das bedeutet, dass jede weitere gelernte Stunde mit einer durchschnittlichen Prüfungspunktsteigerung von 1.982 Punkten verbunden ist. Und der ursprüngliche Wert von 65.334 gibt uns die durchschnittlich erwartete Prüfungspunktzahl für einen Studenten an, der null Stunden studiert.
Wir können diese Gleichung auch verwenden, um die erwartete Prüfungspunktzahl basierend auf der Anzahl der Stunden, die ein Student studiert, zu ermitteln. Beispielsweise sollte ein Student, der 10 Stunden lernt, eine Prüfungspunktzahl von 85,15 erreichen:
Punktzahl = 65,334 + 1,982*(10) = 85,15
So interpretieren Sie den Rest der Modellzusammenfassung:
- Pr(>|t|): Dies ist der p-Wert, der den Modellkoeffizienten zugeordnet ist. Da der p-Wert für Stunden (2,25e-06) deutlich unter 0,05 liegt, können wir sagen, dass ein statistisch signifikanter Zusammenhang zwischen Stunden und Punktzahl besteht.
- Multiples R-Quadrat: Diese Zahl sagt uns, dass der Prozentsatz der Variation in den Prüfungsergebnissen durch die Anzahl der gelernten Stunden erklärt werden kann. Im Allgemeinen gilt: Je größer der R-Quadrat-Wert eines Regressionsmodells, desto besser können die erklärenden Variablen den Wert der Antwortvariablen vorhersagen. In diesem Fall können 83,1 % der Abweichungen in den Ergebnissen durch die Lernstunden erklärt werden.
- Reststandardfehler: Dies ist der durchschnittliche Abstand zwischen den beobachteten Werten und der Regressionsgeraden. Je niedriger dieser Wert ist, desto besser kann eine Regressionsgerade den beobachteten Daten entsprechen. In diesem Fall weicht die durchschnittliche Punktzahl der Prüfung um 3.641 Punkte von der durch die Regressionsgerade vorhergesagten Punktzahl ab.
- F-Statistik und p-Wert: Die F-Statistik ( 63,91 ) und der entsprechende p-Wert ( 2,253e-06 ) geben Auskunft über die Gesamtbedeutung des Regressionsmodells, d. h. ob die erklärenden Variablen im Modell zur Erklärung der Variation nützlich sind . in der Antwortvariablen. Da der p-Wert in diesem Beispiel weniger als 0,05 beträgt, ist unser Modell statistisch signifikant und Stunden werden als nützlich zur Erklärung der Bewertungsvariation angesehen.
Schritt 4: Erstellen Sie Restdiagramme
Nachdem das einfache lineare Regressionsmodell an die Daten angepasst wurde, besteht der letzte Schritt darin, Residuendiagramme zu erstellen.
Eine der wichtigsten Annahmen der linearen Regression besteht darin, dass die Residuen eines Regressionsmodells annähernd normalverteilt und auf jeder Ebene der erklärenden Variablen homoskedastisch sind. Wenn diese Annahmen nicht erfüllt sind, könnten die Ergebnisse unseres Regressionsmodells irreführend oder unzuverlässig sein.
Um zu überprüfen, ob diese Annahmen erfüllt sind, können wir die folgenden Residuendiagramme erstellen:
Darstellung der Residuen im Vergleich zu angepassten Werten: Diese Darstellung eignet sich zur Bestätigung der Homoskedastizität. Die x-Achse zeigt die angepassten Werte und die y-Achse zeigt die Residuen an. Solange die Residuen scheinbar zufällig und gleichmäßig über den gesamten Graphen um den Nullwert verteilt sind, können wir davon ausgehen, dass die Homoskedastizität nicht verletzt wird:
#define residuals res <- resid(model) #produce residual vs. fitted plot plot(fitted(model), res) #add a horizontal line at 0 abline(0,0)
Die Residuen scheinen zufällig um Null herum verstreut zu sein und zeigen kein erkennbares Muster, sodass diese Annahme erfüllt ist.
QQ-Diagramm: Dieses Diagramm ist nützlich, um zu bestimmen, ob die Residuen einer Normalverteilung folgen. Wenn die Datenwerte im Diagramm einer annähernd geraden Linie im 45-Grad-Winkel folgen, sind die Daten normalverteilt:
#create QQ plot for residuals qqnorm(res) #add a straight diagonal line to the plot qqline(res)
Die Residuen weichen ein wenig von der 45-Grad-Linie ab, aber nicht genug, um ernsthafte Bedenken auszulösen. Wir können davon ausgehen, dass die Normalitätsannahme erfüllt ist.
Da die Residuen normalverteilt und homoskedastisch sind, haben wir überprüft, dass die Annahmen des einfachen linearen Regressionsmodells erfüllt sind. Somit ist die Ausgabe unseres Modells zuverlässig.
Den vollständigen R-Code, der in diesem Tutorial verwendet wird, finden Sie hier .