R Stapsgewijze en meervoudige lineaire regressie [stap-voor-stap voorbeeld]

Eenvoudige lineaire regressie in R

Lineaire regressie beantwoordt een eenvoudige vraag: kunt u een exacte relatie meten tussen één doelvariabele en een reeks voorspellers?

Het eenvoudigste probabilistische model is het lineaire model:

Eenvoudige lineaire regressie in R

WAAR

  • y = Afhankelijke variabele
  • x = Onafhankelijke variabele
  • Eenvoudige lineaire regressie in R = willekeurige foutcomponent
  • Eenvoudige lineaire regressie in R = onderscheppen
  • Eenvoudige lineaire regressie in R = Coëfficiënt van x

Beschouw het volgende diagram:

Eenvoudige lineaire regressie in R

De vergelijking is Eenvoudige lineaire regressie in R is het onderscheppingspunt. Als x gelijk is aan 0, zal y gelijk zijn aan het snijpunt, 4.77. is de helling van de lijn. Het vertelt in welke verhouding y varieert als x varieert.

Om de optimale waarden van te schatten Eenvoudige lineaire regressie in R en Eenvoudige lineaire regressie in R, gebruik je een methode genaamd Gewone kleinste vierkanten (OLS). Deze methode probeert de parameters te vinden die de som van de kwadratische fouten minimaliseren, dat wil zeggen de verticale afstand tussen de voorspelde y-waarden en de werkelijke y-waarden. Het verschil staat bekend als de fout term.

Voordat u het model schat, kunt u bepalen of een lineair verband tussen y en x plausibel is door een spreidingsdiagram te tekenen.

spreidingsdiagram

We zullen een zeer eenvoudige dataset gebruiken om het concept van eenvoudige lineaire regressie uit te leggen. We importeren de gemiddelde lengtes en gewichten voor Amerikaanse vrouwen. De dataset bevat 15 waarnemingen. U wilt meten of hoogten positief gecorreleerd zijn met gewichten.

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()

Output:

spreidingsdiagram

Het spreidingsdiagram suggereert een algemene tendens dat y toeneemt naarmate x toeneemt. In de volgende stap meet u met hoeveel de stijgingen voor elke extra .

Kleinste kwadraten schattingen

In een eenvoudige OLS-regressie wordt de berekening van Kleinste kwadraten schattingen en Kleinste kwadraten schattingen is eenvoudig. Het is niet de bedoeling om de afleiding in deze tutorial te laten zien. Je schrijft alleen de formule.

U wilt schatten: Kleinste kwadraten schattingen

Het doel van de OLS-regressie is om de volgende vergelijking te minimaliseren:

Kleinste kwadraten schattingen

WAAR

Kleinste kwadraten schattingen is de werkelijke waarde en Kleinste kwadraten schattingen is de voorspelde waarde.

De oplossing voor Kleinste kwadraten schattingen is Kleinste kwadraten schattingen

Merk op dat Kleinste kwadraten schattingen betekent de gemiddelde waarde van x

De oplossing voor Kleinste kwadraten schattingen is Kleinste kwadraten schattingen

In R kunt u de functies cov() en var() gebruiken om te schatten Kleinste kwadraten schattingen en je kunt de functie mean() gebruiken om te schatten Kleinste kwadraten schattingen

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

Output:

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

Output:

## [1] -87.51667

De bètacoëfficiënt houdt in dat voor elke extra lengte het gewicht met 3.45 toeneemt.

Het handmatig schatten van eenvoudige lineaire vergelijkingen is niet ideaal. R biedt een geschikte functie om deze parameters te schatten. Je zult deze functie binnenkort zien. Daarvoor zullen we introduceren hoe u met de hand een eenvoudig lineair regressiemodel kunt berekenen. In jouw reis als datawetenschapper zul je nauwelijks of nooit een eenvoudig lineair model schatten. In de meeste situaties worden regressietaken op veel schatters uitgevoerd.

Meervoudige lineaire regressie in R

Meer praktische toepassingen van regressieanalyse maken gebruik van modellen die complexer zijn dan het eenvoudige rechtelijnmodel. Het probabilistische model dat meer dan één onafhankelijke variabele omvat, wordt meerdere regressiemodellen. De algemene vorm van dit model is:

Meervoudige lineaire regressie in R

In matrixnotatie kunt u het model herschrijven:

  • Meervoudige lineaire regressie in R

De afhankelijke variabele y is nu een functie van k onafhankelijke variabelen. De waarde van de coëfficiënt Meervoudige lineaire regressie in R bepaalt de bijdrage van de onafhankelijke variabele Meervoudige lineaire regressie in R en Meervoudige lineaire regressie in R.

We introduceren kort de veronderstelling die we hebben gemaakt over de willekeurige fout Meervoudige lineaire regressie in R van de OLS:

  • Gemiddelde gelijk aan 0
  • Variantie gelijk aan Meervoudige lineaire regressie in R
  • Normale verdeling
  • Willekeurige fouten zijn onafhankelijk (in probabilistische zin)

Je moet het oplossen Meervoudige lineaire regressie in R, de vector van regressiecoëfficiënten die de som van de kwadratische fouten tussen de voorspelde en werkelijke y-waarden minimaliseren.

De oplossing in gesloten vorm is:

Meervoudige lineaire regressie in R

met:

  • geeft de transponeren van de matrix X
  • Meervoudige lineaire regressie in R geeft de inverteerbare matrix

We gebruiken de mtcars-dataset. U bent al bekend met de dataset. Ons doel is om de mijl per gallon te voorspellen op basis van een reeks functies.

Continue variabelen in R

Voor nu gebruikt u alleen de continue variabelen en zet u categorische kenmerken opzij. De variabele am is een binaire variabele die de waarde 1 aanneemt als de transmissie handmatig is en 0 voor automatische auto's; vs is ook een binaire variabele.

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

Output:

## 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...

U kunt de functie lm() gebruiken om de parameters te berekenen. De basissyntaxis van deze functie is:

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

Onthoud dat een vergelijking de volgende vorm heeft

Continue variabelen in R

en R

  • Het symbool = wordt vervangen door ~
  • Elke x wordt vervangen door de naam van de variabele
  • Als je de constante wilt laten vallen, voeg dan -1 toe aan het einde van de formule

Voorbeeld:

U wilt het gewicht van personen schatten op basis van hun lengte en inkomen. De vergelijking is

Continue variabelen in R

De vergelijking in R wordt als volgt geschreven:

y ~ X1+ X2+…+Xn # Met onderschepping

Dus voor ons voorbeeld:

  • Weeg ~ lengte + omzet

Uw doel is om de mijl per gallon te schatten op basis van een reeks variabelen. De te schatten vergelijking is:

Continue variabelen in R

U schat uw eerste lineaire regressie en slaat het resultaat op in het fit-object.

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

Code Uitleg

  • model <- mpg ~. disp + hp + drat+ wt: Bewaar het model om te schatten
  • lm(model, df): Schat het model met het dataframe 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	

De uitvoer geeft niet genoeg informatie over de kwaliteit van de fit. U kunt meer details zoals de significantie van de coëfficiënten, de mate van vrijheid en de vorm van de residuen benaderen met de summary()-functie.

summary(fit)

Output:

## 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

Gevolgtrekking uit de bovenstaande tabeluitvoer

  • Uit bovenstaande tabel blijkt dat er een sterke negatieve relatie bestaat tussen gewicht en kilometerstand en een positieve relatie met drat.
  • Alleen de variabele wt heeft een statistische impact op mpg. Onthoud dat we, om een ​​hypothese in de statistiek te testen, het volgende gebruiken:
    • H0: Geen statistische impact
    • H3: De voorspeller heeft een betekenisvolle impact op y
    • Als de p-waarde lager is dan 0.05, geeft dit aan dat de variabele statistisch significant is
  • Aangepast R-kwadraat: Variantie verklaard door het model. In uw model verklaarde het model 82 procent van de variantie van y. R kwadraat ligt altijd tussen 0 en 1. Hoe hoger hoe beter

Je kunt het ANOVA Test om het effect van elke eigenschap op de variantie te schatten met de anova()-functie.

anova(fit)

Output:

## 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	

Een meer conventionele manier om de prestaties van het model te schatten, is door het residu weer te geven tegen verschillende metingen.

U kunt de functie plot() gebruiken om vier grafieken weer te geven:

– Residuen versus aangepaste waarden

– Normale QQ-plot: theoretisch kwartiel versus gestandaardiseerde residuen

– Schaallocatie: aangepaste waarden versus vierkantswortels van de gestandaardiseerde residuen

– Residuen versus hefboomwerking: hefboomwerking versus gestandaardiseerde residuen

U voegt de code par(mfrow=c(2,2)) toe vóór plot(fit). Als u deze regel code niet toevoegt, vraagt ​​R u om op de opdracht Enter te drukken om de volgende grafiek weer te geven.

par(mfrow=(2,2))

Code Uitleg

  • (mfrow=c(2,2)): retourneert een venster met de vier grafieken naast elkaar.
  • De eerste 2 tellen het aantal rijen op
  • De tweede 2 telt het aantal kolommen op.
  • Als je schrijft (mfrow=c(3,2)): dan creëer je een venster met 3 rijen en 2 kolommen
plot(fit)

Output:

Continue variabelen in R

De formule lm() retourneert een lijst met veel nuttige informatie. U kunt ze openen met het fit-object dat u hebt gemaakt, gevolgd door het $-teken en de informatie die u wilt extraheren.

– coëfficiënten: `fit$coëfficiënten`

– residuen: `fit$residuals`

– aangepaste waarde: `fit$fitted.values`

Factorenregressie in R

In de laatste modelschatting regressie je mpg alleen op continue variabelen. Het is eenvoudig om factorvariabelen aan het model toe te voegen. U voegt de variabele am toe aan uw model. Het is belangrijk om er zeker van te zijn dat de variabele een factorniveau is en niet continu.

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

Output:

## 
## 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 gebruikt het eerste factorniveau als basisgroep. Je moet de coëfficiënten van de andere groep vergelijken met de basisgroep.

Stapsgewijze lineaire regressie in R

Het laatste deel van deze tutorial gaat over de stapsgewijze regressie algoritme. Het doel van dit algoritme is om potentiële kandidaten toe te voegen en te verwijderen in de modellen en degenen te behouden die een significante impact hebben op de afhankelijke variabele. Dit algoritme is zinvol wanneer de dataset een grote lijst met voorspellers bevat. U hoeft de onafhankelijke variabelen niet handmatig toe te voegen en te verwijderen. De stapsgewijze regressie is gebouwd om de beste kandidaten te selecteren die passen bij het model.

Laten we in actie zien hoe het werkt. Je gebruikt de mtcars-dataset met de continue variabelen uitsluitend ter pedagogische illustratie. Voordat u met de analyse begint, is het goed om variaties tussen de gegevens vast te stellen met behulp van een correlatiematrix. De GGally-bibliotheek is een uitbreiding van ggplot2.

De bibliotheek bevat verschillende functies om samenvattende statistieken weer te geven, zoals correlatie en verdeling van alle variabelen in een matrix. We zullen de ggscatmat-functie gebruiken, maar u kunt verwijzen naar de vignet voor meer informatie over de GGally-bibliotheek.

De basissyntaxis voor ggscatmat() is:

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

U geeft de correlatie weer voor al uw variabelen en beslist welke de beste kandidaten zijn voor de eerste stap van de stapsgewijze regressie. Er zijn enkele sterke correlaties tussen uw variabelen en de afhankelijke variabele, mpg.

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

Output:

Stapsgewijze lineaire regressie in R

Stapsgewijze regressie stap voor stap voorbeeld

Selectie van variabelen is een belangrijk onderdeel om een ​​model te fitten. De stapsgewijze regressie zal het zoekproces automatisch uitvoeren. Om te schatten hoeveel mogelijke keuzes er in de dataset zijn, berekent u Stapsgewijze regressie stap voor stap voorbeeld waarbij k het aantal voorspellers is. Het aantal mogelijkheden wordt groter met het aantal onafhankelijke variabelen. Daarom moet u automatisch zoeken.

U moet het olsrr-pakket van CRAN installeren. Het pakket is nog niet beschikbaar in Anaconda. Daarom installeert u het rechtstreeks vanaf de opdrachtregel:

install.packages("olsrr")

U kunt alle subsets van mogelijkheden plotten met de fitcriteria (dwz R-kwadraat, aangepast R-kwadraat, Bayesiaanse criteria). Het model met de laagste AIC-criteria zal het definitieve model zijn.

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

Code Uitleg

  • mpg ~.: Construeer het model om te schatten
  • lm(model, df): Voer het OLS-model uit
  • ols_all_subset(fit): Construeer de grafieken met de relevante statistische informatie
  • plot(test): Teken de grafieken

Output:

Stapsgewijze regressie stap voor stap voorbeeld

Lineaire regressiemodellen gebruiken de t-toets om de statistische impact van een onafhankelijke variabele op de afhankelijke variabele te schatten. Onderzoekers stellen de maximale drempelwaarde in op 10 procent, waarbij lagere waarden een sterkere statistische link aangeven. De strategie van de stapsgewijze regressie is opgebouwd rond deze test om potentiële kandidaten toe te voegen en te verwijderen. Het algoritme werkt als volgt:

Stapsgewijze lineaire regressie in R
Stapsgewijze lineaire regressie in R
  • Stap 1: Voer elke voorspeller afzonderlijk uit op y. Namelijk: regressie x_1 op y, x_2 op y naar x_n. Bewaar de p-waarde en houd de regressor met een p-waarde lager dan een gedefinieerde drempel (standaard 0.1). De voorspellers met een significantie lager dan de drempelwaarde worden aan het definitieve model toegevoegd. Als geen enkele variabele een p-waarde heeft die lager is dan de invoerdrempel, stopt het algoritme en hebt u uw uiteindelijke model met alleen een constante.
  • Stap 2: Gebruik de predictor met de laagste p-waarde en voeg afzonderlijk één variabele toe. U regresseert een constante, de beste predictor van stap één en een derde variabele. U voegt aan het stapsgewijze model de nieuwe predictors toe met een waarde lager dan de instapdrempel. Als geen enkele variabele een p-waarde lager dan 0.1 heeft, stopt het algoritme en hebt u uw uiteindelijke model met slechts één predictor. U regresseert het stapsgewijze model om de significantie van de beste predictors van stap 1 te controleren. Als deze hoger is dan de verwijderingsdrempel, houdt u deze in het stapsgewijze model. Anders sluit u deze uit.
  • Stap 3: U repliceert stap 2 op het nieuwe beste stapsgewijze model. Het algoritme voegt predictoren toe aan het stapsgewijze model op basis van de invoerwaarden en sluit predictoren uit van het stapsgewijze model als deze niet voldoet aan de uitsluitingsdrempel.
  • Het algoritme gaat door totdat er geen variabele meer kan worden toegevoegd of uitgesloten.

U kunt het algoritme uitvoeren met de functie ols_stepwise() uit het olsrr-pakket.

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

Daarvoor laten we u de stappen van het algoritme zien. Hieronder staat een tabel met de afhankelijke en onafhankelijke variabelen:

Afhankelijke variabele Onafhankelijke variabelen
mpg disp
hp
drassssssssssssssssssssssssssssss
wt
qsec

Start

Om te beginnen begint het algoritme met het afzonderlijk uitvoeren van het model op elke onafhankelijke variabele. De tabel toont de p-waarde voor elk model.

## [[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

Om het model binnen te gaan, behoudt het algoritme de variabele met de laagste p-waarde. Uit de bovenstaande uitvoer blijkt dat het gewicht is

Stap 1

In de eerste stap voert het algoritme mpg onafhankelijk uit op wt en de andere variabelen.

## [[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

Elke variabele is een potentiële kandidaat om in het uiteindelijke model te komen. Het algoritme behoudt echter alleen de variabele met de lagere p-waarde. Het blijkt dat hp een iets lagere p-waarde heeft dan qsec. Daarom komt HP in het definitieve model

Stap 2

Het algoritme herhaalt de eerste stap, maar deze keer met twee onafhankelijke variabelen in het uiteindelijke model.

## [[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

Geen van de variabelen die in het uiteindelijke model zijn opgenomen, heeft een p-waarde die voldoende laag is. Het algoritme stopt hier; we hebben het definitieve model:

## 
## 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

U kunt de functie ols_stepwise() gebruiken om de resultaten te vergelijken.

stp_s <-ols_stepwise(fit, details=TRUE)

Output:

Het algoritme vindt na twee stappen een oplossing en retourneert dezelfde uitvoer als voorheen.

Uiteindelijk kun je zeggen dat de modellen worden verklaard door twee variabelen en een snijpunt. Mijl per gallon is negatief gecorreleerd met bruto paardenkracht en 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.

Machine leren

Machine leren wordt steeds populairder onder datawetenschappers en wordt ingezet in honderden producten die u dagelijks gebruikt. Een van de eerste ML-applicaties was spamfilter.

Hieronder volgen andere toepassingen van Machine Learning:

  • Identificatie van ongewenste spamberichten in e-mail
  • Segmentatie van klantgedrag voor gerichte reclame
  • Vermindering van frauduleuze creditcardtransacties
  • Optimalisatie van het energieverbruik in woning- en kantoorgebouwen
  • Gezichtsherkenning

Leren onder toezicht

In Leren onder toezicht, bevatten de trainingsgegevens die u aan het algoritme invoert een label.

Classificatie is waarschijnlijk de meest gebruikte supervised learning-techniek. Een van de eerste classificatietaken die onderzoekers aanpakten, was het spamfilter. Het doel van het leren is om te voorspellen of een e-mail wordt geclassificeerd als spam of ham (goede e-mail). De machine kan na de trainingsstap de klasse van de e-mail detecteren.

regressies worden vaak gebruikt op het gebied van machine learning om continue waarde te voorspellen. Regressietaak kan de waarde van a voorspellen afhankelijke variabele gebaseerd op een set van onafhankelijke variabelen (ook wel voorspellers of regressoren genoemd). Lineaire regressies kunnen bijvoorbeeld een aandelenkoers, weersvoorspelling, verkoop enzovoort voorspellen.

Hieronder vindt u een lijst met enkele fundamentele algoritmen voor begeleid leren.

  • Lineaire regressie
  • Logistische regressie
  • Dichtstbijzijnde buren
  • Ondersteuning Vector Machine (SVM)
  • Beslisbomen en Random Forest
  • Neurale netwerken

Niet-gecontroleerd leren

In Niet-gecontroleerd leren, de trainingsgegevens zijn niet gelabeld. Het systeem probeert te leren zonder referentie. Hieronder staat een lijst met niet-gesuperviseerde leeralgoritmen.

  • K-gemiddeld
  • hiërarchische Cluster Analyse
  • Verwachtingsmaximalisatie
  • Visualisatie en dimensionaliteitsreductie
  • Hoofdcomponentenanalyse
  • Kernel-PCA
  • Lokaal-lineaire inbedding

Samenvatting

  • Lineaire regressie beantwoordt een eenvoudige vraag: kunt u een exacte relatie meten tussen één doelvariabele en een reeks voorspellers?
  • Met de gewone kleinste kwadratenmethode wordt geprobeerd de parameters te vinden die de som van de gekwadrateerde fouten minimaliseren, dat wil zeggen de verticale afstand tussen de voorspelde y-waarden en de werkelijke y-waarden.
  • Het probabilistische model dat meer dan één onafhankelijke variabele omvat, wordt meerdere regressiemodellen genoemd.
  • Het doel van het algoritme voor stapsgewijze lineaire regressie is om potentiële kandidaten aan de modellen toe te voegen of te verwijderen, en degenen te behouden die een significante impact hebben op de afhankelijke variabele.
  • Variabelenselectie is een belangrijk onderdeel om een ​​model te fitten. De stapsgewijze regressie voert het zoekproces automatisch uit.

De gewone kleinste-kwadraten-regressie kan in de onderstaande tabel worden samengevat:

Bibliotheek Objectief Functie argumenten
baseren Bereken een lineaire regressie lm() formule, gegevens
baseren Model samenvatten samenvatten() geschikt
baseren Haal coëfficiënten eruit lm()$coëfficiënt
baseren Residuen eruit halen lm()$resten
baseren Extraheer de ingebouwde waarde lm()$fitted.waarden
olsrr Stapsgewijze regressie uitvoeren ols_stapsgewijs() fit, pent = 0.1, prem = 0.3, details = ONWAAR

Note: Vergeet niet om de categorische variabele in factor te transformeren voordat deze in het model past.