Introducere Completă de Regresie Liniară în R

regresie Liniară este folosit pentru a prezice valoarea unei variabile continue Y bazat pe una sau mai multe de intrare variabilele predictor X. scopul este De a stabili o formulă matematică între variabila de răspuns (Y) și variabilele predictor (Xs). Puteți utiliza această formulă pentru a prezice Y, când sunt cunoscute doar valorile X.

introducere completă în regresia liniară cu R. (foto de Stacy Wyss)Conținuturi1. Introducere în regresia liniară
2., Exemplu de problemă
3. Analiza grafică
– utilizarea Scatter Plot pentru a vizualiza relația
– utilizarea BoxPlot pentru a verifica pentru valori aberante— br > – utilizarea Plot densitate pentru a verifica dacă variabila de răspuns este aproape de normal
4. Ce este analiza corelației?
5. Construirea modelului de regresie liniară
6. Diagnosticare regresie liniară
– folosind valoarea P pentru a verifica semnificația statistică
— Care este ipoteza nulă și alternativă?
– Ce este valoarea t?
– Cum se calculează valorile statistice t și P?
– R-pătrat și ajustat R-pătratr— – eroare Standard și F-Statistică
7., Cum să știți care model de regresie este cel mai potrivit pentru date?
8. Prezicerea modelelor liniare
9. Ce este validarea încrucișată k – Fold și scopul acesteia?
10. Unde să mergem de aici?

1. Introducere în regresia liniară

regresia liniară este una dintre cele mai utilizate tehnici de modelare predictivă. Scopul regresiei liniare este de a găsi o ecuație matematică pentru o variabilă de răspuns continuu Y în funcție de una sau mai multe variabile X(e). Astfel încât să puteți utiliza acest model de regresie pentru a prezice Y atunci când numai X este cunoscut.,

această ecuație matematică poate fi generalizată după cum urmează:

$$Y = \ beta_{1} + \ beta_{2} X + \ epsilon$$

unde, ?1 este interceptarea și ?2 este panta.

colectiv, ele sunt numite coeficienți de regresie și ? este termenul de eroare, partea din Y modelul de regresie nu este în măsură să explice.

Regresie Liniară Linie

Exemplu de Problemă

Pentru această analiză, vom folosi cars set de date care vine cu R în mod implicit.,

cars este un standard built-in set de date, care face convenabil pentru a arăta regresie liniară într-un mod simplu și ușor de înțeles.

puteți accesa acest set de date tastând cars în consola R.

Veți găsi că este alcătuită din 50 de observații(rânduri) și 2 variabile (coloane) � dist și speed. Să tipărim primele șase observații aici.,

head(cars) 
#> speed dist#> 1 4 2#> 2 4 10#> 3 7 4#> 4 7 22#> 5 8 16#> 6 9 10

scopul aici este de a stabili o ecuație matematică pentru dist ca o funcție de speed, astfel încât să puteți folosi pentru a prezice dist când numai speed de mașină este cunoscut.

Deci, este de dorit de a construi un model liniar de regresie cu variabila de răspuns ca dist și ca predictor speed.

înainte de a începe construirea modelului de regresie, este o bună practică să analizăm și să înțelegem variabilele.,

analiza grafică și studiul de corelație de mai jos vă vor ajuta în acest sens.scopul acestui exercițiu este de a construi un model de regresie simplu pe care îl puteți utiliza pentru a prezice distanța (dist).

Acest lucru este posibil prin stabilirea unei formule matematice între Distanța (dist) și Viteza (speed).

dar înainte de a sări la sintaxa, să încercăm să înțelegem aceste variabile grafic.,

de Obicei, pentru fiecare dintre factori, următoarele parcele vizualiza modele:

  • Scatter plot: Vizualizează relația liniară între predictor și răspuns
  • Box-plot: Să fața locului orice outlier observații în variabilă. A avea valori aberante în predictorul dvs. poate afecta drastic predicțiile, deoarece acestea pot afecta direcția / panta liniei de cea mai bună potrivire.
  • Plot densitate: pentru a vedea distribuția variabilei predictor. În mod ideal, este preferată o distribuție apropiată de cea normală (o curbă în formă de clopot), fără a fi înclinată spre stânga sau spre dreapta.,să vedem cum să facem fiecare dintre ele.

    folosind Scatter Plot pentru a vizualiza relația

    Scatter plots poate ajuta la vizualizarea relațiilor liniare între variabilele de răspuns și predictor.

    în mod ideal, dacă aveți mai multe variabile predictor, un complot scatter este tras pentru fiecare dintre ele împotriva răspunsului, împreună cu linia de cea mai bună potrivire așa cum se vede mai jos.,

    scatter.smooth(x=cars$speed, y=cars$dist, main="Dist ~ Speed") 
    Distanța Vs Viteza Scatterplot

    scatter plot, împreună cu netezirea linia de mai sus sugerează un liniar și pozitiv relația dintre �dist� și �speed�.

    acesta este un lucru bun.deoarece, una dintre ipotezele care stau la baza regresiei liniare este, relația dintre variabilele de răspuns și predictor este liniară și aditivă.,

    folosind BoxPlot pentru a verifica valorile

    În general, un punct de referință este orice punct de date care se află în afara intervalului 1.5 * inter quartile (IQR).IQR se calculează ca distanța dintre valorile percentilei 25 și percentila 75 pentru acea variabilă.,

    Boxplots de Viteză și Distanță

    Folosind Densitatea Teren Pentru a Verifica Dacă o Variabilă de Răspuns Este Aproape La Normal

    Densitatea Complot Pentru Viteză și Distanță

    4. Ce este analiza corelației?

    analiza corelației studiază puterea relației dintre două variabile continue. Aceasta implică calcularea coeficientului de corelație între cele două variabile.,deci, ce este corelația? Și cum este util în regresia liniară?

    corelația este o măsură statistică care arată gradul de dependență liniară între două variabile.

    În scopul de a calcula corelația, cele două variabile trebuie să aibă loc în perechi, doar ca ceea ce avem aici cu speed și dist.

    corelația poate lua valori între -1 și +1.dacă o variabilă crește constant odată cu creșterea valorii celeilalte, atunci ele au o corelație pozitivă puternică (valoare apropiată de +1).,în mod similar, dacă unul scade constant atunci când celălalt crește, acestea au o corelație negativă puternică (valoare apropiată de -1).

    o valoare mai apropiată de 0 sugerează o relație slabă între variabile.

    O corelație slabă (-0.2 < x < 0.2) probabil sugerează că mai mult de variație a variabilei de răspuns (Y) este inexplicabilă de predictor (X). În acest caz, ar trebui să căutați probabil variabile explicative mai bune.,

    dacă observați setul de date cars din consola R, pentru fiecare instanță în care viteza crește, distanța crește și ea odată cu aceasta.asta înseamnă că există o relație pozitivă puternică între ele. Deci, corelația dintre ele va fi mai aproape de 1.

    cu toate acestea, corelația nu implică cauzalitate.cu alte cuvinte, dacă două variabile au o corelație ridicată, aceasta nu înseamnă că o variabilă „determină” creșterea valorii celeilalte variabile.

    corelația este doar un ajutor pentru a înțelege relația., Vă puteți baza doar pe logica și raționamentul de afaceri pentru a face această judecată.deci, cum se calculează corelația în R?

    pur și simplu utilizați funcția cor() cu cele două variabile numerice ca argumente.

    cor(cars$speed, cars$dist) 
    #> 0.8068949

    Construirea Modelului de Regresie Liniară

    Acum, că ați văzut relație liniară pictural în scatter plot și prin corespondență, să încercăm construirea modelului de regresie liniară.

    funcția utilizată pentru construirea modelelor liniare este lm().,

    lm() funcția nevoie de două argumente principale:

    1. Formula
    2. Date

    date este de obicei un data.frame obiect și formula este un obiect din clasa formula.dar cea mai comună convenție este de a scrie formula direct așa cum este scris mai jos.prin construirea modelului de regresie liniară, am stabilit relația dintre predictor și răspuns sub forma unei formule matematice.

    Care este Distanța (dist) ca o funcție de speed.,

    pentru ieșirea de mai sus, puteți observa coeficienții coeficienți multipli, având două componente: Intercept: -17.579, viteză: 3.932.acestea sunt numite și coeficienții beta. Cu alte cuvinte,

    $$dist?=?Interceptare?+?(????viteza)$$

    => dist = ?17.579 + 3.932?viteza

    Regresie Liniară Diagnosticare

    Acum modelul liniar este construit și au o formulă pe care le puteți folosi pentru a prezice dist valoare dacă corespunde un speed este cunoscut.

    este suficient acest lucru pentru a utiliza efectiv acest model? Nu!,deoarece, înainte de a utiliza un model de regresie pentru a face predicții, trebuie să vă asigurați că este semnificativ statistic. Dar cum vă asigurați acest lucru?

    Să începem prin tipărirea statisticilor sumare pentru linearMod.

    folosind valoarea p pentru a verifica semnificația statistică

    Statisticile sumare de mai sus ne spun o serie de lucruri.

    una dintre ele este valoarea p a modelului (în ultima linie) și valoarea p a variabilelor predictoare individuale (coloana din dreapta extremă sub coeficienții de coeficienți aritmici).valorile p sunt foarte importante.,deoarece, putem considera un model liniar ca fiind semnificativ statistic numai atunci când ambele valori p sunt mai mici decât nivelul de semnificație statistică predeterminat de 0,05.acest lucru poate fi interpretat vizual de stelele de semnificație de la sfârșitul rândului împotriva fiecărei variabile X.

    cu cât sunt mai multe stele lângă valoarea variabilă S p, cu atât este mai semnificativă variabila.

    care este ipoteza nulă și alternativă?

    ori de câte ori există o valoare p, există întotdeauna o ipoteză nulă și alternativă asociată.deci ,care este ipoteza nulă în acest caz?,

    în regresia liniară, ipoteza nulă (H0) este că coeficienții beta asociați cu variabilele sunt egali cu zero.ipoteza alternativă (H1) este că coeficienții nu sunt egali cu zero. (adică există o relație între variabila independentă în cauză și variabila dependentă).

    ce este valoarea t?

    putem interpreta valoarea t ceva de genul acesta. O valoare t mai mare indică faptul că este mai puțin probabil ca coeficientul să nu fie egal cu zero pur întâmplător. Deci, mai mare valoarea t, cu atât mai bine.,

    Pr(>| t/) sau valoarea p este probabilitatea ca veți obține o valoare t la fel de mare sau mai mare decât valoarea observată atunci când ipoteza nulă (the ? coeficientul este egal cu zero sau că nu există nici o relație)este adevărat. ce înseamnă asta pentru noi?când valoarea p este mai mică decât nivelul de semnificație (< 0.05), puteți respinge în siguranță ipoteza nulă că co-eficient ? a predictorului este zero.

    în cazul nostru, linearMod, ambele valori p sunt cu mult sub pragul de 0,05.,deci, puteți respinge ipoteza nulă și puteți concluziona că modelul este într-adevăr semnificativ statistic.

    este foarte important ca modelul să fie semnificativ statistic înainte de a putea merge mai departe și să-l utilizați pentru a prezice variabila dependentă. În caz contrar, încrederea în valorile prezise din modelul respectiv se reduce și poate fi interpretată ca un eveniment de șansă.

    cum se calculează valorile statistice t și p?

    când sunt cunoscute coeficientele modelului și eroarea standard, formula pentru calcularea statisticii t și a valorii p este următoarea:

    $$t?Statistica = {??,coeficient \peste Std.Eroare}$$

    în cazul în care doriți să calculați unele statistici prin cod manual, fragmentul de mai jos arată cum.

    R-pătrat și Adj R-pătrat

    informațiile reale dintr-o dată sunt variația totală pe care o conține, îți amintești?.

    ceea ce ne spune R-pătrat este proporția de variație a variabilei dependente (răspuns) care a fost explicată de acest model.,

    R Pătrat de Calcul

    Amintiți-vă, numărul total de informații într-o variabilă este cantitatea de variație conține.

    $$ R^{2} = 1 – \frac{RSS}{TSS}$$

    în cazul în care, RSS este Suma Reziduală a Pătratelor dat de

    $$RSS = \sum_{i}^{n} \left( y_{i} – \hat{y_{i}} \right) ^{2}$$,
    iar Suma pătratelor Total este dat de
    $$TSS = \sum_{i}^{n} \left( y_{i} – \bar{y_{i}} \right) ^{2}$$

    Aici, y-hat este echipat valoare pentru observarea i și y-bar este de Y.,

    nu renunțăm neapărat la un model bazat pe o valoare scăzută R-pătrat.pentru a compara eficacitatea a două modele de regresie diferite, este o bună practică utilizarea eșantionului de validare pentru a compara AIC-ul celor două modele.

    pe lângă AIC, pot fi utilizate și alte valori de evaluare, cum ar fi eroarea procentuală medie absolută (MAPE), eroarea medie pătrată (MSE) și eroarea absolută medie (MAE).

    asta e despre R-pătrat. Acum, Ce zici de ajustat R-pătrat?

    ce este ajustat R-pătrat?,

    pe măsură ce adăugați mai multe variabile X la modelul dvs., valoarea R-pătrat a noului model mai mare va fi întotdeauna mai mare decât cea a subsetului mai mic.

    vă puteți imagina de ce?acest lucru se datorează faptului că, deoarece toate variabilele din modelul original sunt de asemenea prezente, contribuția lor la explicarea variabilei dependente va fi prezentă și în super-set.prin urmare, orice variabilă nouă pe care o adăugați poate adăuga (dacă nu semnificativ) la variația care a fost deja explicată.

    este aici, valoarea ajustată R-pătrat vine să ajute.,

    ajustat R-pătrat este formulat astfel încât penalizează numărul de termeni (citiți predictorii) din modelul dvs.deci, spre deosebire de R-sq, pe măsură ce numărul predictorilor din model crește, adj-R-sq nu poate crește întotdeauna.prin urmare, atunci când se compară modelele imbricate, este o bună practică să se compare folosind adj-R-pătrat, mai degrabă decât doar R-pătrat.,

    $$ R^{2}_{adj} = 1 – \frac{MSE}{MST}$$

    în cazul în care, MSE este medie pătratică de eroare dat de

    $$MSE = \frac{RSS}{\left( n-q \right)}$$

    și MST este medie pătratică totală dat de

    $$MST = \frac{TSS}{\left( n-1 \right)}$$

    în cazul în care, n este numărul de observații și q este numărul de coeficienți în model.,

    prin Urmare, prin mutarea în jurul numărătorii și numitorii, relația dintre R2 și Radj2 devine:

    $$R^{2}_{adj} = 1 – \left( \frac{\left( 1 – R^{2}\right) \left(n-1\right)}{n-q}\right)$$

    Eroarea Standard și F-Statistic

    Ambele erori standard și F-statistic sunt măsuri ale gradului de potrivire.

    $$Std., În cazul în care, n este numărul de observații, q este numărul de coeficienți și MSR este regresia medie pătrată, calculată ca,

    $$MSR = \frac {\sum_ {i}^{n}\left (\hat{y_{i}-\bar{y}}\right)} {q-1} = \frac{SST – SSE} {q-1}$$

    cu cât statistica F este mai mare, cu atât este mai bună.ce este AIC și BIC?,
    criteriul de informare Akaike s – AIC (Akaike, 1974) și criteriul de informare Bayesian – Bic (Schwarz, 1978) sunt măsuri ale bunătății potrivirii modelului de regresie liniară și pot fi, de asemenea, utilizate pentru selectarea modelului.ambele criterii depind de valoarea maximizată a funcției de probabilitate L pentru modelul estimat.

    AIC este definit ca:

    AIC?=?(?2)?�?ln (l)?+?Unde, k este numărul de parametri de model și BIC este definit ca:

    BIC?=?(?2)?�?ln (l)?+?k?�?Ln (n)

    unde, n este dimensiunea eșantionului.,

    pentru compararea modelelor, este preferat modelul cu cel mai mic scor AIC și BIC.

    AIC(linearMod) #=> 419.1569BIC(linearMod) #=> BIC => 424.8929

    cum să știți care model de regresie este cel mai potrivit pentru date?,

    Cele mai frecvente valori să se uite la în timp ce selectarea modelului sunt:

    STATISTICA CRITERIU
    R-Squared mai Mare cu atât mai bine
    Adj R-Squared mai Mare cu atât mai bine
    F-Statistic mai Mare cu atât mai bine
    Std. Eroare mai aproape de zero mai bine
    t-statistică ar trebui să fie mai mare 1.96 pentru p-valoare să fie mai mică de 0.,td>mai mic cu atât mai bine
    Mallows cp ar Trebui să fie aproape la numărul de predictori în modelul
    MAPE (Mean absolute percentage error) mai mic cu atât mai bine
    MSE (Mean squared error) mai mic cu atât mai bine
    Min_Max Precizie => medie(min(real, a prezis)/max(real, a prezis)) mai Mare cu atât mai bine

    Estimarea Modele Liniare

    până acum am văzut cum de a construi un model de regresie liniară cu ajutorul întregului set de date., Dacă îl construiți în acest fel, nu există nicio modalitate de a spune cum va funcționa modelul cu date noi.deci, practica preferată este să împărțiți setul de date într-un eșantion de 80:20 (training:test), apoi să construiți modelul pe eșantionul de 80% și apoi să utilizați modelul astfel construit pentru a prezice variabila dependentă pe datele de testare.

    Procedând astfel, vom avea valorile modelului prezise pentru datele de 20% (test), precum și actualele (din setul de date original).prin calcularea măsurilor de precizie (cum ar fi precizia min_max) și ratele de eroare (MAPE sau MSE), puteți afla precizia de predicție a modelului.,

    acum, să vedem cum se face de fapt acest lucru.

    Pasul 1: Creați datele de instruire și testare

    Acest lucru se poate face folosind funcția sample(). Doar asigurați-vă că setați semințele folosind set.seed() astfel încât probele să poată fi recreate pentru utilizare ulterioară.

    Pasul 2: potriviți modelul pe datele de antrenament și anticipați dist pe datele de testare

    Pasul 3: Examinați măsurile de diagnosticare.

    Din rezumatul modelului, valoarea modelului p și valoarea predictorului S p sunt mai mici decât nivelul de semnificație.deci, aveți un model semnificativ statistic.,de asemenea, R-Sq și Adj R-Sq sunt comparative cu modelul original construit pe date complete.

    Pasul 4: calculați precizia predicției și ratele de eroare

    o corelație simplă între actualele și valorile prezise poate fi utilizată ca formă de măsurare a preciziei.

    o precizie de corelație mai mare implică faptul că valorile actuale și valorile prezise au o mișcare direcțională similară, adică atunci când valorile actuale cresc, valorile prezise cresc și invers.,

    Acum, vă permite să calculeze Min Max precizie și MAPE:

    $$MinMaxAccuracy = media \left( \frac{min\left(actuali, predicteds\right)}{max\left(actuali, predicteds \right)} \right)$$

    $$MeanAbsolutePercentageError \ (MAPE) = media\left( \frac{abs\left(predicteds?situa\right)}{realită}\right)$$

    Alternativ, puteți calcula toate eroare valori într-un du-te folosind regr.eval() funcția în DMwR pachet. Va trebui să install.packages('DMwR') pentru aceasta dacă îl utilizați pentru prima dată.

    ce este validarea încrucișată k – Fold și scopul acesteia?,

    Să presupunem că modelul prezice în mod satisfăcător pe împărțirea de 20% (date de testare), este suficient să credem că modelul dvs. va funcționa la fel de bine tot timpul?

    ce vreau să spun prin asta?este posibil ca puține dintre punctele de date să nu fie reprezentative pentru populația pe care a fost construit modelul.

    de exemplu, în setul de date cars, să presupunem că drumul concret a fost utilizat pentru testele rutiere pe datele de antrenament 80%, în timp ce drumul noroios a fost utilizat pentru restul de 20% date de testare.,

    dacă modelul a fost instruit într-o astfel de configurare, nu vă puteți aștepta ca modelul să prezică dist în setul de date de testare cu aceeași precizie. Pur și simplu pentru că nu a învățat relația dintre speed și dist într-un asemenea mediu.deci ,este important să testați riguros performanța modelului the S cât mai mult posibil.o modalitate de a face această testare riguroasă este de a verifica dacă ecuația modelului funcționează la fel de bine, atunci când este instruită și testată pe diferite bucăți distincte de date.,

    aceasta este exact ceea ce face validarea încrucișată k-Fold. Iată cum funcționează:

    1. Împărțiți-vă datele în porțiuni de eșantion aleatoriu aleatoriu, care se exclud reciproc. apoi construiți iterativ modele k, păstrând unul dintre subseturile k ca date de testare de fiecare dată.

    în fiecare iterație, construim modelul pe datele rămase (porțiunea k-1) și calculăm eroarea medie pătrată a predicțiilor din subsetul k ‘ TH.

    1. În cele din urmă, se calculează media acestor erori medii pătrate (pentru porțiunile de linie k).puteți utiliza această valoare pentru a compara diferite modele liniare.,

      De a face acest lucru, trebuie să verificați două lucruri de k ori previziuni:

      1. Dacă fiecare al k-fold model�s precizia de predicție este�t variază prea mult pentru o anumită probă, și
      2. în Cazul în care liniile de cele mai bune se potrivesc de la k-falduri nu�t variază prea mult în raport cu panta și nivel.cu alte cuvinte, acestea ar trebui să fie paralele și cât mai aproape unul de celălalt. Aceasta este ceea ce dezvăluie complotul de validare k-fold cross (de mai jos).

        în graficul de mai jos, sunt liniile punctate paralele?, Sunt simbolurile mici și mari nu sunt peste dispersate pentru o anumită culoare?

        Cross Validation Teren în R

        Unde să mă duc de aici?

        am acoperit conceptele de bază despre regresia liniară. Pe lângă acestea, trebuie să înțelegeți că regresia liniară se bazează pe anumite ipoteze de bază care trebuie luate în considerare mai ales atunci când lucrați cu mai multe Xs., Odată ce sunteți familiarizați cu acest lucru, modelele avansate de regresie vă vor arăta în jurul diferitelor cazuri speciale în care o altă formă de regresie ar fi mai potrivită.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *