R Regresie liniară în trepte și multiplă [Exemplu pas cu pas]

Regresia liniară simplă în R

Regresia liniară răspunde la o întrebare simplă: puteți măsura o relație exactă între o variabilă țintă și un set de predictori?

Cel mai simplu dintre modelele probabilistice este modelul în linie dreaptă:

Regresia liniară simplă în R

Unde

  • y = variabilă dependentă
  • x = variabilă independentă
  • Regresia liniară simplă în R = componenta de eroare aleatorie
  • Regresia liniară simplă în R = interceptare
  • Regresia liniară simplă în R = Coeficientul lui x

Luați în considerare următorul complot:

Regresia liniară simplă în R

Ecuația este Regresia liniară simplă în R este interceptarea. Dacă x este egal cu 0, y va fi egal cu intersecția, 4.77. este panta dreptei. Ea spune în ce proporție variază y când variază x.

Pentru a estima valorile optime ale Regresia liniară simplă în R și Regresia liniară simplă în R, folosești o metodă numită Cele mai mici pătrate obișnuite (OLS). Această metodă încearcă să găsească parametrii care minimizează suma erorilor pătrate, adică distanța verticală dintre valorile y prezise și valorile y reale. Diferența este cunoscută sub numele de termen de eroare.

Înainte de a estima modelul, puteți determina dacă o relație liniară între y și x este plauzibilă prin reprezentarea unui grafic de dispersie.

Scatterplot

Vom folosi un set de date foarte simplu pentru a explica conceptul de regresie liniară simplă. Vom importa înălțimile și greutățile medii pentru femeile americane. Setul de date conține 15 observații. Doriți să măsurați dacă înălțimile sunt corelate pozitiv cu greutățile.

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

ieșire:

Scatterplot

Graficul de dispersie sugerează o tendință generală pentru y de a crește pe măsură ce x crește. În pasul următor, veți măsura cu cât crește pentru fiecare .

Estimări pentru cele mai mici pătrate

Într-o regresie MOL simplă, calculul Estimări pentru cele mai mici pătrate și Estimări pentru cele mai mici pătrate este simplu. Scopul nu este de a arăta derivarea în acest tutorial. Vei scrie doar formula.

Doriți să estimați: Estimări pentru cele mai mici pătrate

Scopul regresiei MCO este de a minimiza următoarea ecuație:

Estimări pentru cele mai mici pătrate

Unde

Estimări pentru cele mai mici pătrate este valoarea reală și Estimări pentru cele mai mici pătrate este valoarea prezisă.

Solutia pentru Estimări pentru cele mai mici pătrate is Estimări pentru cele mai mici pătrate

Rețineți că Estimări pentru cele mai mici pătrate înseamnă valoarea medie a lui x

Solutia pentru Estimări pentru cele mai mici pătrate is Estimări pentru cele mai mici pătrate

În R, puteți utiliza funcția cov() și var() pentru a estima Estimări pentru cele mai mici pătrate și puteți utiliza funcția mean() pentru a estima Estimări pentru cele mai mici pătrate

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

ieșire:

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

ieșire:

## [1] -87.51667

Coeficientul beta implică faptul că pentru fiecare înălțime suplimentară, greutatea crește cu 3.45.

Estimarea manuală a unei ecuații liniare simple nu este ideală. R oferă o funcție adecvată pentru estimarea acestor parametri. Veți vedea această funcție în curând. Înainte de aceasta, vom prezenta cum să calculăm manual un model de regresie liniară simplu. În călătoria dvs. de cercetător al datelor, abia sau niciodată nu veți estima un model liniar simplu. În majoritatea situațiilor, sarcinile de regresie sunt efectuate pe o mulțime de estimatori.

Regresia liniară multiplă în R

Aplicații mai practice ale analizei de regresie folosesc modele care sunt mai complexe decât modelul simplu în linie dreaptă. Se numește modelul probabilistic care include mai multe variabile independente modele de regresie multiple. Forma generală a acestui model este:

Regresia liniară multiplă în R

În notație matriceală, puteți rescrie modelul:

  • Regresia liniară multiplă în R

Variabila dependentă y este acum o funcție a k variabile independente. Valoarea coeficientului Regresia liniară multiplă în R determină contribuţia variabilei independente Regresia liniară multiplă în R și Regresia liniară multiplă în R.

Prezentăm pe scurt ipoteza pe care am făcut-o despre eroarea aleatorie Regresia liniară multiplă în R din OLS:

  • Media egală cu 0
  • Varianta egala cu Regresia liniară multiplă în R
  • Distributie normala
  • Erorile aleatorii sunt independente (în sens probabilistic)

Trebuie să rezolvi pentru Regresia liniară multiplă în R, vectorul coeficienților de regresie care minimizează suma erorilor pătrate dintre valorile y prezise și reale.

Soluția în formă închisă este:

Regresia liniară multiplă în R

cu:

  • indică transpune a matricei X
  • Regresia liniară multiplă în R indică matrice inversabilă

Folosim setul de date mtcars. Sunteți deja familiarizat cu setul de date. Scopul nostru este de a prezice mila pe galon pentru un set de caracteristici.

Variabile continue în R

Deocamdată, veți folosi doar variabilele continue și veți lăsa deoparte caracteristicile categoriale. Variabila am este o variabilă binară care ia valoarea 1 dacă transmisia este manuală și 0 pentru mașinile automate; vs este, de asemenea, o variabilă binară.

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

ieșire:

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

Puteți utiliza funcția lm() pentru a calcula parametrii. Sintaxa de bază a acestei funcții este:

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

Amintiți-vă că o ecuație are următoarea formă

Variabile continue în R

în R

  • Simbolul = este înlocuit cu ~
  • Fiecare x este înlocuit cu numele variabilei
  • Dacă doriți să renunțați la constantă, adăugați -1 la sfârșitul formulei

Exemplu:

Doriți să estimați greutatea persoanelor în funcție de înălțimea și veniturile lor. Ecuația este

Variabile continue în R

Ecuația din R se scrie după cum urmează:

y ~ X1+ X2+…+Xn # Cu interceptare

Deci, pentru exemplul nostru:

  • Cântărește ~ înălțime + venituri

Obiectivul dumneavoastră este să estimați mila pe galon pe baza unui set de variabile. Ecuația de estimat este:

Variabile continue în R

Veți estima prima regresie liniară și veți stoca rezultatul în obiectul fit.

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

Explicarea codului

  • model <- mpg ~. disp + hp + drat+ wt: stocați modelul pentru estimare
  • lm(model, df): Estimați modelul cu cadrul de date 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	

Ieșirea nu oferă suficiente informații despre calitatea potrivirii. Puteți accesa mai multe detalii precum semnificația coeficienților, gradul de libertate și forma reziduurilor cu funcția summary().

summary(fit)

ieșire:

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

Deducere din rezultatul tabelului de mai sus

  • Tabelul de mai sus demonstrează că există o relație negativă puternică între greutate și kilometraj și o relație pozitivă cu drat.
  • Doar variabila wt are un impact statistic asupra mpg. Amintiți-vă, pentru a testa o ipoteză în statistică, folosim:
    • H0: Fără impact statistic
    • H3: predictorul are un impact semnificativ asupra y
    • Dacă valoarea p este mai mică de 0.05, aceasta indică că variabila este semnificativă statistic
  • R-pătrat ajustat: variația explicată de model. În modelul dvs., modelul a explicat 82% din varianța lui y. R pătratul este întotdeauna între 0 și 1. Cu cât este mai mare, cu atât mai bine

Puteți rula ANOVA test pentru a estima efectul fiecărei caracteristici asupra variațiilor cu funcția anova().

anova(fit)

ieșire:

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

O modalitate mai convențională de a estima performanța modelului este afișarea reziduului față de diferite măsuri.

Puteți utiliza funcția plot() pentru a afișa patru grafice:

– Reziduuri vs Valori ajustate

– Graficul QQ normal: Quartila teoretică vs reziduuri standardizate

– Scale-Location: Valori ajustate vs rădăcini pătrate ale reziduurilor standardizate

– Reziduuri vs Levier: Levier vs Reziduuri standardizate

Adăugați codul par(mfrow=c(2,2)) înainte de plot(fit). Dacă nu adăugați această linie de cod, R vă solicită să apăsați comanda enter pentru a afișa următorul grafic.

par(mfrow=(2,2))

Explicarea codului

  • (mfrow=c(2,2)): returnează o fereastră cu cele patru grafice unul lângă altul.
  • Primele 2 adaugă numărul de rânduri
  • Al doilea 2 adaugă numărul de coloane.
  • Dacă scrieți (mfrow=c(3,2)): veți crea o fereastră cu 3 rânduri și 2 coloane
plot(fit)

ieșire:

Variabile continue în R

Formula lm() returnează o listă care conține o mulțime de informații utile. Le puteți accesa cu obiectul fit pe care l-ați creat, urmat de semnul $ și de informațiile pe care doriți să le extrageți.

– coeficienți: `fit$coeficienți`

– reziduuri: `fit$rezidus`

– valoare ajustată: `fit$fitted.values`

Regresia factorilor în R

În ultima estimare a modelului, regresați mpg numai pe variabile continue. Este simplu să adăugați variabile factori la model. Adăugați variabila am la modelul dvs. Este important să vă asigurați că variabila este un nivel de factor și nu continuă.

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

ieșire:

## 
## 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 folosește primul nivel de factor ca grup de bază. Trebuie să comparați coeficienții celuilalt grup cu grupul de bază.

Regresia liniară în trepte în R

Ultima parte a acestui tutorial tratează regresie în trepte algoritm. Scopul acestui algoritm este de a adăuga și elimina potențiali candidați din modele și de a-i păstra pe cei care au un impact semnificativ asupra variabilei dependente. Acest algoritm este semnificativ atunci când setul de date conține o listă mare de predictori. Nu trebuie să adăugați și să eliminați manual variabilele independente. Regresia în trepte este construită pentru a selecta cei mai buni candidați pentru a se potrivi modelului.

Să vedem în acțiune cum funcționează. Utilizați setul de date mtcars cu variabilele continue numai pentru ilustrare pedagogică. Înainte de a începe analiza, este bine să stabiliți variații între datele cu o matrice de corelație. Biblioteca GGally este o extensie a ggplot2.

Biblioteca include diferite funcții pentru a afișa statistici sumar, cum ar fi corelarea și distribuția tuturor variabilelor dintr-o matrice. Vom folosi funcția ggscatmat, dar vă puteți referi la vinietă pentru mai multe informații despre biblioteca GGally.

Sintaxa de bază pentru ggscatmat() este:

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

Afișați corelația pentru toate variabilele și decideți care dintre ele va fi cei mai buni candidați pentru primul pas al regresiei în trepte. Există unele corelații puternice între variabilele dvs. și variabila dependentă, mpg.

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

ieșire:

Regresia liniară în trepte în R

Exemplu de regresie pas cu pas

Selectarea variabilelor este o parte importantă pentru a se potrivi unui model. Regresia în trepte va efectua automat procesul de căutare. Pentru a estima câte opțiuni posibile există în setul de date, calculați Exemplu de regresie pas cu pas cu k este numărul de predictori. Cantitatea de posibilități crește odată cu numărul de variabile independente. De aceea trebuie să aveți o căutare automată.

Trebuie să instalați pachetul olsrr din CRAN. Pachetul nu este încă disponibil în Anaconda. Prin urmare, îl instalați direct din linia de comandă:

install.packages("olsrr")

Puteți reprezenta toate subseturile de posibilități cu criteriile de potrivire (adică R-pătrat, R-pătrat ajustat, criterii bayesiene). Modelul cu cel mai mic criteriu AIC va fi modelul final.

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

Explicarea codului

  • mpg ~.: Construiți modelul de estimat
  • lm(model, df): Rulați modelul OLS
  • ols_all_subset(potrivire): Construiți graficele cu informațiile statistice relevante
  • complot(test): Trasează graficele

ieșire:

Exemplu de regresie pas cu pas

Modelele de regresie liniară folosesc testul t pentru a estima impactul statistic al unei variabile independente asupra variabilei dependente. Cercetătorii au stabilit pragul maxim la 10 la sută, cu valori mai mici indică o legătură statistică mai puternică. Strategia regresiei în trepte este construită în jurul acestui test pentru a adăuga și elimina potențialii candidați. Algoritmul funcționează după cum urmează:

Regresia liniară în trepte în R
Regresia liniară în trepte în R
  • Etapa 1: Regresează fiecare predictor pe y separat. Și anume, regresați x_1 pe y, x_2 pe y la x_n. Depozitați Valoarea p și păstrați regresorul cu o valoare p mai mică decât un prag definit (0.1 implicit). La modelul final vor fi adăugați predictorii cu o semnificație mai mică decât pragul. Dacă nicio variabilă nu are o valoare p mai mică decât pragul de intrare, atunci algoritmul se oprește și aveți modelul final doar cu o constantă.
  • Etapa 2: Folosiți predictorul cu cea mai mică valoare p și adaugă separat o variabilă. Regresezi o constantă, cel mai bun predictor al pasului unu și a unei a treia variabile. Adăugați la modelul în trepte noile predictori cu o valoare mai mică decât pragul de intrare. Dacă nicio variabilă nu are o valoare p mai mică de 0.1, atunci algoritmul se oprește și aveți modelul final cu un singur predictor. Regresați modelul treptat pentru a verifica semnificația celor mai buni predictori ai pasului 1. Dacă este mai mare decât pragul de eliminare, îl păstrați în modelul treptat. În caz contrar, îl excludeți.
  • Etapa 3: Replicați pasul 2 pe noul cel mai bun model în trepte. Algoritmul adaugă predictori la modelul treptat pe baza valorilor introduse și exclude predictorul din modelul treptat dacă nu satisface pragul de excludere.
  • Algoritmul continuă până când nicio variabilă nu poate fi adăugată sau exclusă.

Puteți efectua algoritmul cu funcția ols_stepwise() din pachetul olsrr.

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

Înainte de aceasta, vă arătăm pașii algoritmului. Mai jos este un tabel cu variabilele dependente și independente:

Variabilă dependentă Variabile independente
mpg disponibil
hp
şobolan
wt
qsec

acasă

Pentru început, algoritmul începe prin a rula modelul pe fiecare variabilă independentă separat. Tabelul arată valoarea p pentru fiecare 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

Pentru a intra în model, algoritmul păstrează variabila cu cea mai mică valoare p. Din rezultatul de mai sus, este wt

Etapa 1

În primul pas, algoritmul rulează mpg pe wt și celelalte variabile independent.

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

Fiecare variabilă este un potențial candidat pentru a intra în modelul final. Cu toate acestea, algoritmul păstrează doar variabila cu valoarea p mai mică. Se pare că hp are o valoare p puțin mai mică decât qsec. Prin urmare, hp intră în modelul final

Etapa 2

Algoritmul repetă primul pas dar de data aceasta cu două variabile independente în modelul final.

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

Niciuna dintre variabilele care au intrat în modelul final nu are o valoare p suficient de mică. Algoritmul se oprește aici; avem modelul final:

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

Puteți utiliza funcția ols_stepwise() pentru a compara rezultatele.

stp_s <-ols_stepwise(fit, details=TRUE)

ieșire:

Algoritmul găsește o soluție după 2 pași și returnează aceeași ieșire ca și înainte.

La sfârșit, puteți spune că modelele este explicată prin două variabile și o interceptare. Mila pe galon este corelată negativ cu puterea brută și greutatea

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

Invatare mecanica

Invatare mecanica devine larg răspândit printre oamenii de știință de date și este implementat în sute de produse pe care le utilizați zilnic. Una dintre primele aplicații ML a fost filtru de spam.

Următoarele sunt alte aplicații ale Machine Learning-

  • Identificarea mesajelor spam nedorite în e-mail
  • Segmentarea comportamentului clienților pentru publicitate direcționată
  • Reducerea tranzacțiilor frauduloase cu cardul de credit
  • Optimizarea consumului de energie în case și clădiri de birouri
  • Recunoastere faciala

Învățare supravegheată

In Învățare supravegheată, datele de antrenament pe care le furnizați algoritmului includ o etichetă.

Clasificare este probabil cea mai utilizată tehnică de învățare supravegheată. Una dintre primele sarcini de clasificare abordate de cercetători a fost filtrul de spam. Obiectivul învățării este de a prezice dacă un e-mail este clasificat ca spam sau ham (e-mail bun). Aparatul, după pasul de antrenament, poate detecta clasa de e-mail.

Regresii sunt utilizate în mod obișnuit în domeniul învățării automate pentru a prezice valoarea continuă. Sarcina de regresie poate prezice valoarea lui a variabilă dependentă bazat pe un set de variabile independente (numiți și predictori sau regresori). De exemplu, regresiile liniare pot prezice prețul acțiunilor, prognoza meteo, vânzările și așa mai departe.

Iată lista unor algoritmi fundamentali de învățare supravegheată.

  • Regresie liniara
  • Regresie logistică
  • Vecinii cei mai apropiați
  • Suport Vector Machine (SVM)
  • Arbori de decizie și Pădurea aleatorie
  • Rețele neuronale

Învățare fără supraveghere

In Învățare fără supraveghere, datele de antrenament sunt neetichetate. Sistemul încearcă să învețe fără referință. Mai jos este o listă de algoritmi de învățare nesupravegheată.

  • K-mediu
  • Ierarhic Cluster Analiză
  • Maximizarea așteptărilor
  • Vizualizarea și reducerea dimensionalității
  • Analiza componentelor principale
  • Kernel PCA
  • Încorporare local-liniară

Rezumat

  • Regresia liniară răspunde la o întrebare simplă: puteți măsura o relație exactă între o variabilă țintă și un set de predictori?
  • Metoda celor mai mici pătrate obișnuite încearcă să găsească parametrii care minimizează suma erorilor pătrate, adică distanța verticală dintre valorile y prezise și valorile reale y.
  • Modelul probabilistic care include mai mult de o variabilă independentă se numește modele de regresie multiplă.
  • Scopul algoritmului Stepwise Linear Regression este de a adăuga și elimina potențialii candidați din modele și de a-i păstra pe cei care au un impact semnificativ asupra variabilei dependente.
  • Selectarea variabilelor este o parte importantă pentru a se potrivi unui model. Regresia în trepte efectuează automat procesul de căutare.

Regresia cel mai mic pătrat obișnuit poate fi rezumată în tabelul de mai jos:

Bibliotecă Obiectiv Funcţie Argumente
de bază Calculați o regresie liniară lm() formula, date
de bază Rezumat modelul rezuma() potrivi
de bază Extrageți coeficienți lm()$coeficient
de bază Extrageți reziduurile lm()$reziduuri
de bază Extrageți valoarea potrivită lm()$fited.valori
olsrr Executați regresia în trepte ols_stepwise() fit, pent = 0.1, prem = 0.3, detalii = FALSE

notițe: Nu uitați să transformați variabila categorială în factor înainte de a se potrivi cu modelul.