regresia liniară este un model de regresie care utilizează o linie dreaptă pentru a descrie relația dintre variabile. Acesta găsește linia cea mai potrivită prin datele dvs. căutând valoarea coeficientului(coeficienților) de regresie care minimizează eroarea totală a modelului.,există două tipuri principale de regresie liniară:
- regresia liniară simplă utilizează o singură variabilă independentă
- regresia liniară multiplă utilizează două sau mai multe variabile independente
în acest ghid pas cu pas, vă vom parcurge regresia liniară în R folosind două seturi de date de probă.
descărcați seturile de date pentru a încerca singur.,
regresie Simplă set de date de regresie Multiplă set de date
Noțiuni de bază în R
Începe prin descărcarea R și RStudio. Apoi deschideți RStudio și faceți clic pe File > New File > R Script.pe măsură ce parcurgem fiecare pas, puteți copia și lipi codul din casetele de text direct în scriptul dvs. Pentru a rula codul, evidențiați liniile pe care doriți să le executați și faceți clic pe butonul Run din partea dreaptă sus a editorului de text (sau apăsați ctrl + enter pe tastatură).,p>
Pentru a instala pachetele de care aveți nevoie pentru a analiza, rula acest cod (trebuie doar să faceți acest lucru o dată):
Apoi, încărcați de pachete în R mediu de funcționare acest cod (care aveți nevoie pentru a face acest lucru de fiecare dată când reporniți R):
Pasul 1: Încărcați datele în R
Urmați acești patru pași pentru fiecare set de date:
- În RStudio, du-te la File > Import date > Din Text (de bază).,
- Alegeți fișierul de date pe care l-ați descărcat (income.date sau inimă.date) și apare o fereastră a setului de date de Import.
- în fereastra Data Frame, ar trebui să vedeți o coloană x (index) și coloane care prezintă datele pentru fiecare dintre variabile (venit și fericire sau ciclism, fumat și inimă.boala).
- Faceți clic pe butonul Import și fișierul ar trebui să apară în fila mediu din partea dreaptă sus a ecranului RStudio.
după ce ați încărcat datele, verificați dacă acestea au fost citite corect folosindsummary()
.,
regresie Simplă
Pentru că ambele variabile sunt cantitative, atunci când vom rula această funcție vom vedea o masă în consolă cu o numerică rezumat al datelor.,Acest lucru ne spune minimă, medie, medie, maximă și valorile variabilei independente (venituri) și variabila dependentă (fericirea):
regresie Multiplă
din Nou, deoarece variabilele sunt cantitative, rularea de cod produce un numerice rezumat al datelor pentru variabilele independente (fumat și ciclism) și variabila dependentă (boli de inima):
Pasul 2: Asigurați-vă că datele satisface ipotezele
putem să utilizați R pentru a verifica datele noastre îndeplinesc cele patru ipoteze principale pentru regresia liniară.,
regresie simplă
- independența observațiilor (aka fără autocorelație)
deoarece avem doar o variabilă independentă și o variabilă dependentă, nu este nevoie să testăm relații ascunse între variabile.dacă știți că aveți autocorelație în variabile (adică observații multiple ale aceluiași subiect de test), atunci nu continuați cu o regresie liniară simplă! Utilizați un model structurat, ca un model liniar cu efecte mixte.,
- normalitate
pentru a verifica dacă variabila dependentă urmează o distribuție normală, utilizați funcția hist()
.
observațiile sunt aproximativ în formă de clopot (mai multe observații în mijlocul de distribuție, mai puține pe la cozi), astfel încât să putem continua cu regresie liniară.
- liniaritate
relația dintre variabila independentă și cea dependentă trebuie să fie liniară., Putem testa acest lucru vizual cu un complot scatter pentru a vedea dacă distribuția punctelor de date ar putea fi descrisă cu o linie dreaptă.
relația arata aproximativ liniară, astfel încât să putem continua cu model liniar.
- Homoscedasticitatea (aka omogenitatea varianței)
aceasta înseamnă că eroarea de predicție nu se modifică semnificativ în intervalul de predicție al modelului. Putem testa această ipoteză mai târziu, după montarea modelului liniar.,
regresie Multiplă
- Independenței de observații (aka nu autocorelare)
Utilizare cor()
function pentru a testa relația dintre variabilele independente și asigurați-vă că acestea nu sunt prea puternic corelate.
atunci Când am rula acest cod, de ieșire este de 0.015. Corelația dintre ciclism și fumat este mică (0,015 este doar o corelație de 1,5%), astfel încât putem include ambii parametri în modelul nostru.,
- normalitate
utilizați funcțiahist()
pentru a testa dacă variabila dvs. dependentă urmează o distribuție normală.
distribuția de observații este aproximativ în formă de clopot, astfel încât să putem continua cu regresie liniară.putem verifica acest lucru folosind două scatterplots: unul pentru ciclism și boli de inimă și unul pentru fumat și boli de inimă.,
Deși relația dintre fumat și boala de inima este un pic mai puțin clar, încă apare liniar. Putem continua cu regresie liniară.
- Homoscedasticitate
vom verifica acest lucru după ce facem modelul.,
Pasul 3: efectuați analiza de regresie liniară
acum că ați stabilit că datele dvs. îndeplinesc ipotezele, puteți efectua o analiză de regresie liniară pentru a evalua relația dintre variabilele independente și dependente.
regresie simplă: venituri și fericire
Să vedem dacă există o relație liniară între venit și fericire în sondajul nostru pe 500 de persoane cu venituri cuprinse între 15k și 75k dolari, unde fericirea este măsurată pe o scară de la 1 la 10.,pentru a efectua o analiză simplă de regresie liniară și a verifica rezultatele, trebuie să rulați două linii de cod. Prima linie de cod face modelul liniar, iar cea de a doua linie afiseaza rezumatul model:
ieșire arată astfel:
Acest tabel de ieșire prima prezintă modelul ecuație, apoi rezumă modelul reziduurilor (vezi pasul 4).,
Coeficienții secțiune prezintă:
- estimarea (Estimarea) pentru parametrii modelului – valoarea y-intercept (în acest caz 0.204) și efectul estimat al venitului pe fericire (0.713).
- eroarea standard a valorilor estimate (Std. Eroare).
- statistica testului (valoarea t, în acest caz statistica t).
- valoarea p ( Pr(> | t/)), aka probabilitatea de a găsi statistica t dată dacă ipoteza nulă a unei relații nu ar fi adevărată.,ultimele trei linii sunt diagnosticarea modelului-cel mai important lucru de remarcat este valoarea p (aici este 2.2 e-16 sau aproape zero), ceea ce va indica dacă modelul se potrivește bine datelor.
De la aceste rezultate, putem spune că există o relație pozitivă semnificativă între veniturile și fericire (p-value < 0,001), cu o 0.713-unitate (+/- 0.01) creșterea fericire pentru fiecare unitate de creștere a veniturilor.,
regresie multiplă: ciclism, fumat și boli de inimă
Să vedem dacă există o relație liniară între ciclism la muncă, fumat și boli de inimă în sondajul nostru imaginar din 500 de orașe. Ratele de ciclism la locul de muncă variază între 1 și 75%, ratele de fumat între 0,5 și 30%, și ratele de boli de inima între 0,5% și 20,5%.pentru a testa relația, ne potrivim mai întâi un model liniar cu boli de inimă ca variabilă dependentă și ciclism și fumat ca variabile independente., Rula aceste două linii de cod:
ieșire arată astfel:
efectul estimat de ciclism pe boli de inima este -0.2, în timp ce efectul estimat de fumat este 0.178.aceasta înseamnă că pentru fiecare creștere de 1% a ciclismului la locul de muncă, există o scădere corelată de 0,2% a incidenței bolilor de inimă. Între timp, pentru fiecare creștere de 1% a fumatului, există o creștere de 0,178% a ratei bolilor de inimă.,erorile standard pentru acești coeficienți de regresie sunt foarte mici, iar statisticile t sunt foarte mari (-147 și, respectiv, 50,4). Valorile p reflectă aceste erori mici și statistici t mari. Pentru ambii parametri, există o probabilitate aproape zero ca acest efect să se datoreze întâmplării.amintiți-vă că aceste date sunt alcătuite pentru acest exemplu, astfel încât în viața reală aceste relații nu ar fi aproape atât de clare!,
Pasul 4: Verificați homoscedasticitatea
înainte de a continua vizualizarea datelor, trebuie să ne asigurăm că modelele noastre se potrivesc cu ipoteza homoscedasticității modelului liniar.
regresie Simplă
putem rula
plot(income.happiness.lm)
pentru a verifica dacă datele observate se întâlnește modelul nostru ipoteze:Rețineți că
par(mfrow())
comanda va împărți în Parcele fereastră în numărul de rânduri și coloane specificate în paranteze., Decipar(mfrow=c(2,2))
îl împarte în două rânduri și două coloane. Pentru a reveni la trasarea unui grafic în întreaga fereastră, setați din nou parametrii și înlocuiți (2,2) cu (1,1).acestea sunt parcelele reziduale produse de codul:
reziduurile sunt varianța inexplicabilă. Ele nu sunt exact la fel ca eroarea de model, dar sunt calculate din aceasta, așa că a vedea o părtinire în reziduuri ar indica, de asemenea, o părtinire a erorii.,cel mai important lucru pe care trebuie să-l căutați este că liniile roșii care reprezintă media reziduurilor sunt practic orizontale și centrate în jurul valorii de zero. Acest lucru înseamnă că nu există valori aberante sau prejudecăți în datele care ar face o regresie liniară invalidă.
În Q-Qplot Normal din dreapta sus, putem vedea că reziduurile reale din modelul nostru formează o linie aproape perfect unu-la-unu cu reziduurile teoretice dintr-un model perfect.pe baza acestor reziduuri, putem spune că modelul nostru îndeplinește ipoteza homoscedasticității.,
regresie Multiplă
din Nou, ar trebui să verificați că modelul nostru este de fapt o alegere bună pentru date, și că nu avem mare variație în modelul de eroare, prin rularea acestui cod:
ieșire arată astfel:
Ca și cu nostru simplu de regresie, reziduurile arată fără părtinire, deci putem spune că modelul nostru se potrivește ipoteza homoscedasticității.,
Pasul 5: vizualizați rezultatele cu un grafic
apoi, putem trasa datele și linia de regresie din modelul nostru de regresie liniară, astfel încât rezultatele să poată fi partajate.
regresie simplă
Urmați 4 pași pentru a vizualiza rezultatele regresiei liniare simple.,
- Complot puncte de date pe un grafic
- Adauga liniar de regresie la datele complotat
Adauga linia de regresie folosind
geom_smooth()
și tastândlm
ca metodă pentru crearea de linie. Aceasta va adăuga linia regresiei liniare, precum și eroarea standard a estimării (în acest caz +/- 0.,01), ca un gri deschis benzi din jur linia:- se Adaugă ecuația de regresie.
- Face graficul gata pentru publicare
putem adăuga unele stil parametri folosind
theme_bw()
și de a face etichete personalizate folosindlabs()
.,Aceasta produce finit graficul pe care le puteți include în actele tale:
regresie Multiplă
vizualizare pas pentru regresia multiplă este mai dificilă decât pentru regresie simplă, pentru că acum avem doi predictori. O opțiune este de a complota un avion, dar acestea sunt dificil de citit și nu sunt adesea publicate.vom încerca o altă metodă: trasarea relației dintre ciclism și boli de inimă la diferite niveluri de fumat., În acest exemplu, fumatul va fi tratat ca un factor cu trei niveluri, doar în scopul afișării relațiilor din datele noastre.
există 7 pași de urmat.
- de a Crea un nou dataframe cu informațiile necesare pentru a trasa modelul
foloseste functia
expand.grid()
pentru a crea o dataframe cu parametrii de aprovizionare., În cadrul acestei funcții vom:- creați o secvență de la cea mai mică la cea mai mare valoare a datelor dvs. de ciclism observate;
- alegeți valorile minime, medii și maxime ale fumatului, pentru a face 3 niveluri de fumat peste care să preziceți ratele bolilor de inimă.acest lucru nu va crea nimic nou în consola dvs., dar ar trebui să vedeți un nou cadru de date care apare în fila Mediu. Faceți clic pe ea pentru ao vizualiza.,
- preziceți valorile bolilor de inimă pe baza modelului dvs. liniar
în continuare vom salva valorile „y prezise” ca o nouă coloană în setul de date pe care tocmai l-am creat.
- în jurul nefumători numere cu două zecimale
Acest lucru va face ca legenda să fie mai ușor de citit mai târziu.,
- Schimba „fumat” variabilă într-un factor
Acest lucru ne permite să complot interacțiunea între ciclism și boli de inima la fiecare dintre cele trei niveluri de fumat, am ales-o.,
- Plot the original data
- Add the regression lines
- Make the graph ready for publication
Because this graph has two regression coefficients, the
stat_regline_equation()
function won’t work here., Dar dacă doriți să adăugați nostru model de regresie pentru a graficului, putem face ca acest lucru:Acesta este terminat graficul pe care le puteți include în actele tale!
Pasul 6: raportați rezultatele
În plus față de grafic, includeți o scurtă declarație care explică rezultatele modelului de regresie.