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:
jossa
- y = Riippuva muuttuja
- x = Riippumaton muuttuja
-
= satunnaisvirhekomponentti
-
= siepata
-
= x:n kerroin
Harkitse seuraavaa juonia:
Yhtälö on 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 ja
, 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ö:
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 ja
on suoraviivaista. Tavoitteena ei ole näyttää johtamista tässä opetusohjelmassa. Kirjoitat vain kaavan.
Haluat arvioida:
OLS-regression tavoitteena on minimoida seuraava yhtälö:
jossa
on todellinen arvo ja
on ennustettu arvo.
Ratkaisu is
Huomaa, että tarkoittaa x:n keskiarvoa
Ratkaisu is
R:ssä voit käyttää cov()- ja var()-funktioita arvioimaan ja voit käyttää mean()-funktiota arvioimaan
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:
Matriisimerkinnässä voit kirjoittaa mallin uudelleen:
Riippuva muuttuja y on nyt k riippumattoman muuttujan funktio. Kertoimen arvo määrittää riippumattoman muuttujan panoksen
ja
.
Esittelemme lyhyesti oletuksen, jonka teimme satunnaisesta virheestä OLS:sta:
- Keskiarvo on 0
- Varianssi yhtä suuri kuin
- Normaalijakauma
- Satunnaiset virheet ovat riippumattomia (todennäköisyyslaskennassa)
Sinun täytyy ratkaista , regressiokertoimien vektori, joka minimoi ennustetun ja todellisen y-arvon välisten neliöityjen virheiden summan.
Suljetun muodon ratkaisu on:
kanssa:
- osoittaa osaksi kansallista lainsäädäntöä matriisista X
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
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
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:
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ö:
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ö:
Vaiheittainen regressio Vaiheittainen esimerkki
Muuttujien valinta on tärkeä osa mallin sovittamista. Vaiheittainen regressio suorittaa hakuprosessin automaattisesti. Laskemalla, kuinka monta mahdollista vaihtoehtoa tietojoukossa on 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ö:
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:
- 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.