Sunteți pe pagina 1din 44

Regresii liniare

1. oiuni teoretice introductive


Se tie ca teoretic, fora de rezisten ce o ntampin un obiect la
micarea prin aer este:

Se pune problema gasirii unei curbe ce aproximeaz ct mai bine


datele obinute experimental (norul de puncte).
Metoda celor mai mici ptrate.
Fie curba y=f(x) = ax+b care aproximeaz norul de puncte. Se formeaz suma:

S(a,b) = [ f ( x i ) y i ]2
i =1

reprezentnd suma ptratelor distanelor de la punctele experimentale la


punctele curbei y = f(x).
Dorim sa minimizm pe S(a,b)
Calculm derivatele pariale ale lui S
n raport cu a i b i determinm
extremul funciei S(a, b) din sistemul
de ecuaii:
S(a,b)
a = 0

S(a,b) = 0
b

Verificm dac valorile determinate (a, b) reprezint ntr-adevr un minim


pentru funcia S. Se verific inegalitile:
> 0;
r >0.
Cu a i b determinate trasm drepta de ecuaie y=ax+b care va trece prin
interiorul norului de puncte astfel nct distana de la aceste puncte la drept
s fie minim.
n

S = (ax i + b y i ) 2 .
i =1

n
n
n
S n
2
= 2 x i (ax i + b y i ) = 2(a x i + b x i x i y i )
a i =1
i =1
i =1
i =1
n
n
S n
= 2(ax i + b y i ) = 2(a x i + nb y i )
b i =1
i =1
i =1

Obinem

a x i2
i =1
n

i =1

i =1
n

+ b xi = xi y i

a x i + nb = y i
i =1

i =1

unde necunoscutele sunt coeficienii a i b. Avem


n

i =1

i =1
2

n xi y i xi y i

a = i =1

n xi2
i =1

,b=

n
xi
i =1

n
2
xi xi y i + xi y i
i =1 i =1
i =1 i =1
2
n
n

n xi2 x i
i =1
i =1

Pentru exemplul de mai sus cutm o curb de forma:

Observaie: Rezultatele, cel putin pentru viteze mici, nu sunt corecte


deoarece avem valori negative ale forei de rezisten.
8

Pentru a verifica ct de bun este aproximarea noastr introducem


mrimile:

unde
este media valorilor.
Se calculeaz eroarea standard a estimaiei

unde notaia y/x semnific faptul c eroarea se refer la o valoare


preconizat a lui y corespunznd unei valori particulare a lui x.
Numitorul n-2 semnific faptul ca s-au pierdut dou grade de libertate
pentru calculul valorii lui Sr (prin determinarea coeficienilor a0 i a1).
9

Reamintim c abaterea medie ptratic dat de

msoar dispersia datelor.


Putem face o analogie ntre abaterea medie ptratic i eroarea standard a
estimaiei:

10

Parametrul care ne indic ct de bun este aproximarea noastr este


coeficientul de determinare

11

unde

este coeficientul de corelaie. Cu ct coeficientul de determinare este mai


aproape de 1, aproximarea noastr este mai bun.
Pentru exemplul de mai sus avem
>
i atunci regresia liniar aproximeaz corect datele.

12

Putem spune c 88% din incertitudinile initiale sunt sunt explicate de


acest model liniar.
Totui nu ne putem baza doar pe calculul coeficientului de determinare,
curba obinut trebuie verificat i vizual. n exmplele de mai jos, toate
datele sunt aproximate cu aceeai dreapt y =3 + 0.5x i au acelai
coeficient de determinare, r2 = 0.674.
13

14

2.Liniarizarea expresiilor neliniare


(Steven C. Chapra, Applied $umerical Methods with MATLAB for Engineers and Scientists, 3rd ed, ISB$-13:978-0-07-340110-2 )

Exist cazuri n care aproximarea datelor se face cu ajutorul unor curbe


neliniare. Pentru a obine curba de regresie se fac transformri de
liniarizare a acestor curbe. Unele dintre cele mai folosite modele
neliniare sunt:
- Modelul exponenial
radioactiv)

