Multiple lineare Regression in R: Einfache und schrittweise Regression mit Beispielen

โšก Intelligente Zusammenfassung

Einfache und multiple lineare Regression in R modellieren ein kontinuierliches Ergebnis als gewichtete Summe von Prรคdiktoren, die mittels der Methode der kleinsten Quadrate angepasst werden. Diese Einfรผhrung behandelt die Funktion `lm()`, das Lesen von Koeffizienten, Faktorprรคdiktoren, die Residuenanalyse, Vorhersagen und die automatische Variablenauswahl.

  • ๐Ÿ“ Kerngleichung: Bei der einfachen Regression wird y = alpha + beta x angepasst, bei der multiplen Regression wird dieselbe Gerade auf k Prรคdiktoren in Matrixform erweitert.
  • ๐Ÿงฎ Schรคtzmethode: Die Methode der kleinsten Quadrate minimiert die Summe der quadrierten vertikalen Abstรคnde zwischen beobachteten und vorhergesagten Werten.
  • ๏ธ Modellsyntax: lm(formula, data) ersetzt das Gleichheitszeichen durch eine Tilde, und -1 entfernt den Achsenabschnitt.
  • ๐Ÿ“Š Ausgabe lesen: Die Funktion summary() gibt Koeffizienten, p-Werte und das korrigierte Rยฒ aus, das im Beispiel mtcars 0.8199 erreicht.
  • ๐Ÿ”Ž Diagnose: par(mfrow = c(2, 2)) gefolgt von plot(fit) erzeugt die vier Residuenplots, die zum Testen der OLS-Annahmen verwendet wurden.
  • ๐Ÿ” Variablenauswahl: Die schrittweise Regression in olsrr fรผgt Prรคdiktoren anhand des p-Werts hinzu und entfernt sie, bis schlieรŸlich nur noch wt plus hp รผbrig bleibt.

Multiple lineare Regression in R

Wo die lineare Regression im maschinellen Lernen ihren Platz hat

Die lineare Regression ist eine der รคltesten รผberwachten Methoden. Maschinelles Lernen Algorithmen, und es ist immer noch das erste Modell, zu dem die meisten Analysten greifen. Eine der frรผhesten Anwendungen von maschinellem Lernen war die Spam Filter.

Weitere gรคngige Anwendungsgebiete von maschinellem Lernen sind:

  • Identifizierung unerwรผnschter Spam-Nachrichten in E-Mails
  • Segmentierung des Kundenverhaltens fรผr gezielte Werbung
  • Reduzierung betrรผgerischer Kreditkartentransaktionen
  • Optimierung des Energieverbrauchs in Wohnhรคusern und Bรผrogebรคuden
  • Gesichtserkennung

รœberwachtes Lernen

In รœberwachtes Lernen, enthalten die Trainingsdaten, die Sie dem Algorithmus zufรผhren, eine Beschriftung.

Klassifikation ist wahrscheinlich die am hรคufigsten verwendete Methode des รผberwachten Lernens. Eine der ersten Klassifizierungsaufgaben, mit denen sich Forscher befassten, war die Spamfilterung. Ziel des Lernprozesses ist es, vorherzusagen, ob eine E-Mail als Spam oder als regulรคre E-Mail (Ham) eingestuft wird. Nach dem Training kann die Maschine die E-Mail-Klasse erkennen.

Rรผckschritte werden hรคufig im Bereich des maschinellen Lernens verwendet, um kontinuierliche Werte vorherzusagen. Eine Regressionsaufgabe kann den Wert eines solchen Wertes vorhersagen. abhรคngige Variable basierend auf einer Reihe von unabhรคngige Variablen (auch Prรคdiktoren oder Regressoren genannt). Lineare Regressionen kรถnnen beispielsweise einen Aktienkurs, eine Wettervorhersage, Umsรคtze usw. vorhersagen.

Einige grundlegende Algorithmen fรผr รผberwachtes Lernen sind:

  • Lineare Regression
  • Logistische Regression
  • Nรคchste Nachbarn
  • Support-Vektor-Maschine (SVM)
  • Entscheidungsbรคume und Random Forest
  • Neuronale Netze

Unbeaufsichtigtes Lernen

In Unbeaufsichtigtes Lernen, die Trainingsdaten sind unbeschriftet. Das System versucht, ohne Referenz zu lernen. Unten finden Sie eine Liste von Algorithmen fรผr unรผberwachtes Lernen.

  • K-gemein
  • Hierarchisch Cluster Analyse
  • Erwartungsmaximierung
  • Visualisierung und Dimensionsreduktion
  • Hauptkomponentenanalyse
  • Kernel-PCA
  • Lokallineare Einbettung

Vor diesem Hintergrund werden im weiteren Verlauf dieses Tutorials Regressionsmodelle in R Schritt fรผr Schritt aufgebaut.

Einfache lineare Regression in R

Die lineare Regression beantwortet eine einfache Frage: Lรคsst sich eine exakte Beziehung zwischen einer Zielvariablen und einer Reihe von Prรคdiktoren messen?

Das einfachste Wahrscheinlichkeitsmodell ist das lineare Modell:

Einfache lineare Regression in R

woher

  • y = Abhรคngige Variable
  • x = Unabhรคngige Variable
  • Einfache lineare Regression in R = zufรคllige Fehlerkomponente
  • Einfache lineare Regression in R = abfangen
  • Einfache lineare Regression in R = Koeffizient von x

Betrachten Sie das folgende Diagramm:

Einfache lineare Regression in R

Die Gleichung ist Einfache lineare Regression in R In dieser Gleichung betrรคgt der Achsenabschnitt 4.77. Wenn x also gleich 0 ist, betrรคgt der angepasste y-Wert 4.77. Die Steigung gibt an, in welchem โ€‹โ€‹Verhรคltnis sich y รคndert, wenn sich x รคndert.

Um die optimalen Werte von abzuschรคtzen Einfache lineare Regression in R und Einfache lineare Regression in R, verwenden Sie eine Methode namens Gewรถhnliche kleinste Quadrate (OLS). Diese Methode versucht, die Parameter zu finden, die die Summe der quadratischen Fehler minimieren, d. h. den vertikalen Abstand zwischen den vorhergesagten y-Werten und den tatsรคchlichen y-Werten. Der Unterschied ist als bekannt Fehlerbegriff.

Bevor Sie das Modell schรคtzen, kรถnnen Sie durch die Erstellung eines Streudiagramms feststellen, ob eine lineare Beziehung zwischen y und x plausibel ist.

Streudiagramm

Wir werden einen sehr einfachen Datensatz verwenden, um das Konzept der einfachen linearen Regression zu erklรคren. Wir importieren die durchschnittlichen GrรถรŸen und Gewichte amerikanischer Frauen. Der Datensatz enthรคlt 15 Beobachtungen. Sie mรถchten messen, ob Hรถhen positiv mit Gewichten korrelieren.

library(ggplot2)
path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/women.csv'
df <-read.csv(path)
ggplot(df,aes(x=height, y =  weight))+
geom_point()

Ausgang:

Streudiagramm

Das Streudiagramm deutet auf eine allgemeine Tendenz hin, dass das Gewicht mit zunehmender KรถrpergrรถรŸe steigt. Im nรคchsten Schritt messen Sie, um wie viel das Gewicht pro zusรคtzlicher KรถrpergrรถรŸe zunimmt.

Kleinste-Quadrate-Schรคtzungen

In einer einfachen OLS-Regression ist die Berechnung von Kleinste-Quadrate-Schรคtzungen und Kleinste-Quadrate-Schรคtzungen Es ist unkompliziert. Dieses Tutorial leitet die Formeln nicht her, sondern gibt sie lediglich an.

Sie mรถchten abschรคtzen: Kleinste-Quadrate-Schรคtzungen

Das Ziel der OLS-Regression besteht darin, die folgende Gleichung zu minimieren:

Kleinste-Quadrate-Schรคtzungen

woher

Kleinste-Quadrate-Schรคtzungen ist der tatsรคchliche Wert und Kleinste-Quadrate-Schรคtzungen ist der vorhergesagte Wert.

Die Lรถsung fรผr Kleinste-Quadrate-Schรคtzungen is Kleinste-Quadrate-Schรคtzungen

Beachten Sie, dass Kleinste-Quadrate-Schรคtzungen bedeutet den Durchschnittswert von x

Die Lรถsung fรผr Kleinste-Quadrate-Schรคtzungen is Kleinste-Quadrate-Schรคtzungen

In R kรถnnen Sie die Funktionen cov() und var() verwenden, um Schรคtzungen vorzunehmen. Kleinste-Quadrate-Schรคtzungen und Sie kรถnnen die Funktion โ€žmean()โ€œ zum Schรคtzen verwenden Kleinste-Quadrate-Schรคtzungen

beta <- cov(df$height, df$weight) / var (df$height)
beta

Ausgang:

##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height)
alpha

Ausgang:

## [1] -87.51667

Der Beta-Koeffizient impliziert, dass mit jedem zusรคtzlichen Zoll KรถrpergrรถรŸe das durchschnittliche Gewicht um 3.45 Pfund zunimmt.

Das Schรคtzen einer linearen Gleichung von Hand ist zwar lehrreich, aber unpraktisch. R Die Funktion `lm()` wird Ihnen zur Verfรผgung gestellt und ab dem nรคchsten Abschnitt verwendet. In realen Projekten werden Sie fast nie ein Modell mit nur einem Prรคdiktor anpassen; Regressionsaufgaben beinhalten normalerweise mehrere Schรคtzer gleichzeitig.

Multiple lineare Regression in R

Praktische Anwendungen der Regressionsanalyse verwenden komplexere Modelle als das einfache lineare Modell. Das probabilistische Modell, das mehr als eine unabhรคngige Variable enthรคlt, wird als Regressionsmodell bezeichnet. mehrere Regressionsmodelle. Die allgemeine Form dieses Modells ist:

Multiple lineare Regression in R

In Matrixnotation kรถnnen Sie das Modell umschreiben:

  • Multiple lineare Regression in R

Die abhรคngige Variable y ist nun eine Funktion von k unabhรคngigen Variablen. Der Wert des Koeffizienten Multiple lineare Regression in R bestimmt den Beitrag der unabhรคngigen Variablen Multiple lineare Regression in R und Multiple lineare Regression in R.

Wir stellen kurz die Annahme vor, die wir รผber den Zufallsfehler gemacht haben Multiple lineare Regression in R des OLS:

  • Mittelwert gleich 0
  • Varianz gleich Multiple lineare Regression in R
  • Normalverteilung
  • Zufรคllige Fehler sind unabhรคngig (im probabilistischen Sinne)

Sie mรผssen nach lรถsen Multiple lineare Regression in R, der Vektor der Regressionskoeffizienten, der die Summe der quadratischen Fehler zwischen den vorhergesagten und tatsรคchlichen y-Werten minimiert.

Die geschlossene Lรถsung lautet:

Multiple lineare Regression in R

mit:

  • zeigt die transponieren der Matrix X
  • Multiple lineare Regression in R zeigt die invertierbare Matrix

Die folgenden Beispiele verwenden den integrierten Datensatz โ€žmtcarsโ€œ. Ziel ist es, den Kraftstoffverbrauch in Meilen pro Gallone (mpg) anhand einer Reihe von Merkmalen vorherzusagen.

Kontinuierliche Variablen in R

Vorerst verwenden Sie nur die kontinuierlichen Variablen und lassen kategorische Merkmale auรŸer Acht. Die Variable am ist eine binรคre Variable, die den Wert 1 annimmt, wenn das Getriebe manuell ist, und den Wert 0, wenn es sich um ein Auto mit Automatikgetriebe handelt; vs ist ebenfalls eine binรคre Variable.

library(dplyr)
df <- mtcars %>%
select(-c(am, vs, cyl, gear, carb))
glimpse(df)

Ausgang:

## Observations: 32
## Variables: 6
## $ mpg  <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19....
## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 1...
## $ hp   <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, ...
## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.9...
## $ wt   <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3...
## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 2...

Sie kรถnnen die Funktion lm() verwenden, um die Parameter zu berechnen. Die grundlegende Syntax dieser Funktion lautet:

lm(formula, data, subset)
Arguments:
	-formula: The equation you want to estimate	
	-data: The dataset used
	-subset: Estimate the model on a subset of the dataset

Bedenken Sie, dass eine Gleichung die folgende Form hat

Kontinuierliche Variablen in R

in R.

  • Das Symbol = wird durch ~ ersetzt
  • Jedes x wird durch den Variablennamen ersetzt
  • Wenn Sie die Konstante weglassen mรถchten, fรผgen Sie am Ende der Formel -1 hinzu

Ejemplo:

Sie mรถchten das Gewicht von Personen anhand ihrer GrรถรŸe und ihres Einkommens schรคtzen. Die Gleichung lautet

Kontinuierliche Variablen in R

Die Gleichung in R lautet wie folgt:

y ~ X1+ X2+โ€ฆ+Xn # Mit Achsenabschnitt

Also fรผr unser Beispiel:

  • Wiegen ~ KรถrpergrรถรŸe + Umsatz

Ihr Ziel besteht darin, die Meile pro Gallone auf der Grundlage einer Reihe von Variablen zu schรคtzen. Die zu schรคtzende Gleichung lautet:

Kontinuierliche Variablen in R

Sie schรคtzen Ihre erste lineare Regression und speichern das Ergebnis im Anpassungsobjekt.

model <- mpg ~ disp + hp + drat + wt + qsec
fit <- lm(model, df)
fit

Code Erlรคuterung

  • Modell <- mpg ~ disp + hp + drat + wt + qsec: Speichere das Modell zur Schรคtzung
  • lm(Modell, df): Schรคtzen Sie das Modell mit dem Datenrahmen df
## 
## Call:
## lm(formula = model, data = df)
## 
## Coefficients:
## (Intercept)         disp           hp         drat           wt  
##    16.53357      0.00872     -0.02060      2.01577     -4.38546  
##        qsec  
##     0.64015	

Die Ausgabe liefert nicht genรผgend Informationen รผber die Qualitรคt der Anpassung. Weitere Details wie die Signifikanz der Koeffizienten, den Freiheitsgrad und die Form der Residuen kรถnnen Sie mit der Funktion summary() abrufen.

summary(fit)

Ausgang:

## return the p-value and coefficient
## 
## Call:
## lm(formula = model, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5404 -1.6701 -0.4264  1.1320  5.4996 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) 16.53357   10.96423   1.508  0.14362   
## disp         0.00872    0.01119   0.779  0.44281   
## hp          -0.02060    0.01528  -1.348  0.18936   
## drat         2.01578    1.30946   1.539  0.13579   
## wt          -4.38546    1.24343  -3.527  0.00158 **
## qsec         0.64015    0.45934   1.394  0.17523   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.558 on 26 degrees of freedom
## Multiple R-squared:  0.8489, Adjusted R-squared:  0.8199 
## F-statistic: 29.22 on 5 and 26 DF, p-value: 6.892e-10

Schlussfolgerung aus der obigen Tabellenausgabe

  • Die Tabelle zeigt einen starken negativen Zusammenhang zwischen wt und mpg sowie einen positiven Koeffizienten fรผr drat.
  • Nur die Variable wt hat einen statistischen Einfluss auf mpg. Denken Sie daran, dass wir zum Testen einer Hypothese in der Statistik Folgendes verwenden:
    • H0: Kein statistischer Effekt
    • H1: Der Prรคdiktor hat einen bedeutenden Einfluss auf y
    • Wenn der p-Wert unter 0.05 liegt, bedeutet dies, dass die Variable statistisch signifikant ist
  • Das korrigierte BestimmtheitsmaรŸ (Rยฒ) gibt den Anteil der durch das Modell erklรคrten Varianz von y an, bereinigt um die Anzahl der Prรคdiktoren. Hier betrรคgt es 0.8199, das Modell erklรคrt also etwa 82 Prozent der Varianz des Kraftstoffverbrauchs (mpg). Das Rยฒ liegt immer zwischen 0 und 1, wobei hรถhere Werte besser sind.

Sie kรถnnen das ausfรผhren ANOVA Testen Sie, um die Auswirkung jedes Merkmals auf die Varianzen mit der Funktion anova() abzuschรคtzen.

anova(fit)

Ausgang:

## Analysis of Variance Table
## 
## Response: mpg
##           Df Sum Sq Mean Sq  F value   Pr(>F)    
## disp       1 808.89  808.89 123.6185 2.23e-11 ***
## hp         1  33.67   33.67   5.1449 0.031854 *  
## drat       1  30.15   30.15   4.6073 0.041340 *  
## wt         1  70.51   70.51  10.7754 0.002933 ** 
## qsec       1  12.71   12.71   1.9422 0.175233    
## Residuals 26 170.13    6.54                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1	

Eine konventionellere Methode zur Schรคtzung der Modellleistung besteht darin, das Residuum gegenรผber verschiedenen MaรŸen anzuzeigen.

Mit der Funktion plot() kรถnnen Sie vier Diagramme anzeigen:

โ€“ Residuen vs. angepasste Werte

โ€“ Normales QQ-Diagramm: Theoretisches Quartil vs. standardisierte Residuen

โ€“ Skalenort: Angepasste Werte vs. Quadratwurzeln der standardisierten Residuen

โ€“ Residuen vs. Leverage: Leverage vs. standardisierte Residuen

Sie fรผgen den Code `par(mfrow = c(2, 2))` vor `plot(fit)` ein. Wenn Sie diese Codezeile nicht hinzufรผgen, fordert R Sie auf, die Eingabetaste zu drรผcken, um das nรคchste Diagramm anzuzeigen.

par(mfrow = c(2, 2))

Code Erlรคuterung

  • (mfrow=c(2,2)): Gibt ein Fenster mit den vier Diagrammen nebeneinander zurรผck.
  • Die ersten 2 addieren die Anzahl der Zeilen
  • Die zweite 2 addiert die Anzahl der Spalten.
  • Wenn Sie (mfrow=c(3,2)): schreiben, erstellen Sie ein Fenster mit 3 Zeilen und 2 Spalten
plot(fit)

Ausgang:

Kontinuierliche Variablen in R

Die lm()-Funktion gibt eine Liste mit vielen nรผtzlichen Informationen zurรผck. Sie kรถnnen darauf zugreifen, indem Sie das von Ihnen erstellte fit-Objekt, gefolgt vom $-Zeichen und den gewรผnschten Informationen, verwenden.tract.

โ€“ Koeffizienten: `fit$coefficients`

โ€“ Residuen: โ€žfit$Residuenโ€œ.

โ€“ angepasster Wert: `fit$fitted.values`

Faktorenregression in R

Bei der letzten Modellschรคtzung fรผhren Sie eine Regression von mpg nur fรผr kontinuierliche Variablen durch. Es ist einfach, Faktorvariablen zum Modell hinzuzufรผgen. Sie fรผgen Ihrem Modell die Variable am hinzu. Es ist wichtig sicherzustellen, dass es sich bei der Variablen um eine Faktorebene und nicht um eine kontinuierliche Variable handelt.

df <- mtcars %>%
    mutate(cyl = factor(cyl),
        vs = factor(vs),
        am = factor(am),
        gear = factor(gear),
        carb = factor(carb))
model <- mpg ~ .
summary(lm(model, df))

Ausgang:

## 
## Call:
## lm(formula = model, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5087 -1.3584 -0.0948  0.7745  4.6251 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 23.87913   20.06582   1.190   0.2525  
## cyl6        -2.64870    3.04089  -0.871   0.3975  
## cyl8        -0.33616    7.15954  -0.047   0.9632  
## disp         0.03555    0.03190   1.114   0.2827  
## hp          -0.07051    0.03943  -1.788   0.0939 .
## drat         1.18283    2.48348   0.476   0.6407  
## wt          -4.52978    2.53875  -1.784   0.0946 .
## qsec         0.36784    0.93540   0.393   0.6997  
## vs1          1.93085    2.87126   0.672   0.5115  
## am1          1.21212    3.21355   0.377   0.7113  
## gear4        1.11435    3.79952   0.293   0.7733  
## gear5        2.52840    3.73636   0.677   0.5089  
## carb2       -0.97935    2.31797  -0.423   0.6787  
## carb3        2.99964    4.29355   0.699   0.4955  
## carb4        1.09142    4.44962   0.245   0.8096  
## carb6        4.47757    6.38406   0.701   0.4938  
## carb8        7.25041    8.36057   0.867   0.3995  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.833 on 15 degrees of freedom
## Multiple R-squared:  0.8931, Adjusted R-squared:  0.779 
## F-statistic:  7.83 on 16 and 15 DF,  p-value: 0.000124

R verwendet die erste Faktorstufe als Basisgruppe. Sie mรผssen die Koeffizienten der anderen Gruppe mit denen der Basisgruppe vergleichen.

Annahmen der linearen Regression in R

Die Methode der kleinsten Quadrate liefert nur dann verlรคssliche Koeffizienten und p-Werte, wenn fรผnf Bedingungen erfรผllt sind. Die vier von `plot(fit)` erzeugten Diagnoseplots dienen genau dazu, diese Bedingungen zu รผberprรผfen.

  • Linearitรคt: Die Beziehung zwischen jedem Prรคdiktor und y ist linear. รœberprรผfen Sie die Residuen vs. angepasste Werte Eine sichtbare Kurve bedeutet, dass eine Transformation oder ein Polynomterm erforderlich ist.
  • Unabhรคngigkeit: Die Fehlerterme sind unkorreliert. Zeitlich geordnete Daten verstoรŸen hรคufig dagegen, was Sie mit durbinWatsonTest() aus dem Paket car รผberprรผfen kรถnnen.
  • Homoskedastizitรคt: Die Fehlervarianz ist รผber alle angepassten Werte hinweg konstant. Eine Trichterform im MaรŸstab-Lage Die Handlung deutet auf einen VerstoรŸ hin.
  • Normalverteilung der Residuen: Die Fehler folgen einer Normalverteilung. Die Punkte sollten auf der Diagonalen liegen. Normal QQ Grundstรผck.
  • Keine Multikollinearitรคt: Die Prรคdiktoren sind keine nahezu identischen Werte. Ein Varianzinflationsfaktor รผber 5 gilt รผblicherweise als Warnsignal.
library(car)
vif(fit)           # variance inflation factors
shapiro.test(residuals(fit))   # normality of residuals

VerstรถรŸe fรผhren nicht immer zur Ungรผltigkeit eines Modells, aber sie verรคndern die Sicherheit, die man bei den p-Werten haben kann. รœberprรผfen Sie sie daher, bevor Sie einen Koeffizienten angeben.

Wie man mit einem linearen Regressionsmodell in R Vorhersagen trifft

Das Anpassen eines Modells ist nur die halbe Miete. Die Funktion predict() wendet die angepassten Koeffizienten auf neue Beobachtungen an.

predict(object, newdata, interval = "none", level = 0.95)
arguments:
-object: The model returned by lm()
-newdata: A data frame whose columns match the predictors used in the formula
-interval: "none", "confidence" for the mean response, or "prediction" for a single new case
-level: The confidence level, 0.95 by default

Befolgen Sie diese drei Schritte.

  1. Erstelle einen Datenrahmen mit neuen Fรคllen. Die Spaltennamen mรผssen exakt mit den Prรคdiktornamen in der Formel รผbereinstimmen, und die Faktorstufen mรผssen mit den Trainingsdaten รผbereinstimmen.
  2. Rufe predict() auf. รœbergeben Sie das angepasste Objekt und den neuen Datenrahmen.
  3. Fรผge ein Intervall hinzu. Wรคhlen Sie โ€žKonfidenzโ€œ, wenn Sie die Unsicherheit um die durchschnittliche Antwort wรผnschen, und โ€žVorhersageโ€œ, wenn Sie die Spanne fรผr ein einzelnes Auto wรผnschen.
new_cars <- data.frame(wt = c(2.5, 3.2), hp = c(110, 175))
fit_final <- lm(mpg ~ wt + hp, data = mtcars)

predict(fit_final, newdata = new_cars)
predict(fit_final, newdata = new_cars, interval = "prediction")

Das Ergebnis wird gelesen. Ein Auto mit einem Gewicht von 2.5 Tonnen und 110 PS hat einen prognostizierten Verbrauch von etwa 24.1 mpg (Meilen pro Gallone). Das Prognoseintervall ist stets breiter als das Konfidenzintervall, da es zusรคtzlich zur Unsicherheit der Regressionsgeraden auch die Unsicherheit einer einzelnen Messung berรผcksichtigt.

Zwei Regeln sorgen fรผr verlรคssliche Vorhersagen. Extrapolieren Sie niemals รผber den Bereich der Trainingsvorhersagen hinaus, da es dafรผr keine Grundlage gibt. Und bewerten Sie die Vorhersagen immer anhand von Daten, die das Modell noch nicht gesehen hat, da der angegebene Fehler sonst zu optimistisch ist.

Lineare Regression vs. Logistische Regression in R

Analysten greifen oft auf lm() zurรผck, wenn das Ergebnis nicht stetig ist. Die folgende Tabelle zeigt, wo die Grenze liegt.

Eigenschaften Lineare Regression Logistische Regression
Antwortvariable Kontinuierlich Binรคr oder kategorisch
Prognostizierte Ausgabe Jede reelle Zahl Eine Wahrscheinlichkeit zwischen 0 und 1
Schรคtzung Gewรถhnliche kleinste Quadrate Maximale Wahrscheinlichkeit
PassformmaรŸ R-Quadrat, RMSE AIC, Abweichung, Genauigkeit
R-Funktion lm(Formel, Daten) glm(formula, data, family = โ€œbinomialโ€)

Wenn das Ergebnis eine Ja- oder Nein-Entscheidung ist, fahren Sie mit dem nรคchsten Schritt fort. verallgemeinertes lineares Modell anstatt eine gerade Linie durch Nullen und Einsen zu erzwingen.

Schrittweise lineare Regression in R

Der letzte Teil dieses Tutorials befasst sich mit dem schrittweise Regression Algorithmus. Der Zweck dieses Algorithmus besteht darin, potenzielle Kandidaten in den Modellen hinzuzufรผgen und zu entfernen und diejenigen beizubehalten, die einen signifikanten Einfluss auf die abhรคngige Variable haben. Dieser Algorithmus ist sinnvoll, wenn der Datensatz eine groรŸe Liste von Prรคdiktoren enthรคlt. Sie mรผssen die unabhรคngigen Variablen nicht manuell hinzufรผgen und entfernen. Die schrittweise Regression wird erstellt, um die besten Kandidaten fรผr das Modell auszuwรคhlen.

Schauen wir uns das anhand eines Beispiels an. Sie verwenden den Datensatz โ€žmtcarsโ€œ mit den kontinuierlichen Variablen lediglich zur Veranschaulichung. Bevor Sie mit der Analyse beginnen, empfiehlt es sich, die Zusammenhรคnge in den Daten mithilfe einer Korrelationsmatrix zu untersuchen. Die GGally-Bibliothek ist eine Erweiterung von ggplot2.

Die Bibliothek umfasst verschiedene Funktionen zum Anzeigen zusammenfassender Statistiken wie Korrelation und Verteilung aller Variablen in einer Matrix. Wir werden die Funktion ggscatmat verwenden, Sie kรถnnen sich aber auch auf die beziehen Vignette Weitere Informationen zur GGally-Bibliothek finden Sie hier.

Die grundlegende Syntax fรผr ggscatmat() lautet:

ggscatmat(df, columns = 1:ncol(df), corMethod = "pearson")
arguments:
-df:  A matrix of continuous variables
-columns: Pick up the columns to use in the function. By default, all columns are used
-corMethod: Define the function to compute the correlation between variable. By default, the algorithm uses the Pearson formula

Sie zeigen die Korrelationen all Ihrer Variablen an und entscheiden, welche sich am besten fรผr den ersten Schritt der schrittweisen Regression eignen. Es bestehen einige starke Korrelationen zwischen Ihren Variablen und der abhรคngigen Variable โ€žmpgโ€œ.

library(GGally)
df <- mtcars %>%
	select(-c(am, vs, cyl, gear, carb))
ggscatmat(df, columns = 1: ncol(df))

Ausgang:

Schrittweise lineare Regression in R

Schrittweise Regression โ€“ Schritt-fรผr-Schritt-Beispiel

Die Variablenauswahl ist ein wichtiger Bestandteil der Modellanpassung, und die schrittweise Regression fรผhrt diese Suche automatisch durch. Um abzuschรคtzen, wie viele mรถgliche Variablen im Datensatz vorhanden sind, berechnet man Schrittweise Regression โ€“ Schritt-fรผr-Schritt-Beispiel wobei k die Anzahl der Prรคdiktoren ist. Die Anzahl der Mรถglichkeiten wรคchst mit der Anzahl unabhรคngiger Variablen. Deshalb ist eine automatische Suche erforderlich.

Sie mรผssen das olsrr-Paket von CRAN installieren. Das Paket ist in Anaconda noch nicht verfรผgbar. Daher installieren Sie es direkt รผber die Befehlszeile:

install.packages("olsrr")

Sie kรถnnen alle Teilmengen der Mรถglichkeiten mit den Anpassungskriterien (z. B. R-Quadrat, angepasstes R-Quadrat, Bayes'sche Kriterien) grafisch darstellen. Das Modell mit den niedrigsten AIC-Kriterien ist das endgรผltige Modell.

library(olsrr)
model <- mpg~.
fit <- lm(model, df)
test <- ols_all_subset(fit)
plot(test)

Code Erlรคuterung

  • mpg ~.: Konstruieren Sie das zu schรคtzende Modell
  • lm(Modell, Freiheitsgrade): Fรผhren Sie das OLS-Modell aus
  • ols_all_subset(Anpassung): Erstellen Sie die Diagramme mit den relevanten statistischen Informationen.
  • Handlung(Test): Zeichnen Sie die Diagramme

Ausgang:

Schrittweise Regression โ€“ Schritt-fรผr-Schritt-Beispiel

Lineare Regressionsmodelle verwenden die T-Test Um den statistischen Einfluss einer unabhรคngigen Variable auf die abhรคngige Variable abzuschรคtzen, wird ein p-Wert verwendet. Forscher setzen den maximalen Schwellenwert รผblicherweise auf 10 Prozent fest; niedrigere p-Werte deuten auf einen stรคrkeren statistischen Zusammenhang hin. Die schrittweise Regression basiert auf diesem Test, um potenzielle Prรคdiktoren hinzuzufรผgen und zu entfernen. Der Algorithmus funktioniert wie folgt:

Schrittweise lineare Regression in R
Schrittweise lineare Regression in R
  • Schritt 1:: Fรผhren Sie fรผr jeden Prรคdiktor eine separate Regression auf y durch. Regressieren Sie nรคmlich x_1 auf y, x_2 auf y auf x_n. Speichern Sie die p-Wert und den Regressor mit einem p-Wert unter einem definierten Schwellenwert (standardmรครŸig 0.1) belassen. Die Prรคdiktoren mit einer Signifikanz unter dem Schwellenwert werden dem endgรผltigen Modell hinzugefรผgt. Wenn keine Variable einen p-Wert hat, der unter dem Eingabeschwellenwert liegt, stoppt der Algorithmus und Sie haben Ihr endgรผltiges Modell nur mit einer Konstante.
  • Schritt 2:: Verwenden Sie den Prรคdiktor mit dem niedrigsten p-Wert und fรผgen Sie separat eine Variable hinzu. Sie fรผhren eine Regression einer Konstante, des besten Prรคdiktors von Schritt eins und einer dritten Variable durch. Sie fรผgen dem schrittweisen Modell die neuen Prรคdiktoren mit einem Wert unter dem Eingangsschwellenwert hinzu. Wenn keine Variable einen p-Wert unter 0.1 hat, wird der Algorithmus angehalten und Sie haben Ihr endgรผltiges Modell mit nur einem Prรคdiktor. Sie fรผhren eine Regression des schrittweisen Modells durch, um die Signifikanz der besten Prรคdiktoren von Schritt 1 zu prรผfen. Wenn sie hรถher als der Entfernungsschwellenwert ist, behalten Sie sie im schrittweisen Modell. Andernfalls schlieรŸen Sie sie aus.
  • Schritt 3:: Sie wiederholen Schritt 2 mit dem neuen besten schrittweisen Modell. Der Algorithmus fรผgt dem schrittweisen Modell Prรคdiktoren basierend auf den eingegebenen Werten hinzu und schlieรŸt Prรคdiktoren aus dem schrittweisen Modell aus, wenn sie den Ausschlussschwellenwert nicht erfรผllen.
  • Der Algorithmus lรคuft so lange weiter, bis keine Variable mehr hinzugefรผgt oder ausgeschlossen werden kann.

Sie kรถnnen den Algorithmus mit der Funktion ols_stepwise() aus dem olsrr-Paket ausfรผhren.

ols_stepwise(fit, pent = 0.1, prem = 0.3, details = FALSE)

arguments:
-fit:  Model to fit. Need to use `lm()`before to run `ols_stepwise()
-pent: Threshold of the p-value used to enter a variable into the stepwise model. By default, 0.1
-prem: Threshold of the p-value used to exclude a variable into the stepwise model. By default, 0.3
-details: Print the details of each step

โš ๏ธ Hinweis zur Verpackung: Neuere Versionen von olsrr haben diese Funktionen umbenannt. Verwenden Sie ols_step_all_possible() anstelle von ols_all_subset() und ols_step_both_p() anstelle von ols_stepwise(). Die Argumente und die Ausgabe bleiben unverรคndert.

Zuvor zeigen wir Ihnen die Schritte des Algorithmus. Nachfolgend finden Sie eine Tabelle mit den abhรคngigen und unabhรคngigen Variablen:

Abhรคngige Variable Unabhรคngige Variablen
mpg disp
hp
Ratte
wt
qsec

Start

Zunรคchst fรผhrt der Algorithmus das Modell fรผr jede unabhรคngige Variable separat aus. Die Tabelle zeigt den p-Wert fรผr jedes Modell.

## [[1]]
##  (Intercept)         disp 
## 3.576586e-21 9.380327e-10 
## 
## [[2]]
##  (Intercept)           hp 
## 6.642736e-18 1.787835e-07 
## 
## [[3]]
##  (Intercept)         drat 
## 0.1796390847 0.0000177624 
## 
## [[4]]
##  (Intercept)           wt 
## 8.241799e-19 1.293959e-10 
## 
## [[5]
## (Intercept)        qsec 
##  0.61385436  0.01708199

Um in das Modell einzutreten, behรคlt der Algorithmus die Variable mit dem niedrigsten p-Wert bei. Aus der obigen Ausgabe geht hervor, dass es wt ist

Schritt 1:

Im ersten Schritt fรผhrt der Algorithmus mpg auf wt und den anderen Variablen unabhรคngig aus.

## [[1]]
##  (Intercept)           wt         disp
## 4.910746e-16 7.430725e-03 6.361981e-02 
## 
## [[2]]
##  (Intercept)           wt           hp 
## 2.565459e-20 1.119647e-06 1.451229e-03 
## 
## [[3]]
##  (Intercept)           wt         drat 
## 2.737824e-04 1.589075e-06 3.308544e-01 
## 
## [[4]]
##  (Intercept)           wt         qsec 
## 7.650466e-04 2.518948e-11 1.499883e-03

Jede Variable ist ein potenzieller Kandidat fรผr das endgรผltige Modell. Der Algorithmus behรคlt jedoch nur die Variable mit dem niedrigeren p-Wert bei. Es stellt sich heraus, dass hp einen etwas niedrigeren p-Wert als qsec aufweist, weshalb hp in das endgรผltige Modell aufgenommen wird.

Schritt 2:

Der Algorithmus wiederholt den ersten Schritt, dieses Mal jedoch mit zwei unabhรคngigen Variablen im endgรผltigen Modell.

## [[1]]
##  (Intercept)           wt           hp         disp 
## 1.161936e-16 1.330991e-03 1.097103e-02 9.285070e-01 
## 
## [[2]]
##  (Intercept)           wt           hp         drat 
## 5.133678e-05 3.642961e-04 1.178415e-03 1.987554e-01 
## 
## [[3]]
##  (Intercept)           wt           hp         qsec 
## 2.784556e-03 3.217222e-06 2.441762e-01 2.546284e-01

Keiner der verbleibenden Kandidaten weist einen p-Wert unterhalb des Eintrittsschwellenwerts auf. Der Algorithmus stoppt hier, und dies ist das endgรผltige Modell:

## 
## Call:
## lm(formula = mpg ~ wt + hp, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.941 -1.600 -0.182  1.050  5.854 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 37.22727    1.59879  23.285  < 2e-16 ***
## wt          -3.87783    0.63273  -6.129 1.12e-06 ***
## hp          -0.03177    0.00903  -3.519  0.00145 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.593 on 29 degrees of freedom
## Multiple R-squared:  0.8268, Adjusted R-squared:  0.8148 
## F-statistic: 69.21 on 2 and 29 DF,  p-value: 9.109e-12

Sie kรถnnen die Funktion ols_stepwise() verwenden, um die Ergebnisse zu vergleichen.

stp_s <-ols_stepwise(fit, details=TRUE)

Ausgang:

Der Algorithmus findet nach zwei Schritten eine Lรถsung und liefert die gleiche Ausgabe wie die obige manuelle Vorgehensweise.

Das endgรผltige Modell wird daher durch zwei Prรคdiktoren und einen Achsenabschnitt erklรคrt: Meilen pro Gallone stehen in einem negativen Zusammenhang sowohl mit der Brutto-PS-Zahl als auch mit dem Gewicht.

## You are selecting variables based on p value...
## 1 variable(s) added....
## Variable Selection Procedure
##  Dependent Variable: mpg 
## 
##  Stepwise Selection: Step 1 
## 
##  Variable wt Entered 
## 
##                         Model Summary                          
## --------------------------------------------------------------
## R                       0.868       RMSE                3.046 
## R-Squared               0.753       Coef. Var          15.161 
## Adj. R-Squared          0.745       MSE                 9.277 
## Pred R-Squared          0.709       MAE                 2.341 
## --------------------------------------------------------------
##  RMSE: Root Mean Square Error 
##  MSE: Mean Square Error 
##  MAE: Mean Absolute Error 
##		ANOVA                                 
## --------------------------------------------------------------------
##                 Sum of                                              
##                Squares        DF    Mean Square      F         Sig. 
## --------------------------------------------------------------------
## Regression     847.725         1        847.725    91.375    0.0000 
## Residual       278.322        30          9.277                     
## Total         1126.047        31                                    
## --------------------------------------------------------------------
## 
##                                   Parameter Estimates                                    
## ----------------------------------------------------------------------------------------
##       model      Beta    Std. Error    Std. Beta      t        Sig      lower     upper 
## ----------------------------------------------------------------------------------------
## (Intercept)    37.285         1.878                 19.858    0.000    33.450    41.120 
##          wt    -5.344         0.559       -0.868    -9.559    0.000    -6.486    -4.203 
## ----------------------------------------------------------------------------------------
## 1 variable(s) added...
## Stepwise Selection: Step 2 
## 
##  Variable hp Entered 
## 
##                         Model Summary                          
## --------------------------------------------------------------
## R                       0.909       RMSE                2.593 
## R-Squared               0.827       Coef. Var          12.909 
## Adj. R-Squared          0.815       MSE                 6.726 
## Pred R-Squared          0.781       MAE                 1.901 
## --------------------------------------------------------------
##  RMSE: Root Mean Square Error 
##  MSE: Mean Square Error 
##  MAE: Mean Absolute Error 
##			ANOVA                                 
## --------------------------------------------------------------------
##                 Sum of                                              
##                Squares        DF    Mean Square      F         Sig. 
## --------------------------------------------------------------------
## Regression     930.999         2        465.500    69.211    0.0000 
## Residual       195.048        29          6.726                     
## Total         1126.047        31                                    
## --------------------------------------------------------------------
## 
##                                   Parameter Estimates                                    
## ----------------------------------------------------------------------------------------
##       model      Beta    Std. Error    Std. Beta      t        Sig      lower     upper 
## ----------------------------------------------------------------------------------------
## (Intercept)    37.227         1.599                 23.285    0.000    33.957    40.497 
##          wt    -3.878         0.633       -0.630    -6.129    0.000    -5.172    -2.584 
##          hp    -0.032         0.009       -0.361    -3.519    0.001    -0.050    -0.013 
## ----------------------------------------------------------------------------------------
## No more variables to be added or removed.

Lineare Regression in R: Wichtigste Erkenntnisse und Funktionsรผbersicht

  • Die lineare Regression beantwortet eine einfache Frage: Lรคsst sich eine exakte Beziehung zwischen einer Zielvariablen und einer Reihe von Prรคdiktoren messen?
  • Die Methode der kleinsten Quadrate ermittelt die Parameter, die die Summe der quadrierten Fehler minimieren, also den vertikalen Abstand zwischen den vorhergesagten y-Werten und den tatsรคchlichen y-Werten.
  • Das probabilistische Modell, das mehr als eine unabhรคngige Variable umfasst, wird als multiples Regressionsmodell bezeichnet.
  • Der Zweck des Algorithmus โ€žSchrittweise lineare Regressionโ€œ besteht darin, potenzielle Kandidaten zu den Modellen hinzuzufรผgen und daraus zu entfernen und diejenigen beizubehalten, die einen signifikanten Einfluss auf die abhรคngige Variable haben.
  • Die Variablenauswahl ist ein wichtiger Bestandteil der Modellanpassung, und die schrittweise Regression fรผhrt diese Suche automatisch durch.

Alle in diesem Tutorial verwendeten Funktionen sind unten aufgefรผhrt:

Bibliothek Ziel Funktion Argumente
Base Berechnen Sie eine lineare Regression lm() Formel, Daten
Base Modell zusammenfassen Zusammenfassung() passen
Base Extract-Koeffizienten lm()$Koeffizient
Base Extract-Residuen lm()$Residuen
Base Extract angepasster Wert lm()$fitted.values
olsrr Fรผhren Sie eine schrittweise Regression durch ols_stepwise() Passform, Pent = 0.1, Prem = 0.3, Details = FALSE

HinweisDenken Sie daran, kategoriale Variablen vor der Modellanpassung in Faktoren umzuwandeln.

Hรคufig gestellte Fragen

Das BestimmtheitsmaรŸ (Rยฒ) steigt immer, wenn man eine Prรคdiktorvariable hinzufรผgt, selbst wenn diese nutzlos ist. Das korrigierte Rยฒ bestraft jeden zusรคtzlichen Term und kann daher sinken. Verwenden Sie das korrigierte Rยฒ, wenn Sie Modelle mit unterschiedlicher Anzahl an Prรคdiktoren vergleichen.

Die Grafik โ€žResiduen vs. Hebelwirkungโ€œ hebt einflussreiche Punkte mithilfe der Cook-Distanz hervor. Untersuchen Sie diese Punkte, bevor Sie Daten lรถschen: Ein AusreiรŸer kann ein Dateneingabefehler sein oder die aussagekrรคftigste Beobachtung in der Stichprobe darstellen.

Nein. R erstellt die Dummy-Variablen automatisch, sobald eine Spalte ein Faktor ist. Die erste Stufe dient als Referenzgruppe, und jeder weitere Koeffizient wird als Differenz zu dieser Basislinie interpretiert.

Lineare Regression ist schnell, vollstรคndig nachvollziehbar und kaum anfรคllig fรผr รœberanpassung. Daher gilt sie als Standardverfahren, bevor KI-Teams Gradient Boosting oder neuronale Netze einsetzen. In regulierten Branchen ist diese Transparenz oft erforderlich.

Ja. KI-Assistenten kรถnnen Kandidatenspezifikationen vorschlagen, schrittweise Ergebnisse erlรคutern und vor Multikollinearitรคt warnen. Behandeln Sie die Vorschlรคge als Hypothesen und bestรคtigen Sie jede einzelne mit Ihren eigenen Diagnoseverfahren und Ihrem Fachwissen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: