So führen sie eine ols-regression in r durch (mit beispiel)
Die gewöhnliche Regression der kleinsten Quadrate (OLS) ist eine Methode, mit der wir eine Linie finden können, die die Beziehung zwischen einer oder mehreren Prädiktorvariablen und einer Antwortvariablen am besten beschreibt.
Mit dieser Methode können wir die folgende Gleichung finden:
ŷ = 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 dem Prädiktor und der Antwortvariablen zu verstehen, und sie kann verwendet werden, um den Wert einer Antwortvariablen anhand des Werts der Prädiktorvariablen vorherzusagen.
Das folgende Schritt-für-Schritt-Beispiel zeigt, wie eine OLS-Regression in R durchgeführt wird.
Schritt 1: Erstellen Sie die Daten
Für dieses Beispiel erstellen wir einen Datensatz mit den folgenden zwei Variablen für 15 Schüler:
- Gesamtzahl der gelernten Stunden
- Prüfungsergebnis
Wir werden eine OLS-Regression durchführen und dabei Stunden als Prädiktorvariable und Prüfungsergebnis als Antwortvariable verwenden.
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
Schritt 2: Visualisieren Sie die Daten
Bevor wir eine OLS-Regression durchführen, erstellen wir ein Streudiagramm, um die Beziehung zwischen Stunden und Prüfungsergebnis zu visualisieren:
library (ggplot2) #create scatterplot ggplot(df, aes(x=hours, y=score)) + geom_point(size= 2 )
Eine der vier Annahmen der linearen Regression besteht darin, dass zwischen dem Prädiktor und der Antwortvariablen eine lineare Beziehung besteht.
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.
Hinweis : R definiert eine Beobachtung als Ausreißer, wenn sie das 1,5-fache des Interquartilbereichs oberhalb des dritten Quartils oder das 1,5-fache des Interquartilbereichs unterhalb des ersten Quartils beträgt.
Wenn eine Beobachtung ein Ausreißer ist, erscheint ein kleiner Kreis im Boxplot:
library (ggplot2) #create scatterplot ggplot(df, aes(y=score)) + geom_boxplot()
Es gibt keine kleinen Kreise im Boxplot, was bedeutet, dass es in unserem Datensatz keine Ausreißer gibt.
Schritt 3: Führen Sie eine OLS-Regression durch
Als nächstes können wir die Funktion lm() in R verwenden, um eine OLS-Regression durchzuführen, wobei wir Stunden als Prädiktorvariable und Score als Antwortvariable verwenden:
#fit simple linear regression model model <- lm(score~hours, data=df) #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.
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 Prädiktorvariablen 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 Gesamtsignifikanz des Regressionsmodells, d. h. ob die Prädiktorvariablen 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
Schließlich müssen wir Residuendiagramme erstellen, um die Annahmen der Homoskedastizität und Normalität zu überprüfen.
Die Annahme der Homoskedastizität besteht darin, dass die Residuen eines Regressionsmodells auf jeder Ebene einer Prädiktorvariablen ungefähr die gleiche Varianz aufweisen.
Um zu überprüfen, ob diese Annahme erfüllt ist, können wir ein Diagramm der Residuen gegenüber den Anpassungen erstellen.
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.
Die Normalitätsannahme besagt, dass die Residuen eines Regressionsmodells annähernd normalverteilt sind.
Um zu überprüfen, ob diese Annahme erfüllt ist, können wir ein QQ-Diagramm erstellen. Wenn die Plotpunkte entlang einer annähernd geraden Linie liegen, die einen Winkel von 45 Grad bildet, 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 OLS-Regressionsmodells erfüllt sind.
Somit ist die Ausgabe unseres Modells zuverlässig.
Hinweis : Wenn eine oder mehrere der Annahmen nicht erfüllt wären, könnten wir versuchen, unsere Daten zu transformieren .
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in R ausführen:
So führen Sie eine multiple lineare Regression in R durch
So führen Sie eine exponentielle Regression in R durch
So führen Sie eine gewichtete Regression der kleinsten Quadrate in R durch