(creterea

15

populaiilor,

dezintegrarea

- Modelul de tip putere (model general, utilizat cnd nu se tie forma


modelului)

- Modelul de saturation growth rate (model utilizat n creterea


populaiilor cnd exist limitri ale creterii)

16

17

Exemplu: Se tie ca teoretic, fora de rezisten ce o ntampin un obiect


la micarea prin aer este:

18

Interpolm folosind o funcie de tip putere:

Unde mediile sunt (vezi tabelul de mai jos)

Atunci

19

Obinem

i deci

20

21

Regresia liniar poate fi calculat cu

22

3.Generalizarea metodei celor mai mici ptrate.Regresie neliniar.


Regresie polinomial

23

Regresia liniar descris anterior se poate generaliza n cazul


polinoamelor. De exemplu, pentru un polinom de gradul doi avem:

Trebuie s minimizm:

adic

24

Relaiile de mai sus ne conduc la rezolvarea sistemului

din aflm coeficienii


Se poate face uor o generalizare pentru:

Pentru un polinom de grad m (m+1 coeficieni) eroarea standard este:

25

iar coeficientul de determinare este dat de:

unde
Exemplu: Gasii polinomul de ordinul doi ce aproximeaz datele din
tabelul de mai jos:

26

Avem:

Formm sistemul:

27

Rezolvm folosind Matlab

i obinem polinomul
pentru care

i
Se obine un coeficient de determinare foarte bun. Buna aproximare este
confirmat vizual i de figura urmtoare:
28

29

n Matlab regresia polinomial poate fi calculat folosind funcia


polyfit
p = polyfit(x,y,n)

unde
Exemplu
x = (0: 0.1: 2.5)';
y = erf(x);
p = polyfit(x,y,6)
p =
0.0084

-0.0983

0.4217

-0.7435

30

0.1471

1.1064

0.0004

3. Regresie liniar multidimensional


n mod natural se poate face o generalizare a regresiei linare n mai multe
dimensiuni. De exemplu, n R2 vom obine un plan de regresie:

31

Trebuie s minimizm:

ceea conduce la rezolvarea sistemului

32

Exemplu: Gsii planul de regresie pentru:

Avem de rezolvat
33

Regresia liniar multidimensional se poate generaliza astfel:

34

n Matlab regresia liniar multidimensional poate fi calculat folosind


funcia regress
b = regress(y,X)
[b,bint] = regress(y,X)
[b,bint,r] = regress(y,X)
[b,bint,r,rint] = regress(y,X)
Exemplu
load carsmall
x1 = Weight;
x2 = Horsepower; % Contains NaN data
y = MPG;%mileage numar de mile parcurse

35

Compute regression coefficients for a linear model with an


interaction term:
X = [ones(size(x1)) x1 x2 x1.*x2];
b = regress(y,X) % Removes NaN data
b =
60.7104
-0.0102
-0.1882
0.0000
Plot the data and the model:
scatter3(x1,x2,y,'filled')
hold on
x1fit = min(x1):100:max(x1);
x2fit = min(x2):10:max(x2);
[X1FIT,X2FIT] = meshgrid(x1fit,x2fit);
YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT + b(4)*X1FIT.*X2FIT;
mesh(X1FIT,X2FIT,YFIT)

36

xlabel('Weight')
ylabel('Horsepower')
zlabel('MPG')
view(50,10)

37

Regresia liniar multipl poate fi folosit pentru determinarea unor relaii


de tipul:

4. Regresie neliniar
Exist cazuri n care funcia cu care vrem s aproximm datele nu se
poate liniariza (de exemplu):

38

n acest caz se poate face o liniarizare folosind dezvoltri n serie Taylor


sau se poate face minimizarea direct, rezolvnd un sistem neliniar.
Funcia ce trebuie minimizat este

De exemplu, n Matlab exist funcia fminsearch (Optimization


Toolbox) ce minimizeaz o funcie.

39

Exemplu:Fie funcia
,

40

Din figura de mai jos minimul se afla n vecintatea punctului

41

Exemplu: Considerm din nou exemplul cu micarea unui obiect n aer:

42

Scriem o funcie general ce calculeaz suma ptratelor

Minimizm

i obinem

43

Reamintim c prin liniarizare am obinut

44