Documente Academic
Documente Profesional
Documente Cultură
Proiect Regresie Liniara
Proiect Regresie Liniara
REGRESIA LINIARÃ
Studenți
Mînzală Alina Maria
Lefter Alexandru Florin
Regresia liniară - definiție
Regresia reprezintă expresia matematică ce permite estimarea unei variabile în funcţie de cel
putin o altă variabilă. Regresia ajută în determinarea relaţiei şi este folosită în special în studii de
predicţie.
Metoda constă în determinarea unei funcţii liniare (este cea mai simplă formă de dependenţă)
f(x) = y = a + bx
care să aproximeze calculul valorilor y prin valorile x (y – este variabila dependentă, x – variabila
independentă sau predictor). Atât x cât şi y sunt variabile de tip continuu.
Metoda de calcul pentru parametrii dreptei de regresie constă în definirea unei erori şi minimizarea
acesteia.
Considerăm că avem două şiruri de date corespunzător variabilelor aleatoare de interes X şi
respectiv Y (caracterizate ca fiind distribuite normal sau gausian).
Pentru aceasta se foloseşte metoda celor mai mici pătrate, care constă în a minimiza suma
pătratelor erorilor dintre valorile yi (extrase din experiment) şi valorile f(xi) calculate cu ajutorul formulei
dreptei de regresie.
n n
(a b xi yi ) 2
i
2
i 1 i 1
Această sumă a pătratelor diferenţelor este pozitivă. Astfel, privind problema cu necunoscutele a
respectiv b, funcţia de gradul doi va admite un minim (fiind suma pătratelor, aceasta va fi intotdeauna
pozitivă).
Eroarea totală trebuie minimizată pentru a obţine o aproximare cât mai corectă a valorilor lui y in
funcţie de x.
Condiţia este ca derivata in raport cu fiecare variabilă în parte să fie zero. Obţinem astfel sistemul de
ecuaţii:
Pentru a putea determina parametrul b, vom înlocui valoarea lui a din prima ecuație în cea de-a
doua ecuație a sistemului definit mai sus:
Dacă avem mai multe cazuri cu x=0, atunci valoarea lui a va fi egală cu media tuturor
valorilor pentru care x este 0.
Trebuie avut în vedere că nu în orice situaţie este posibilă şi are sens această intersecţie
cu axa YY’. De exemplu, pentru predictorul X, reprezentând presiunea sistolică sau
temperatura corpului, valoarea 0 nu are interpretare în cazuri normale (studiem
pacienţii deci persoane în viaţă).
Dacă valoarea lui b este pozitivă, atunci dependenţa între cele două variabile aleatoare
este direct proporţională. Astfel, o creştere a variabilei x, va duce la o creştere a
variabilei y, respectiv o scădere a variabilei x, va conduce la o scădere a variabilei y.
Dacă valoarea parametrului b este negativă, atunci dependenţa între cele două variabile
aleatoare este invers proporţională. Variaţia într-un anume sens a variabilei x, va duce la
o variaţie în sens contrar a variabilei y.
Cazul în care nu există dependenţă între cele două variabile x, respectiv y, se obţine
pentru b=0. Oricât am modifica variabila x, atunci y va rămâne constant y = a.
x x 1
Noul y va fi :
y1 a b ( x 1) a b x b
Linia de regresie stabilește cea mai bună traiectorie pentru a minimiza eroare de
estimare;
După ce setul de variabile predictor a fost fixat, se va trece la adoptarea uneia dintre
metodele de introducere a acestora în ecuația de regresie:
Se consideră:
m date de antrenament de tipul (X, Y):
X ( X 1 , X 2 ,..., X n ) un vector de intrare
n atribute - variabile independente, explicative, predictive
Y – ieșirea
Ecuația de regresie:
f ( X ) b0 b1 X 1 b2 X 2 ... bn X n
b1 , b2 ,..., bn – coeficienții (parametrii) de regresie
b0 – interceptorul, constanta de regresie
Este utilizată adesea în studii exploratorii, atunci când există un număr mare de predictori
despre care nu se știe exact care este contribuția fiecăreia la corelația de ansamblu cu variabila
dependentă. Există trei variante ale acetui tip de analiză:
Selecția anterogradă.
Toate variabilele independente sunt corelate cu variabila dependentă după care variabila
care are corelația cea mai mare este introdusă prima în ecuație. Următoarea variabila introdusă
în ecuație este cea care are corelația cea mai mare, după ce a fost eliminat efectul variabilei
anterioare. Procesul continuă până ce nivelul contribuției variabilelor independente este prea
mic pentru a mai fi luat în considerare. O variabilă, odată introdusă în ecuație rămâne acolo.
Este o variantă a metodei anterioare. Diferența constă în faptul că la fiecare pas, fiecare
variabilă deja introdusă este retestata pentru a se evalua efectul lor că și cum ar fi fost
introduse ultima. Cu alte cuvinte, dacă o variabilă nou introdusă are o contribuție mai
consistentă asupra variabilei dependente va determina eliminarea unei variabile anterioare dar
care se dovedește mai puțin predictivă.
Selecția retrogradă.
Pasul inițial al acestei metode este acela de calculare a unei ecuații de regresie în care toate
variabilele predictor sunt incluse. Ulterior, pentru fiecare variabilă predictor este efectuat un
test de semnificație "F", pentru a se evalua contribuția fiecărui predictor la corelația de
ansamblu. Valorile testului F sunt comparate cu o valoare limită prestabilită, variabilele care nu
trec acest prag fiind eliminate din ecuație. Pe măsură ce o variabilă este eliminată, o nouă
ecuație este calculată și un nou test F este efectuat pentru variabilele rămase, urmat de
eventuală eliminare a unei alte variabile. Procesul continuă până când doar variabilele
semnificative rămân în ecuație.
CONCLUZIE !
Este evident că metoda "secvențială" și cea "pas cu pas" sunt superioare metodei
"standard". Între primele două diferență constă în faptul că, în cazul metodei secvențiale,
decizia de selecționare a variabilelor introduse în ecuație aparține cercetătorului în timp ce în
cazul metodei pas cu pas, programul este cel care face în mod automat selecția, în funcție de
parametri fixați de analist.
Set de probleme - regresie liniară
Problema 1
Se consideră următorul exemplu în care sunt înregistrate valorile temperaturii pe primele 10 luni ale
unei lunii de vară. Se cere să se determine formula ce definește dreapta de regresie liniară.
Ziua Temperatura [ C ]
1 20.5
2 22.6
3 23
4 24.8
5 26.2
6 27.4
7 27.9
8 29
9 29.8
10 30
Primul pas este reprezentat de minimizarea sumei prin determinarea punctelor de extremum prin
studiera minimului functiei S(a,b) care are derivatele partiale de ordinul al doilea continue.
S S
n 2
(a x
i 1
i b y ( x i ))
b
0;
a
0 (1)
n 2 n n
i
a x b x i y ( xi ) x i
i 1 i 1 i 1
n n
(2)
a x n b y ( x )
i 1
i i 1
i
Notăm:
n
S x xi
i 1
n
S y y ( xi )
i 1 (3)
n
S x 2 xi2
i 1
n
S xy y ( xi ) xi
i 1
Cu notațiile de mai sus, sistemul devine:
a S x 2 b S x S xy
(4)
a S x n b S y
n S xy S x S y
a
n S x2 S x
2
(5)
b S x 2 S y S x S xy
n S x 2 S x2
n=10;
S x 1 2 3 4 5 6 7 8 9 10 55
S y 20.5 22.6 23 24.8 26.2 27.4 27.9 29 29.8 30 261.2
S x 2 12 2 2 32 4 2 5 2 6 2 7 2 8 2 9 2 10 2 389 (6)
S xy 1 20.5 2 22.6 3 23 4 24.8 5 26.2 6 27.4 7 27.9 8 29 9 29.8 10 30
20.5 45.2 69 99.2 131 164.4 195.3 232 268.2 300 1524.8
Înlocuind datele obținute mai sus în relația (1), vom obține ecuația dreptei de regresie liniară:
f ( x) y a x b 1.019 x 20.5119
Pentru verificarea corectitudinii, am creat în Matlab o rutină care calculează atat parametrii dreptei de
regresie liniară, cat și eroarea acesteia:
După cum se poate observa din apelarea rutei linear_regression din matlab, valoarea interceptului(a)
precum și valoarea pantei de regresie(b) este aceeași și cea calculată analitic.
Prin determinarea ecuatiei dreptei de regresie, se pot efectua predictii pe baza setului de date anterior.
Se presupune ca dorim sa aflam valoarea medie a temperaturii celei de-a 14 a zi a lunii studiate.
Consideram x = 14
Avem: y(14) 1.019 14 20.5119 34.7779 [ C ] pentru cea de-a 14 a zi a lunii de vara studiate.
Problema 2. Regresie liniară multiplă
Se consideră următorul tabel ce conține date legate de umiditate, precipitații și viteză vântului pentru
ultimele 6 lunii ale anului 2017. Se cere să se determine planul de regresie.
În matlab, s-a construit o rutină care conține ca intrări parametrii de umiditate, viteză vântului și
precipitațiile iar la ieșire vor rezulta coeficienții planului de regresie liniară.
y a0 a1 x1 a2 x2 ... an xn e
Cod Matlab:
function f = f()
%inaltime si greutate
x = [1.67;1.8;1.76;1.68;1.78;1.76;1.67;1.82;2;1.67;1.56;1.78;1.82;1.6;1.76];
y = [70;82;75;69;82;78;65;95;113;67;61;81;90;62;78];
mat = [x y];
date_ord = sortrows(mat,1)
x_ord=date_ord(1:15,1)
y_ord=date_ord(1:15,2)
figure
plot(x_ord,y_ord,'-*');
title('Greutate vs inaltime - date initiale')
xlabel('Inaltime')
ylabel('Greutate')
%coeficient de corelatie
r=corrcoef(x_ord,y_ord)
%r=0.9668
f = polytool(x_ord,y_ord,1);
%y = -141.35 +125.84x
End