Višestruka linearna regresija u R-u: jednostavna i postupna s primjerima

⚡ Pametni sažetak

Jednostavna i višestruka linearna regresija u R-u modeliraju kontinuirani ishod kao ponderirani zbroj prediktora prilagođenih metodom običnih najmanjih kvadrata. Ovaj vodič pokriva lm(), očitavanje koeficijenata, prediktore faktora, dijagnostiku reziduala, predviđanje i automatski odabir varijabli.

  • 📐 Osnovna jednadžba: Jednostavna regresija fitira y = alfa + beta x, a višestruka regresija proširuje isti pravac na k prediktora u matričnom obliku.
  • 🧮 Metoda procjene: Metoda običnih najmanjih kvadrata minimizira zbroj kvadrata vertikalnih udaljenosti između opaženih i predviđenih vrijednosti.
  • 🛠️ Sintaksa modela: lm(formula, podaci) zamjenjuje znak jednakosti tildom, a -1 uklanja odsječak na cifri.
  • 📊 Izlaz čitanja: summary() izvještava o koeficijentima, p-vrijednostima i prilagođenom R-kvadratu, koji na primjeru mtcars doseže 0.8199.
  • 🔎 Dijagnostika: par(mfrow = c(2, 2)) nakon čega slijedi plot(fit) prikazuje četiri rezidualna grafa korištena za testiranje pretpostavki OLS-a.
  • 🔁 Odabir varijable: Postupna regresija u olsrr-u dodaje i uklanja prediktore pomoću p-vrijednosti i završava na omjeru težine i hp.

Višestruka linearna regresija u R

Gdje se linearna regresija uklapa u strojno učenje

Linearna regresija jedna je od najstarijih nadziranih regresija. stroj za učenje algoritmi, i to je još uvijek prvi model za kojim većina analitičara poseže. Jedna od najranijih primjena strojnog učenja bila je filtar za neželjenu poštu.

Druge uobičajene primjene strojnog učenja uključuju:

  • Identifikacija neželjenih spam poruka u e-pošti
  • Segmentacija ponašanja kupaca za ciljano oglašavanje
  • Smanjenje lažnih transakcija kreditnim karticama
  • Optimizacija korištenja energije u domovima i poslovnim zgradama
  • prepoznavanje lica

Nadzirano učenje

In Nadzirano učenje, podaci o obuci koje unesete u algoritam uključuju oznaku.

Klasifikacija je vjerojatno najkorištenija tehnika nadziranog učenja. Jedan od prvih zadataka klasifikacije kojim su se istraživači bavili bio je filter neželjene pošte. Cilj učenja je predvidjeti je li e-pošta klasificirana kao neželjena pošta ili ham (dobra e-pošta). Stroj, nakon koraka obuke, može prepoznati klasu e-pošte.

Regresije se često koriste u području strojnog učenja za predviđanje kontinuirane vrijednosti. Regresijski zadatak može predvidjeti vrijednost zavisna varijabla na temelju skupa neovisne varijable (također se nazivaju prediktori ili regresori). Na primjer, linearna regresija može predvidjeti cijenu dionice, vremensku prognozu, prodaju i tako dalje.

Neki osnovni algoritmi nadziranog učenja su:

  • Linearna regresija
  • Logistička regresija
  • Najbliži susjedi
  • Support Vector Machine (SVM)
  • Stabla odlučivanja i slučajna šuma
  • Neuronske mreže

Učenje bez nadzora

In Učenje bez nadzora, podaci o obuci nisu označeni. Sustav pokušava učiti bez reference. Dolje je popis algoritama učenja bez nadzora.

  • K-srednja vrijednost
  • hijerarhijski Cluster Analiza
  • Maksimiziranje očekivanja
  • Vizualizacija i smanjenje dimenzionalnosti
  • Analiza glavne komponente
  • Kernel PCA
  • Lokalno-linearno ugrađivanje

