R Askelittainen ja moninkertainen lineaarinen regressio [Askel askeleelta esimerkki]

Yksinkertainen lineaarinen regressio R:ssä

Lineaarinen regressio vastaa yksinkertaiseen kysymykseen: Voitko mitata tarkan suhteen yhden kohdemuuttujan ja ennustajien joukon välillä?

Yksinkertaisin todennäköisyysmalli on suoramalli:

Yksinkertainen lineaarinen regressio R:ssä

jossa

  • y = Riippuva muuttuja
  • x = Riippumaton muuttuja
  • Yksinkertainen lineaarinen regressio R:ssä = satunnaisvirhekomponentti
  • Yksinkertainen lineaarinen regressio R:ssä = siepata
  • Yksinkertainen lineaarinen regressio R:ssä = x:n kerroin

Harkitse seuraavaa juonia:

Yksinkertainen lineaarinen regressio R:ssä

Yhtälö on Yksinkertainen lineaarinen regressio R:ssä on sieppaus. Jos x on 0, y on yhtä suuri kuin leikkauspiste, 4.77. on viivan kaltevuus. Se kertoo missä suhteessa y vaihtelee, kun x vaihtelee.

Arvioidaksesi optimaaliset arvot Yksinkertainen lineaarinen regressio R:ssä ja Yksinkertainen lineaarinen regressio R:ssä, käytät menetelmää nimeltä Tavalliset vähiten neliöt (OLS). Tämä menetelmä yrittää löytää parametrit, jotka minimoivat neliövirheiden summan, eli pystysuoran etäisyyden ennustettujen y-arvojen ja todellisten y-arvojen välillä. Ero tunnetaan nimellä virhe termi.

Ennen kuin arvioit mallin, voit määrittää, onko lineaarinen suhde y:n ja x:n välillä todennäköinen piirtämällä sirontakaavio.

Hajontakaavio

Käytämme hyvin yksinkertaista tietojoukkoa selittämään yksinkertaisen lineaarisen regression käsitettä. Tuomme amerikkalaisten naisten keskipituudet ja painot. Aineisto sisältää 15 havaintoa. Haluat mitata, korreloivatko korkeudet positiivisesti painojen kanssa.

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

lähtö:

Hajontakaavio

Sirontakaavio ehdottaa yleistä taipumusta, että y kasvaa x:n kasvaessa. Seuraavassa vaiheessa mittaat kunkin lisäarvon lisäyksen mukaan.

Pienimmän neliösumman arviot

Yksinkertaisessa OLS-regressiossa laskenta Pienimmän neliösumman arviot ja Pienimmän neliösumman arviot on suoraviivaista. Tavoitteena ei ole näyttää johtamista tässä opetusohjelmassa. Kirjoitat vain kaavan.

Haluat arvioida: Pienimmän neliösumman arviot

OLS-regression tavoitteena on minimoida seuraava yhtälö:

Pienimmän neliösumman arviot

jossa

Pienimmän neliösumman arviot on todellinen arvo ja Pienimmän neliösumman arviot on ennustettu arvo.

Ratkaisu Pienimmän neliösumman arviot is Pienimmän neliösumman arviot

Huomaa, että Pienimmän neliösumman arviot tarkoittaa x:n keskiarvoa

Ratkaisu Pienimmän neliösumman arviot is Pienimmän neliösumman arviot

R:ssä voit käyttää cov()- ja var()-funktioita arvioimaan Pienimmän neliösumman arviot ja voit käyttää mean()-funktiota arvioimaan Pienimmän neliösumman arviot

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

lähtö:

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

lähtö:

## [1] -87.51667

Beeta-kerroin tarkoittaa, että jokaista lisäpituutta kohden paino kasvaa 3.45.

Yksinkertaisen lineaarisen yhtälön manuaalinen estimointi ei ole ihanteellinen. R tarjoaa sopivan funktion näiden parametrien arvioimiseksi. Näet tämän toiminnon pian. Sitä ennen esitellään kuinka lasketaan käsin yksinkertainen lineaarinen regressiomalli. Tietotutkijan matkallasi tuskin tai koskaan arvioit yksinkertaista lineaarista mallia. Useimmissa tilanteissa regressiotehtävät suoritetaan useilla estimaattoreilla.

Multiple lineaarinen regressio R:ssä

Käytännöllisemmät regressioanalyysin sovellukset käyttävät malleja, jotka ovat monimutkaisempia kuin yksinkertainen suoramalli. Todennäköisyysmallia, joka sisältää useamman kuin yhden riippumattoman muuttujan, kutsutaan useita regressiomalleja. Tämän mallin yleinen muoto on:

Multiple lineaarinen regressio R:ssä

Matriisimerkinnässä voit kirjoittaa mallin uudelleen:

  • Multiple lineaarinen regressio R:ssä

Riippuva muuttuja y on nyt k riippumattoman muuttujan funktio. Kertoimen arvo Multiple lineaarinen regressio R:ssä määrittää riippumattoman muuttujan panoksen Multiple lineaarinen regressio R:ssä ja Multiple lineaarinen regressio R:ssä.

Esittelemme lyhyesti oletuksen, jonka teimme satunnaisesta virheestä Multiple lineaarinen regressio R:ssä OLS:sta:

  • Keskiarvo on 0
  • Varianssi yhtä suuri kuin Multiple lineaarinen regressio R:ssä
  • Normaalijakauma
  • Satunnaiset virheet ovat riippumattomia (todennäköisyyslaskennassa)

Sinun täytyy ratkaista Multiple lineaarinen regressio R:ssä, regressiokertoimien vektori, joka minimoi ennustetun ja todellisen y-arvon välisten neliöityjen virheiden summan.

Suljetun muodon ratkaisu on:

Multiple lineaarinen regressio R:ssä

kanssa:

  • osoittaa osaksi kansallista lainsäädäntöä matriisista X
  • Multiple lineaarinen regressio R:ssä osoittaa käännettävä matriisi

Käytämme mtcars-tietojoukkoa. Tietojoukko on sinulle jo tuttu. Tavoitteenamme on ennustaa mailia gallonaa kohden joukon ominaisuuksia.

Jatkuvat muuttujat R:ssä

Käytät toistaiseksi vain jatkuvia muuttujia ja jätät syrjään kategoriset ominaisuudet. Muuttuja am on binäärimuuttuja, joka saa arvon 1, jos vaihteisto on manuaalinen, ja 0 automaattisille autoille; vs on myös binäärimuuttuja.

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

lähtö:

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

Voit käyttää lm()-funktiota parametrien laskemiseen. Tämän funktion perussyntaksi on:

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

Muista, että yhtälö on seuraavaa muotoa

Jatkuvat muuttujat R:ssä

kirjassa R

  • Symboli = korvataan symbolilla ~
  • Jokainen x korvataan muuttujan nimellä
  • Jos haluat pudottaa vakion, lisää -1 kaavan loppuun

Esimerkiksi:

Haluat arvioida yksilöiden painon heidän pituutensa ja tulonsa perusteella. Yhtälö on

Jatkuvat muuttujat R:ssä

R:n yhtälö kirjoitetaan seuraavasti:

y ~ X1+ X2+…+Xn # Leikkauksella

Joten esimerkkimme:

  • Punnitus ~ pituus + tulot

Tavoitteesi on arvioida mailia gallonaa kohden muuttujien joukon perusteella. Arvioitava yhtälö on:

Jatkuvat muuttujat R:ssä

Arvioit ensimmäisen lineaarisen regressiosi ja tallennat tuloksen sovitusobjektiin.

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

Koodin selitys

  • malli <- mpg ~. disp + hp + drat+ wt: Tallenna malli arvioitavaksi
  • lm(malli, df): Arvioi malli datakehyksellä 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	

Tulos ei anna tarpeeksi tietoa istuvuuden laadusta. Summary()-funktiolla pääset käsiksi lisätietoihin, kuten kertoimien merkitykseen, vapausasteeseen ja residuaalien muotoon.

summary(fit)

lähtö:

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

Päätelmä yllä olevan taulukon tulosteesta

  • Yllä oleva taulukko osoittaa, että wt:n ja kilometrimäärän välillä on vahva negatiivinen suhde ja positiivinen suhde drattiin.
  • Vain muuttujalla wt on tilastollinen vaikutus mpg:hen. Muista, että hypoteesin testaamiseksi tilastossa käytämme:
    • H0: Ei tilastollista vaikutusta
    • H3: Ennustajalla on merkittävä vaikutus y:hen
    • Jos p-arvo on pienempi kuin 0.05, se osoittaa, että muuttuja on tilastollisesti merkitsevä
  • Säädetty R-neliö: Mallin selittämä varianssi. Mallissasi malli selitti 82 prosenttia y:n varianssista. R neliö on aina välillä 0 ja 1. Mitä suurempi, sen parempi

Voit ajaa ANOVA testi arvioidaksesi kunkin ominaisuuden vaikutusta varianssiin anova()-funktiolla.

anova(fit)

lähtö:

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

Perinteisempi tapa arvioida mallin suorituskykyä on näyttää jäännös eri mittoja vastaan.

Voit käyttää plot()-funktiota näyttämään neljä kuvaajaa:

– Jäännösarvot vs. sovitetut arvot

– Normaali QQ-kaavio: teoreettinen kvartiili vs. standardoidut jäännökset

– Scale-Location: sovitetut arvot vs. standardoitujen jäännösten neliöjuuret

– Jäännökset vs. Vipuvaikutus: Vipuvaikutus vs. standardoidut jäännökset

Lisäät koodin par(mfrow=c(2,2)) ennen plot(fit). Jos et lisää tätä koodiriviä, R kehottaa sinua painamaan enter-komentoa seuraavan kaavion näyttämiseksi.

par(mfrow=(2,2))

Koodin selitys

  • (mfrow=c(2,2)): palauttaa ikkunan, jossa on neljä kuvaajaa vierekkäin.
  • Ensimmäiset 2 lisää rivien lukumäärän
  • Toinen 2 lisää sarakkeiden lukumäärän.
  • Jos kirjoitat (mfrow=c(3,2)): luot 3 rivin ja 2 sarakkeen ikkunan
plot(fit)

lähtö:

Jatkuvat muuttujat R:ssä

Kaava lm() palauttaa luettelon, joka sisältää paljon hyödyllistä tietoa. Voit käyttää niitä luomallasi sovitusobjektilla, jota seuraa $-merkki ja tiedot, jotka haluat poimia.

– kertoimet: "sovi $kertoimet".

– jäännökset: `sovi$jäännökset`

– sovitettu arvo: `fit$fitted.values`

Tekijät Regressio R:ssä

Viimeisessä mallin estimoinnissa mpg regressoidaan vain jatkuvilla muuttujilla. On yksinkertaista lisätä malliin tekijämuuttujia. Lisäät muuttujan am malliisi. On tärkeää varmistaa, että muuttuja on tekijätaso eikä jatkuva.

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

lähtö:

## 
## 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 käyttää ensimmäistä tekijätasoa perusryhmänä. Sinun on verrattava toisen ryhmän kertoimia perusryhmään.

Portaittainen lineaarinen regressio R:ssä

Tämän opetusohjelman viimeinen osa käsittelee vaiheittainen regressio algoritmi. Tämän algoritmin tarkoituksena on lisätä ja poistaa malleissa mahdollisia ehdokkaita ja säilyttää ne, joilla on merkittävä vaikutus riippuvaiseen muuttujaan. Tämä algoritmi on merkityksellinen, kun tietojoukko sisältää suuren luettelon ennustajia. Sinun ei tarvitse manuaalisesti lisätä ja poistaa riippumattomia muuttujia. Vaiheittainen regressio on rakennettu valitsemaan parhaat ehdokkaat malliin sopiviksi.

Katsotaan käytännössä, miten se toimii. Käytät mtcars-tietojoukkoa jatkuvien muuttujien kanssa vain pedagogiseen havainnollistamiseen. Ennen kuin aloitat analysoinnin, on hyvä määrittää vaihtelut tietojen välillä korrelaatiomatriisin avulla. GGally-kirjasto on ggplot2:n laajennus.

Kirjasto sisältää erilaisia ​​toimintoja, jotka näyttävät yhteenvetotilastoja, kuten korrelaation ja matriisin kaikkien muuttujien jakauman. Käytämme ggscatmat-funktiota, mutta voit viitata vinjetti saadaksesi lisätietoja GGally-kirjastosta.

Ggscatmat():n perussyntaksi on:

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

Näytät kaikkien muuttujien korrelaation ja päätät, mikä niistä on paras ehdokas vaiheittaisen regression ensimmäiseen vaiheeseen. Muuttujien ja riippuvaisen muuttujan, mpg, välillä on joitain vahvoja korrelaatioita.

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

lähtö:

Portaittainen lineaarinen regressio R:ssä

Vaiheittainen regressio Vaiheittainen esimerkki

Muuttujien valinta on tärkeä osa mallin sovittamista. Vaiheittainen regressio suorittaa hakuprosessin automaattisesti. Laskemalla, kuinka monta mahdollista vaihtoehtoa tietojoukossa on Vaiheittainen regressio Vaiheittainen esimerkki jossa k on ennustajien lukumäärä. Mahdollisuuksien määrä kasvaa riippumattomien muuttujien määrän myötä. Siksi sinun on käytettävä automaattista hakua.

Sinun on asennettava olsrr-paketti CRANista. Paketti ei ole vielä saatavilla Anacondassa. Siksi asennat sen suoraan komentoriviltä:

install.packages("olsrr")

Voit piirtää kaikki mahdollisuuksien osajoukot sovituskriteereillä (esim. R-neliö, mukautettu R-neliö, Bayesin kriteerit). Malli, jolla on alhaisimmat AIC-kriteerit, on lopullinen malli.

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

Koodin selitys

  • mpg ~.: Rakenna estimoitava malli
  • lm(malli, df): Suorita OLS-malli
  • ols_all_subset(sovita): Muodosta kuvaajat asiaankuuluvilla tilastotiedoilla
  • juoni (testi): Piirrä kaaviot

lähtö:

Vaiheittainen regressio Vaiheittainen esimerkki

Lineaariset regressiomallit käyttävät t-testi arvioida riippumattoman muuttujan tilastollinen vaikutus riippuvaan muuttujaan. Tutkijat asettivat enimmäisrajaksi 10 prosenttia, ja pienemmät arvot osoittavat vahvempaa tilastollista yhteyttä. Asteittaisen regression strategia on rakennettu tämän testin ympärille mahdollisten ehdokkaiden lisäämiseksi ja poistamiseksi. Algoritmi toimii seuraavasti:

Portaittainen lineaarinen regressio R:ssä
Portaittainen lineaarinen regressio R:ssä
  • Vaihe 1: Regressoi jokainen ennustaja y:llä erikseen. Nimittäin regressio x_1 y:llä, x_2 y:llä x_n:ksi. Säilytä p-arvo ja pidä regressorin p-arvo pienempi kuin määritetty kynnys (0.1 oletuksena). Ennustajat, joiden merkitsevyys on pienempi kuin kynnys, lisätään lopulliseen malliin. Jos millään muuttujalla ei ole p-arvoa pienempi kuin sisääntulokynnys, algoritmi pysähtyy ja sinulla on lopullinen malli, jossa on vain vakio.
  • Vaihe 2: Käytä ennustajaa, jolla on pienin p-arvo ja lisää erikseen yhden muuttujan. Regressoit vakion, askeleen 0.1 ja kolmannen muuttujan parhaan ennustajan. Lisäät vaiheittaiseen malliin uudet ennustajat, joiden arvo on pienempi kuin tulokynnys. Jos minkään muuttujan p-arvo on pienempi kuin 1, algoritmi pysähtyy ja sinulla on lopullinen malli, jossa on vain yksi ennustaja. Regressoit vaiheittaisen mallin tarkistaaksesi vaiheen XNUMX parhaiden ennustajien merkityksen. Jos se on korkeampi kuin poistokynnys, pidät sen porrastetussa mallissa. Muuten suljet sen pois.
  • Vaihe 3: Toistat vaiheen 2 uudessa parhaassa vaiheittaisessa mallissa. Algoritmi lisää ennusteita vaiheittaiseen malliin syötettyjen arvojen perusteella ja jättää ennustajan pois vaiheittaisesta mallista, jos se ei täytä poissulkemiskynnystä.
  • Algoritmi jatkuu, kunnes yhtään muuttujaa ei voida lisätä tai sulkea pois.

Voit suorittaa algoritmin olsrr-paketin funktiolla ols_stepwise().

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

Sitä ennen näytämme sinulle algoritmin vaiheet. Alla on taulukko riippuvista ja riippumattomista muuttujista:

Riippuva muuttuja Riippumattomat muuttujat
mpg disp
hp
rotta
wt
qsec

Aloita

Aluksi algoritmi ajaa mallin jokaiselle riippumattomalle muuttujalle erikseen. Taulukossa näkyy kunkin mallin p-arvo.

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

Syöttääkseen malliin algoritmi säilyttää muuttujan, jolla on pienin p-arvo. Yllä olevasta lähdöstä se on wt

Vaihe 1

Ensimmäisessä vaiheessa algoritmi suorittaa mpg:n wt:llä ja muut muuttujat itsenäisesti.

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

Jokainen muuttuja on mahdollinen ehdokas lopulliseen malliin. Algoritmi säilyttää kuitenkin vain muuttujan, jolla on pienempi p-arvo. Osoittautuu, että hp:llä on hieman pienempi p-arvo kuin qsec:llä. Siksi hp siirtyy lopulliseen malliin

Vaihe 2

Algoritmi toistaa ensimmäisen vaiheen, mutta tällä kertaa kahdella riippumattomalla muuttujalla lopullisessa mallissa.

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

Millään lopulliseen malliin tulleista muuttujista ei ole riittävän alhainen p-arvo. Algoritmi pysähtyy tähän; meillä on lopullinen malli:

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

Voit käyttää funktiota ols_stepwise() tulosten vertailuun.

stp_s <-ols_stepwise(fit, details=TRUE)

lähtö:

Algoritmi löytää ratkaisun 2 vaiheen jälkeen ja palauttaa saman tulosteen kuin meillä oli aiemmin.

Lopuksi voidaan sanoa, että mallit selitetään kahdella muuttujalla ja leikkauspisteellä. Mailia gallonaa kohden korreloi negatiivisesti bruttohevosvoiman ja painon kanssa

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

Koneen oppiminen

Koneen oppiminen on yleistymässä tietotieteilijöiden keskuudessa, ja se on käytössä sadoissa tuotteissa, joita käytät päivittäin. Yksi ensimmäisistä ML-sovelluksista oli roskapostisuodatin.

Seuraavassa on muita koneoppimisen sovelluksia -

  • Ei-toivottujen roskapostiviestien tunnistaminen sähköpostissa
  • Asiakkaiden käyttäytymisen segmentointi kohdennettua mainontaa varten
  • Vilpillisten luottokorttitapahtumien vähentäminen
  • Energiankäytön optimointi koti- ja toimistorakennuksessa
  • kasvojen tunnistus

Ohjattu oppiminen

In Ohjattu oppiminen, algoritmiin syöttämäsi harjoitustiedot sisältävät tunnisteen.

Luokittelu on luultavasti eniten käytetty ohjattu oppimistekniikka. Yksi ensimmäisistä tutkijoiden luokittelutehtävistä oli roskapostisuodatin. Oppimisen tavoitteena on ennustaa, luokitellaanko sähköposti roskapostiksi vai kinkuksi (hyvä sähköposti). Kone voi tunnistaa sähköpostin luokan koulutusvaiheen jälkeen.

taantumat käytetään yleisesti koneoppimiskentässä jatkuvan arvon ennustamiseen. Regressiotehtävä voi ennustaa a:n arvon riippuva muuttuja joukon perusteella riippumattomat muuttujat (kutsutaan myös ennustajiksi tai regressoreiksi). Esimerkiksi lineaariset regressiot voivat ennustaa osakekurssin, sääennusteen, myynnin ja niin edelleen.

Tässä on luettelo perusvalvotuista oppimisalgoritmeista.

  • Lineaarinen regressio
  • Logistinen regressio
  • Lähimmät naapurit
  • Tukivektorikone (SVM)
  • Päätöspuut ja Random Forest
  • Neuraaliverkot

Valvomaton oppiminen

In Valvomaton oppiminen, harjoitustiedot ovat nimeämättömiä. Järjestelmä yrittää oppia ilman viittausta. Alla on luettelo valvomattomista oppimisalgoritmeista.

  • K-keskiarvo
  • Hierarkkinen Cluster analyysi
  • Odotuksen maksimointi
  • Visualisointi ja ulottuvuuden vähentäminen
  • Pääkomponenttianalyysi
  • Ytimen PCA
  • Paikallisesti-lineaarinen upottaminen

Yhteenveto

  • Lineaarinen regressio vastaa yksinkertaiseen kysymykseen: Voitko mitata tarkan suhteen yhden kohdemuuttujan ja ennustajien joukon välillä?
  • Tavallinen pienimmän neliösumman menetelmä yrittää löytää parametrit, jotka minimoivat neliövirheiden summan, eli pystysuoran etäisyyden ennustettujen y-arvojen ja todellisten y-arvojen välillä.
  • Todennäköisyysmallia, joka sisältää useamman kuin yhden riippumattoman muuttujan, kutsutaan moniregressiomalleiksi.
  • Stepwise Linear Regression -algoritmin tarkoituksena on lisätä ja poistaa malleissa mahdollisia ehdokkaita ja säilyttää ne, joilla on merkittävä vaikutus riippuvaan muuttujaan.
  • Muuttujien valinta on tärkeä osa mallin sovittamista. Askelittainen regressio suorittaa hakuprosessin automaattisesti.

Tavallinen pienimmän neliösumman regressio voidaan tiivistää alla olevaan taulukkoon:

Kirjasto Tavoite Toiminto argumentit
pohja Laske lineaarinen regressio lm() kaava, data
pohja Yhteenveto mallista tiivistää () sovittaa
pohja Poimi kertoimet lm()$kerroin
pohja Poimi jäännökset lm()$jäännös
pohja Poimi sovitettu arvo lm()$fitted.values
olsrr Suorita vaiheittainen regressio ols_stepwise() sovi, pent = 0.1, prem = 0.3, yksityiskohdat = EPÄTOSI

Huomautuksia: Muista muuttaa kategorinen muuttuja kertoimella ennen sovittamista malliin.