R Schrittweise und multiple lineare Regression [Schritt-für-Schritt-Beispiel]
Einfache lineare Regression in R
Die lineare Regression beantwortet eine einfache Frage: Können Sie eine genaue Beziehung zwischen einer Zielvariablen und einer Reihe von Prädiktoren messen?
Das einfachste Wahrscheinlichkeitsmodell ist das Geradenmodell:
woher
- y = Abhängige Variable
- x = Unabhängige Variable
-
= zufällige Fehlerkomponente
-
= abfangen
-
= Koeffizient von x
Betrachten Sie das folgende Diagramm:
Die Gleichung ist ist der Schnittpunkt. Wenn x gleich 0 ist, entspricht y dem Achsenabschnitt 4.77. ist die Steigung der Geraden. Es gibt an, in welchem Verhältnis y variiert, wenn x variiert.
Um die optimalen Werte von abzuschätzen und
, 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:
Das Streudiagramm deutet auf eine allgemeine Tendenz hin, dass y mit zunehmendem x zunimmt. Im nächsten Schritt messen Sie, um wie viel sich jeder weitere erhöht.
Kleinste-Quadrate-Schätzungen
In einer einfachen OLS-Regression ist die Berechnung von und
ist geradeaus. Das Ziel besteht nicht darin, die Ableitung in diesem Tutorial zu zeigen. Sie schreiben nur die Formel.
Sie möchten abschätzen:
Das Ziel der OLS-Regression besteht darin, die folgende Gleichung zu minimieren:
woher
ist der tatsächliche Wert und
ist der vorhergesagte Wert.
Die Lösung für is
Beachten Sie, dass bedeutet den Durchschnittswert von x
Die Lösung für is
In R können Sie zum Schätzen die Funktionen cov() und var() verwenden und Sie können die Funktion „mean()“ zum Schätzen verwenden
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 sich das Gewicht für jede zusätzliche Körpergröße um 3.45 erhöht.
Die manuelle Schätzung einer einfachen linearen Gleichung ist nicht ideal. R stellt eine geeignete Funktion zur Schätzung dieser Parameter bereit. Sie werden diese Funktion in Kürze sehen. Zuvor stellen wir vor, wie man ein einfaches lineares Regressionsmodell manuell berechnet. Auf Ihrer Karriere als Datenwissenschaftler werden Sie kaum oder nie ein einfaches lineares Modell schätzen. In den meisten Fällen werden Regressionsaufgaben für viele Schätzer durchgeführt.
Multiple lineare Regression in R
In praktischeren Anwendungen der Regressionsanalyse werden Modelle verwendet, die komplexer sind als das einfache lineare Modell. Das probabilistische Modell, das mehr als eine unabhängige Variable enthält, heißt mehrere Regressionsmodelle. Die allgemeine Form dieses Modells ist:
In Matrixnotation können Sie das Modell umschreiben:
Die abhängige Variable y ist nun eine Funktion von k unabhängigen Variablen. Der Wert des Koeffizienten bestimmt den Beitrag der unabhängigen Variablen
und
.
Wir stellen kurz die Annahme vor, die wir über den Zufallsfehler gemacht haben des OLS:
- Mittelwert gleich 0
- Varianz gleich
- Normalverteilung
- Zufällige Fehler sind unabhängig (im probabilistischen Sinne)
Sie müssen nach lösen , der Vektor der Regressionskoeffizienten, der die Summe der quadratischen Fehler zwischen den vorhergesagten und tatsächlichen y-Werten minimiert.
Die geschlossene Lösung lautet:
mit:
- zeigt die transponieren der Matrix X
zeigt die invertierbare Matrix
Wir verwenden den mtcars-Datensatz. Der Datensatz ist Ihnen bereits bekannt. Unser Ziel ist es, die Meile pro Gallone 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
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
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:
Sie schätzen Ihre erste lineare Regression und speichern das Ergebnis im Anpassungsobjekt.
model <- mpg~.disp + hp + drat + wt fit <- lm(model, df) fit
Code Erklärung
- Modell <- mpg ~. disp + hp + drat+ wt: Speichern Sie das zu schätzende Modell
- 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 obige Tabelle beweist, dass eine starke negative Beziehung zwischen Gewicht und Kilometerstand und eine positive Beziehung zum Verbrauch besteht.
- 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: Keine statistische Auswirkung
- H3: 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
- Bereinigtes R-Quadrat: Durch das Modell erklärte Varianz. In Ihrem Modell erklärte das Modell 82 Prozent der Varianz von y. R im Quadrat liegt immer zwischen 0 und 1. Je höher, desto besser
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) hinzu. Wenn Sie diese Codezeile nicht hinzufügen, werden Sie von R aufgefordert, die Eingabetaste zu drücken, um das nächste Diagramm anzuzeigen.
par(mfrow=(2,2))
Code Erklärung
- (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:
Die lm()-Formel gibt eine Liste mit vielen nützlichen Informationen zurück. Sie können mit dem von Ihnen erstellten Fit-Objekt darauf zugreifen, gefolgt vom $-Zeichen und den Informationen, die Sie extrahieren möchten.
– 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)) 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.
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.
Sehen wir uns in Aktion an, wie es funktioniert. Sie verwenden den mtcars-Datensatz mit den kontinuierlichen Variablen nur zur pädagogischen Veranschaulichung. Bevor Sie mit der Analyse beginnen, ist es sinnvoll, Variationen zwischen den Daten mithilfe einer Korrelationsmatrix festzustellen. 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 Korrelation für alle Ihre Variablen an und entscheiden, welche die besten Kandidaten für den ersten Schritt der schrittweisen Regression sind. Es gibt 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 Regression – Schritt-für-Schritt-Beispiel
Die Variablenauswahl ist ein wichtiger Teil der Anpassung eines Modells. Die schrittweise Regression führt den Suchvorgang automatisch durch. Um abzuschätzen, wie viele Auswahlmöglichkeiten es im Datensatz gibt, berechnen Sie 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 Erklärung
- mpg ~.: Konstruieren Sie das zu schätzende Modell
- lm(Modell, df): Führen Sie das OLS-Modell aus
- ols_all_subset(fit): Erstellen Sie die Diagramme mit den relevanten statistischen Informationen
- Handlung(Test): Zeichnen Sie die Diagramme
Ausgang:
Lineare Regressionsmodelle verwenden die T-Test um den statistischen Einfluss einer unabhängigen Variable auf die abhängige Variable abzuschätzen. Die Forscher haben den maximalen Schwellenwert auf 10 Prozent festgelegt, wobei niedrigere Werte auf einen stärkeren statistischen Zusammenhang hinweisen. Die Strategie der schrittweisen Regression basiert auf diesem Test, um potenzielle Kandidaten hinzuzufügen und zu entfernen. Der Algorithmus funktioniert wie folgt:
- 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
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 |
Beginne
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 die Aufnahme in das endgültige Modell. Der Algorithmus behält jedoch nur die Variable mit dem niedrigeren p-Wert. Es stellt sich heraus, dass HP einen etwas niedrigeren p-Wert als Qsec hat. Daher betritt HP das endgültige Modell
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
Keine der Variablen, die in das endgültige Modell aufgenommen wurden, weist einen ausreichend niedrigen p-Wert auf. Der Algorithmus stoppt hier; Wir haben 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 gibt die gleiche Ausgabe wie zuvor zurück.
Am Ende kann man sagen, dass das Modell durch zwei Variablen und einen Achsenabschnitt erklärt wird. Meile pro Gallone korreliert negativ mit der Bruttoleistung und 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.
Maschinelles lernen
Maschinelles lernen wird unter Datenwissenschaftlern immer beliebter und wird in Hunderten von Produkten eingesetzt, die Sie täglich verwenden. Eine der ersten ML-Anwendungen war Spam Filter.
Im Folgenden finden Sie weitere Anwendungen des maschinellen Lernens:
- Identifizierung unerwünschter Spam-Nachrichten in E-Mails
- Segmentierung des Kundenverhaltens für gezielte Werbung
- Reduzierung betrügerischer Kreditkartentransaktionen
- Optimierung des Energieverbrauchs in Wohn- 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 überwachte Lerntechnik. Eine der ersten Klassifizierungsaufgaben, die Forscher in Angriff nahmen, war der Spamfilter. Ziel des Lernens ist es, vorherzusagen, ob eine E-Mail als Spam oder Ham (gute E-Mail) klassifiziert wird. Nach dem Trainingsschritt 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 von a 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.
Hier ist die Liste einiger grundlegender Algorithmen für überwachtes Lernen.
- 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
Zusammenfassung
- Die lineare Regression beantwortet eine einfache Frage: Können Sie eine genaue Beziehung zwischen einer Zielvariablen und einer Reihe von Prädiktoren messen?
- Die Methode der kleinsten Quadrate versucht, die Parameter zu finden, die die Summe der quadrierten Fehler minimieren, d. h. 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 Teil der Anpassung eines Modells. Die schrittweise Regression führt den Suchvorgang automatisch durch.
Die gewöhnliche kleinste Quadrate-Regression kann in der folgenden Tabelle zusammengefasst werden:
Bibliothek | Ziel | Funktion | Argumente |
---|---|---|---|
Base | Berechnen Sie eine lineare Regression | lm() | Formel, Daten |
Base | Modell zusammenfassen | zusammenfassen() | passen |
Base | Koeffizienten extrahieren | lm()$Koeffizient | |
Base | Reste extrahieren | lm()$Residuen | |
Base | Angepassten Wert extrahieren | lm()$fitted.values | |
olsrr | Führen Sie eine schrittweise Regression durch | ols_stepwise() | Passform, Pent = 0.1, Prem = 0.3, Details = FALSE |
Note: Denken Sie daran, die kategoriale Variable vorher in einen Faktor umzuwandeln, um sie an das Modell anzupassen.