S tim kontekstom na mjestu, ostatak ovog tutorijala korak po korak gradi regresijske modele u R-u.

Jednostavna linearna regresija u R

Linearna regresija odgovara na jednostavno pitanje: možete li izmjeriti točan odnos između jedne ciljne varijable i skupa prediktora?

Najjednostavniji probabilistički model je model linearne linije:

Jednostavna linearna regresija u R

gdje

  • y = Zavisna varijabla
  • x = Nezavisna varijabla
  • Jednostavna linearna regresija u R = komponenta slučajne pogreške
  • Jednostavna linearna regresija u R = presresti
  • Jednostavna linearna regresija u R = Koeficijent x

Razmotrite sljedeći zaplet:

Jednostavna linearna regresija u R

Jednadžba je Jednostavna linearna regresija u R U ovoj jednadžbi odsječak na osi je 4.77, pa kada je x jednak 0, prilagođena vrijednost y je 4.77. Nagib vam govori u kojem omjeru se y mijenja kada se x mijenja.

Za procjenu optimalnih vrijednosti Jednostavna linearna regresija u R i Jednostavna linearna regresija u R, koristite metodu tzv Obični najmanji kvadrati (OLS). Ova metoda pokušava pronaći parametre koji minimiziraju zbroj kvadrata pogrešaka, odnosno okomitu udaljenost između predviđenih vrijednosti y i stvarnih vrijednosti y. Razlika je poznata kao termin pogreške.

Prije nego što procijenite model, možete odrediti je li linearni odnos između y i x moguć iscrtavanjem dijagrama raspršenja.

Dijagram raspršenosti

Koristit ćemo vrlo jednostavan skup podataka kako bismo objasnili koncept jednostavne linearne regresije. Uvest ćemo prosječne visine i težine za američke žene. Skup podataka sadrži 15 opažanja. Želite izmjeriti jesu li visine u pozitivnoj korelaciji s težinama.

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

Izlaz:

Dijagram raspršenosti

Dijagram raspršenja sugerira opću tendenciju povećanja težine s povećanjem visine. U sljedećem koraku mjerit ćete za koliko se težina povećava za svaku dodatnu jedinicu visine.

Procjene najmanjih kvadrata

U jednostavnoj OLS regresiji, izračun od Procjene najmanjih kvadrata i Procjene najmanjih kvadrata je jednostavan. Ovaj vodič ne izvodi formule, već ih samo navodi.

Želite procijeniti: Procjene najmanjih kvadrata

Cilj OLS regresije je minimizirati sljedeću jednadžbu:

Procjene najmanjih kvadrata

gdje

Procjene najmanjih kvadrata je stvarna vrijednost i Procjene najmanjih kvadrata je predviđena vrijednost.

Rješenje za Procjene najmanjih kvadrata is Procjene najmanjih kvadrata

Imajte na umu da Procjene najmanjih kvadrata znači prosječnu vrijednost x

Rješenje za Procjene najmanjih kvadrata is Procjene najmanjih kvadrata

U R-u možete koristiti funkcije cov() i var() za procjenu Procjene najmanjih kvadrata a za procjenu možete koristiti funkciju mean(). Procjene najmanjih kvadrata

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

Izlaz:

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

Izlaz:

## [1] -87.51667

Beta koeficijent implicira da se za svaki dodatni centimetar visine prosječna težina povećava za 3.45 funti.

Ručna procjena linearne jednadžbe je poučna, ali nepraktična. R pruža funkciju lm() koja to radi umjesto vas, a koristit ćete je od sljedećeg odjeljka nadalje. U stvarnim projektima gotovo nikada nećete prilagoditi model s jednim prediktorom; regresijski zadaci obično uključuju mnogo estimatora odjednom.

Višestruka linearna regresija u R

Praktične primjene regresijske analize koriste modele složenije od jednostavnog linearnog modela. Probabilistički model koji uključuje više od jedne nezavisne varijable naziva se višestruki regresijski modeli. Opći oblik ovog modela je:

Višestruka linearna regresija u R

U matričnom zapisu, možete prepisati model:

  • Višestruka linearna regresija u R

Zavisna varijabla y sada je funkcija k nezavisnih varijabli. Vrijednost koeficijenta Višestruka linearna regresija u R određuje doprinos nezavisne varijable Višestruka linearna regresija u R i Višestruka linearna regresija u R.

Ukratko predstavljamo pretpostavku koju smo napravili o slučajnoj pogrešci Višestruka linearna regresija u R OLS-a:

  • Srednja vrijednost jednaka 0
  • Varijanca jednaka Višestruka linearna regresija u R
  • Normalna distribucija
  • Slučajne pogreške su neovisne (u vjerojatnosnom smislu)

Morate riješiti za Višestruka linearna regresija u R, vektor regresijskih koeficijenata koji minimiziraju zbroj kvadrata pogrešaka između predviđenih i stvarnih y vrijednosti.

Rješenje zatvorenog oblika je:

Višestruka linearna regresija u R

s:

  • označava prenositi matrice X
  • Višestruka linearna regresija u R označava invertibilna matrica

Primjeri u nastavku koriste ugrađeni skup podataka mtcars. Cilj je predvidjeti potrošnju goriva u miljama po galonu (mpg) iz skupa značajki.

Kontinuirane varijable u R

Za sada ćete koristiti samo kontinuirane varijable i ostaviti po strani kategoričke značajke. Varijabla am je binarna varijabla koja ima vrijednost 1 ako je mjenjač ručni i 0 za automatske automobile; vs je također binarna varijabla.

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

Izlaz:

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

Za izračunavanje parametara možete koristiti funkciju lm(). Osnovna sintaksa ove funkcije je:

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

Zapamtite da je jednadžba sljedećeg oblika

Kontinuirane varijable u R

u R

  • Simbol = zamjenjuje se sa ~
  • Svaki x zamijenjen je imenom varijable
  • Ako želite izbaciti konstantu, dodajte -1 na kraju formule

Primjer:

Želite procijeniti težinu pojedinaca na temelju njihove visine i prihoda. Jednadžba je

Kontinuirane varijable u R

Jednadžba u R je napisana na sljedeći način:

y ~ X1+ X2+…+Xn # S presjekom

Dakle, za naš primjer:

  • Vagati ~ visina + prihod

Vaš cilj je procijeniti milju po galonu na temelju niza varijabli. Jednadžba za procjenu je:

Kontinuirane varijable u R

Procijenit ćete svoju prvu linearnu regresiju i pohraniti rezultat u fit objekt.

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

Code Objašnjenje

  • model <- mpg ~ disp + hp + drat + wt + qsec: Pohrani model za procjenu
  • lm(model, df): Procijenite model s okvirom podataka 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	

Izlaz ne pruža dovoljno informacija o kvaliteti pristajanja. Pomoću funkcije summary() možete pristupiti više detalja kao što su značaj koeficijenata, stupanj slobode i oblik reziduala.

summary(fit)

Izlaz:

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

Zaključak iz gornjeg izlaza tablice

  • Tablica pokazuje jaku negativnu vezu između težine i potrošnje goriva, te pozitivan koeficijent za potrošnju goriva.
  • Samo varijabla wt ima statistički utjecaj na mpg. Zapamtite, za testiranje hipoteze u statistici koristimo:
    • H0: Nema statističkog utjecaja
    • H1: Prediktor ima značajan utjecaj na y
    • Ako je p vrijednost niža od 0.05, to znači da je varijabla statistički značajna
  • Prilagođeni R-kvadrat: udio varijance y objašnjen modelom, korigiran za broj prediktora. Ovdje je to 0.8199, tako da model objašnjava oko 82 posto varijance potrošnje goriva. R-kvadrat se uvijek nalazi između 0 i 1, a veći je bolji.

Možete pokrenuti ANOVA test za procjenu učinka svake značajke na varijance pomoću funkcije anova().

anova(fit)

Izlaz:

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

Konvencionalniji način procjene izvedbe modela je prikaz reziduala u odnosu na različite mjere.

Možete koristiti funkciju plot() za prikaz četiri grafikona:

– Ostaci u odnosu na prilagođene vrijednosti

– Normalni QQ grafikon: teorijski kvartil u odnosu na standardizirane reziduale

– Skala-lokacija: prilagođene vrijednosti u odnosu na kvadratne korijene standardiziranih reziduala

– Ostaci u odnosu na financijsku polugu: financijska poluga u odnosu na standardizirane reziduale

Prije plot(fit) dodajete kod par(mfrow = c(2, 2)). Ako ne dodate ovaj redak koda, R će vas potaknuti da pritisnete naredbu enter za prikaz sljedećeg grafa.

par(mfrow = c(2, 2))

Code Objašnjenje

  • (mfrow=c(2,2)): vraća prozor s četiri grafikona jedan pored drugog.
  • Prva 2 zbrajaju broj redaka
  • Druga 2 dodaje broj stupaca.
  • Ako napišete (mfrow=c(3,2)): stvorit ćete prozor s 3 reda i 2 stupca
plot(fit)

Izlaz:

Kontinuirane varijable u R

Formula lm() vraća popis koji sadrži mnogo korisnih informacija. Možete im pristupiti pomoću objekta fit koji ste kreirali, nakon čega slijedi znak $ i informacije koje želite prikazati.tract.

– koeficijenti: `fit$coefficients`

– ostaci: `fit$reziduali`

– prilagođena vrijednost: `fit$fitted.values`

Faktori regresije u R

U posljednjoj procjeni modela, regresirate mpg samo na kontinuirane varijable. Modelu je jednostavno dodati faktorske varijable. Svojem modelu dodajete varijablu am. Važno je biti siguran da je varijabla faktorska razina, a ne kontinuirana.

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

Izlaz:

## 
## 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 koristi prvu razinu faktora kao osnovnu grupu. Morate usporediti koeficijente druge grupe u odnosu na osnovnu grupu.

Pretpostavke linearne regresije u R-u

Obična metoda najmanjih kvadrata daje pouzdane koeficijente i p-vrijednosti samo kada je ispunjeno pet uvjeta. Četiri dijagnostička grafikona koje proizvodi plot(fit) postoje upravo da bi ih provjerili.

  • linearnost: odnos između svakog prediktora i y je linearan. Provjerite Ostaci u odnosu na ugrađene dijelove graf; vidljiva krivulja znači da vam je potrebna transformacija ili polinomski član.
  • Neovisnost: Članovi pogreške nisu korelirani. Vremenski poredani podaci često krše ovo, što možete testirati pomoću durbinWatsonTest() iz paketa car.
  • Homoskedastičnost: Varijanca pogreške je konstantna za sve prilagođene vrijednosti. Oblik lijevka u Skala-Lokacija zaplet signalizira kršenje.
  • Normalnost reziduala: pogreške slijede normalnu distribuciju. Točke bi trebale biti na dijagonali Normalni QQ zemljište.
  • Nema multikolinearnosti: Prediktori nisu gotovo identični. Faktor inflacije varijance iznad 5 je uobičajena linija upozorenja.
library(car)
vif(fit)           # variance inflation factors
shapiro.test(residuals(fit))   # normality of residuals

Kršenja ne čine uvijek model nevažećim, ali mijenjaju koliko možete biti sigurni u p-vrijednosti, stoga ih provjerite prije izvještavanja bilo kojeg koeficijenta.

Kako napraviti predviđanja pomoću modela linearne regresije u R-u

Prilagođavanje modela je samo pola posla. Funkcija predict() primjenjuje prilagođene koeficijente na nova opažanja.

predict(object, newdata, interval = "none", level = 0.95)
arguments:
-object: The model returned by lm()
-newdata: A data frame whose columns match the predictors used in the formula
-interval: "none", "confidence" for the mean response, or "prediction" for a single new case
-level: The confidence level, 0.95 by default

Slijedite ova tri koraka.

  1. Izgradite okvir podataka za nove slučajeve. Nazivi stupaca moraju se točno podudarati s nazivima prediktora u formuli, a razine faktora moraju se podudarati s podacima za učenje.
  2. Pozovite predict(). Proslijedite prilagođeni objekt i novi okvir podataka.
  3. Dodajte interval. Odaberite „pouzdanost“ kada želite nesigurnost oko prosječnog odziva, a „predviđanje“ kada želite domet za jedan pojedinačni automobil.
new_cars <- data.frame(wt = c(2.5, 3.2), hp = c(110, 175))
fit_final <- lm(mpg ~ wt + hp, data = mtcars)

predict(fit_final, newdata = new_cars)
predict(fit_final, newdata = new_cars, interval = "prediction")

Čitanje rezultata. Predviđa se da će automobil težine 2.5 tisuće funti sa 110 konjskih snaga potrošiti otprilike 24.1 mpg. Interval predviđanja uvijek je širi od intervala pouzdanosti jer nosi nesigurnost pojedinačnog opažanja povrh nesigurnosti prilagođene linije.

Dva pravila održavaju predviđanja iskrenima. Nikada ne ekstrapolirajte izvan raspona prediktora za učenje, jer ravna linija nema dokaza. I uvijek procjenjujte na podacima koje model nije vidio, inače je prijavljena pogreška optimistična.

Linearna regresija u odnosu na logističku regresiju u R-u

Analitičari često posežu za lm() kada ishod nije kontinuiran. Tablica u nastavku pokazuje gdje se nalazi granica.

Kriteriji Linearna regresija Logistička regresija
Varijabla odgovora Stalan Binarno ili kategoričko
Predviđeni izlaz Bilo koji realni broj Vjerojatnost između 0 i 1
Procjena Obični najmanji kvadrati Maksimalna vjerojatnost
Prilagodite mjeru R-kvadrat, RMSE AIC, devijantnost, točnost
R funkcija lm(formula, podaci) glm(formula, podaci, obitelj = “binom”)

Ako je ishod odluka da ili ne, prijeđite na generalizirani linearni model umjesto forsiranja ravne linije kroz nule i jedinice.

Postepena linearna regresija u R

Posljednji dio ovog vodiča bavi se postupna regresija algoritam. Svrha ovog algoritma je dodavanje i uklanjanje potencijalnih kandidata u modelima i zadržavanje onih koji imaju značajan utjecaj na zavisnu varijablu. Ovaj algoritam ima smisla kada skup podataka sadrži veliki popis prediktora. Ne morate ručno dodavati i uklanjati nezavisne varijable. Postepena regresija izgrađena je za odabir najboljih kandidata koji odgovaraju modelu.

Pogledajmo u akciji kako to funkcionira. Skup podataka mtcars s kontinuiranim varijablama koristite samo za pedagošku ilustraciju. Prije nego što započnete analizu, dobra je praksa pregledati odnose u podacima pomoću matrice korelacije. Biblioteka GGally je proširenje biblioteke ggplot2.

Knjižnica uključuje različite funkcije za prikaz sumarne statistike kao što su korelacija i distribucija svih varijabli u matrici. Koristit ćemo funkciju ggscatmat, ali možete se pozvati na vinjeta za više informacija o knjižnici GGally.

Osnovna sintaksa za ggscatmat() je:

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

Prikazujete korelaciju za sve svoje varijable i odlučujete koje su najbolji kandidati za prvi korak postupne regresije. Postoje neke jake korelacije između vaših varijabli i zavisne varijable, mpg.

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

Izlaz:

Postepena linearna regresija u R

Korak po korak primjer regresije

Odabir varijabli važan je dio prilagođavanja modela, a postupna regresija automatski izvodi tu pretragu. Da biste procijenili koliko mogućih izbora postoji u skupu podataka, izračunavate Korak po korak primjer regresije gdje je k broj prediktora. Količina mogućnosti raste s brojem nezavisnih varijabli. Zato morate imati automatsku pretragu.

Morate instalirati paket olsrr iz CRAN-a. Paket još nije dostupan u Anacondi. Stoga ga instalirate izravno iz naredbenog retka:

install.packages("olsrr")

Možete iscrtati sve podskupove mogućnosti s kriterijima prilagodbe (tj. R-kvadrat, prilagođeni R-kvadrat, Bayesov kriterij). Model s najnižim AIC kriterijima bit će konačni model.

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

Code Objašnjenje

  • mpg ~.: Konstruirajte model za procjenu
  • lm(model, df): Pokrenite OLS model
  • ols_svi_podskup(prilagođavanje): Izgradite grafove s relevantnim statističkim podacima
  • dijagram (test): Iscrtajte grafikone

Izlaz:

Korak po korak primjer regresije

Modeli linearne regresije koriste t-test za procjenu statističkog utjecaja nezavisne varijable na zavisnu varijablu. Istraživači obično postavljaju maksimalni prag na 10 posto, a niže p-vrijednosti ukazuju na jaču statističku vezu. Postupna regresija se gradi oko ovog testa za dodavanje i uklanjanje kandidata za prediktore. Algoritam radi na sljedeći način:

Postepena linearna regresija u R
Postepena linearna regresija u R
  • Korak 1: Regresirajte svaki prediktor na y zasebno. Naime, regresija x_1 na y, x_2 na y na x_n. Pohranite p-vrijednost i zadržite regresor s p-vrijednošću nižom od definiranog praga (0.1 prema zadanim postavkama). Prediktori sa značajnošću nižom od praga bit će dodani konačnom modelu. Ako nijedna varijabla nema p-vrijednost nižu od ulaznog praga, tada se algoritam zaustavlja i imate svoj konačni model samo s konstantom.
  • Korak 2: Koristite prediktor s najnižom p-vrijednošću i zasebno dodaje jednu varijablu. Regresirate konstantu, najbolji prediktor prvog koraka i treće varijable. Postupnom modelu dodajete nove prediktore s vrijednošću nižom od ulaznog praga. Ako nijedna varijabla nema p-vrijednost nižu od 0.1, tada se algoritam zaustavlja i imate svoj konačni model sa samo jednim prediktorom. Regresirate postupni model kako biste provjerili značaj najboljih prediktora za prvi korak. Ako je viši od praga za uklanjanje, zadržavate ga u postupnom modelu. U protivnom ga isključujete.
  • Korak 3: Replicirate korak 2 na novom najboljem modelu korak po korak. Algoritam dodaje prediktore u postupni model na temelju unesenih vrijednosti i isključuje prediktor iz postupnog modela ako ne zadovoljava prag isključivanja.
  • Algoritam nastavlja raditi dok se nijedna varijabla ne može dodati ili isključiti.

Algoritam možete izvesti s funkcijom ols_stepwise() iz paketa 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

⚠️ Napomena o paketu: Novije verzije olsrr-a preimenovale su ove funkcije. Koristite ols_step_sve_moguće() umjesto ols_all_subset() i ols_step_both_p() umjesto ols_stepwise(). Argumenti i izlaz ostaju nepromijenjeni.

Prije toga, pokazat ćemo vam korake algoritma. Dolje je tablica s ovisnim i nezavisnim varijablama:

Zavisna varijabla Nezavisne varijable
mpg dostupno
hp
štakor
wt
qsec

Start

Za početak, algoritam počinje pokretanjem modela na svakoj nezavisnoj varijabli zasebno. Tablica prikazuje p-vrijednost za svaki 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

Za ulazak u model, algoritam zadržava varijablu s najnižom p-vrijednošću. Iz gornjeg rezultata, to je mas

Korak 1

U prvom koraku, algoritam neovisno pokreće mpg na wt i drugim varijablama.

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

Svaka varijabla je potencijalni kandidat za ulazak u konačni model. Međutim, algoritam zadržava samo varijablu s nižom p-vrijednošću. Ispada da hp ima nešto nižu p-vrijednost od qsec, pa hp ulazi u konačni model.

Korak 2

Algoritam ponavlja prvi korak, ali ovaj put s dvije neovisne varijable u konačnom modelu.

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

Nijedan od preostalih kandidata nema p-vrijednost ispod ulaznog praga. Algoritam se ovdje zaustavlja i ovo je konačni 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

Možete koristiti funkciju ols_stepwise() za usporedbu rezultata.

stp_s <-ols_stepwise(fit, details=TRUE)

Izlaz:

Algoritam pronalazi rješenje nakon dva koraka i vraća isti izlaz kao i gornji ručni vodič.

Konačni model stoga objašnjavaju dva prediktora i odsječak na jednoj liniji: milje po galonu negativno su povezane i s bruto konjskim snagama i s težinom.

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

Linearna regresija u R-u: Ključne informacije i referenca funkcija

  • Linearna regresija odgovara na jednostavno pitanje: možete li izmjeriti točan odnos između jedne ciljne varijable i skupa prediktora?
  • Metoda običnih najmanjih kvadrata pronalazi parametre koji minimiziraju zbroj kvadratnih pogrešaka, odnosno vertikalnu udaljenost između predviđenih y vrijednosti i stvarnih y vrijednosti.
  • Vjerojatnosni model koji uključuje više od jedne nezavisne varijable naziva se model višestruke regresije.
  • Svrha algoritma Stepwise Linear Regression je dodavanje i uklanjanje potencijalnih kandidata u modelima i zadržavanje onih koji imaju značajan utjecaj na zavisnu varijablu.
  • Odabir varijabli važan je dio prilagođavanja modela, a postupna regresija automatski izvodi tu pretragu.

Svaka funkcija korištena u ovom tutorijalu navedena je u nastavku:

Knjižnica Cilj funkcija argumenti
baza Izračunajte linearnu regresiju lm() formula, podaci
baza Sažeti model Sažetak() pristajati
baza Extract-koeficijenti lm()$koeficijent
baza Extract reziduala lm()$reziduali
baza Extract-prilagođena vrijednost lm()$uklopljene.vrijednosti
olsrr Pokrenite postupnu regresiju ols_stepwise() pristajanje, pent = 0.1, prem = 0.3, detalji = FALSE

bilješkeNe zaboravite pretvoriti kategoričke varijable u faktore prije prilagođavanja modela.

Pitanja i odgovori

R-kvadrat uvijek raste kada dodate prediktor, čak i beskoristan. Prilagođeni R-kvadrat kažnjava svaki dodatni član, tako da može pasti. Koristite prilagođeni R-kvadrat kada uspoređujete modele s različitim brojem prediktora.

Grafikon reziduala u odnosu na polugu označava utjecajne točke kroz Cookovu udaljenost. Istražite ih prije nego što bilo što izbrišete: outlier može biti pogreška pri unosu podataka ili može biti najinformativnije opažanje u uzorku.

Ne. R automatski stvara lažne varijable nakon što stupac postane faktor. Prva razina postaje referentna skupina, a svaki drugi koeficijent se čita kao razlika od te osnovne linije.

Linearna regresija je brza, u potpunosti provjerljiva i teško ju je preopteretiti, što je čini standardnom bazom prije nego što se bilo koji AI tim posveti pojačavanju gradijenta ili neuronskim mrežama. Regulirani sektori često zahtijevaju tu transparentnost.

Da. AI asistenti mogu predložiti specifikacije kandidata, objasniti postupni izlaz i upozoriti na multikolinearnost. Tretirajte prijedloge kao hipoteze i potvrdite svaki od njih vlastitom dijagnostikom i znanjem o domeni.

Sažmite ovu objavu uz: