CURS 10 - Babeș-Bolyai Universityvasile.chis/cursuri/info/c10ppt.pdfCURS 10 Regresia liniară -...

20
CURS 10 Regresia liniară - aproximarea unei functii tabelate cu o functie analitica de gradul 1, prin metoda celor mai mici patrate y = -78.545x + 1313.4 R² = 0.9823 1220 1230 1240 1250 1260 1270 1280 1290 1300 1310 0 0.2 0.4 0.6 0.8 1 1.2 Y X

Transcript of CURS 10 - Babeș-Bolyai Universityvasile.chis/cursuri/info/c10ppt.pdfCURS 10 Regresia liniară -...

  • CURS 10

    Regresia liniară - aproximarea unei functii tabelate cu o functie analitica de gradul 1, prin metoda

    celor mai mici patrate

    1220

    1230

    1240

    1250

    1260

    1270

    1280

    1290

    1300

    1310

    0 0.2 0.4 0.6 0.8 1 1.2

    Y

    X

    1220

    1230

    1240

    1250

    1260

    1270

    1280

    1290

    1300

    1310

    0 0.2 0.4 0.6 0.8 1 1.2

    Y

    X

    y = -78.545x + 1313.4 R² = 0.9823

    1220

    1230

    1240

    1250

    1260

    1270

    1280

    1290

    1300

    1310

    0 0.2 0.4 0.6 0.8 1 1.2

    Y

    X

  • Fie o funcţie: f:[a,b], [a,b] pentru care este cunoscut un număr discret de valori yi într-un număr de puncte de reţea xi[a,b]:

    f(xi)=yi, i 1,n

    In general, valorile yi sunt afectate de erori de măsură sau de erori de calcul

    1220

    1230

    1240

    1250

    1260

    1270

    1280

    1290

    1300

    1310

    0 0.2 0.4 0.6 0.8 1 1.2

    Y

    X

    Aproximarea acestei funcţii tabelate f cu o funcţie "model":

    xi yi 0.10 1305.00 0.20 1295.00 0.30 1293.00 0.40 1283.00 0.50 1270.00 0.60 1267.00 0.70 1260.00 0.80 1256.00 0.90 1243.00 1.00 1230.00

    αj - parametri ai funcţiei model

    F(xi;αj) - permite cunoasterea valorii in orice punct x xi - poate fi derivata, integrata sau folosita in alte calcule

    Ce vrem?

    Cum alegem functia model?

    F trebuie să fie determinată de fenomenul fizic modelat F se va alege dintr-o clasă convenabilă de funcţii care să ofere simplitate şi eficienţă în prelucrări ulterioare

    De ce?

  • αj => F

    Cum determinam parametrii funcţiei model? Se defineşte o funcţională care să reflecte gradul în care funcţia F aproximează funcţia tabelată f. Distanţa dintre funcţia tabelată şi funcţia model:

    Cazuri:

    Interpolare: graficul functiei F trece prin toate punctele (xi,yi)

    Fitare: graficul functiei F nu trece neaparat prin punctele (xi,yi)

  • Fitare - se minimizează suma abaterilor pătratice ale funcţiei model faţă de funcţia tabelată:

    n2

    i i ji 1

    S y F(x ; )

    = regresie (ajustare) prin metoda celor mai mici pătrate

    Condiţiile de obţinere a parametrilor αj:

    j

    S0; j 1,k

  • Regresia liniară

    Funcţionala S:

    n

    2

    i ii 1

    S y (ax b)

    Funcţia model = funcţie de gradul 1: F=ax+b F=F(xi, αj) j=2

    Condiţiile de obţinere a parametrilor αj (a şi b):

    S0

    a

    S0

    b

    n

    i i ii 1

    n

    i ii 1

    2 y (ax b) ( x ) 0

    2 1 y (ax b) 0

    n n n2

    i i i ii 1 i 1 i 1

    n n n

    i ii 1 i 1 i 1

    2 x y 2 ax 2 bx 0

    2 y 2 ax 2 b 0

    Notăm: n n n n

    2

    i i xy i xx i x i yi 1 i 1 i 1 i 1

    x y S x S x S y S

    Tinem cont că: n

    i 1

    b nb

  • xy xx x

    y x

    S aS bS 0

    S aS nb 0

    x y xy

    2

    x xx

    S S nSa(S ) nS

    y x1

    b S aSn

    Sistemul de ecuaţii devine:

    Înmulţind prima ecuaţie cu n şi a doua cu (-Sx) şi adunându-le se obţine:

    a - panta dreptei de regresie a=tg(α) α - unghiul făcut de graficul funcţiei F cu axa absciselor b - valoarea la care graficul funcţiei intersectează axa ordonatelor (interceptor)

    Valorile estimate de dreapta de regresie (yicalc) sunt interpretate ca medii ale valorilor y asociate

    cu o anumită valoare xi.

    Semnificatia parametrilor de fit:

    Ub=E-rI F=ax+b

    E=b r=|tg()|

  • Cum se procedează atunci când funcţia model nu este o funcţie de gradul 1?

    Un set de măsurători de radioactivitate

    Exemplu

    t(ore) Λ(mCi) 2.5 280 3.0 218 3.5 177 4.0 140 4.5 100 5.0 85 5.5 67 6.0 48 6.5 42 7.0 30 7.5 20 8.0 17

    t

    0(t) e

    1Ci = 3.7·1010 Bq

  • t(ore) Λ(mCi) ln(Λ))

    2.5 280 5.63

    3.0 218 5.38

    3.5 177 5.18

    4.0 140 4.94

    4.5 100 4.61

    5.0 85 4.44

    5.5 67 4.20

    6.0 48 3.87

    6.5 42 3.74

    7.0 30 3.40

    7.5 20 3.00

    8.0 17 2.83

    0ln( (t)) ln( ) t

    ln(Λ0(t))=y‘ y'=a-bt unde a=ln(Λ0) şi b=λ

    - ln(0) Λ0=exp(6.9565)=1049.95

  • Coeficientul de corelare R2

    - dă calitatea unei drepte de regresie

    R2 = 1 => funcţia model explică întreaga variabilitate a lui y R2 = 0 => nu există nici o relaţie liniară între variabila răspuns şi variabila x (între y şi x) R2 = 0.5 => aproximativ 50% din variaţia variabilei răspuns poate fi explicată de către variabila independentă

  • //regresia liniara

    #include

    #include

    #include

    #include

    #include

    int main()

    {

    FILE *f;

    int n,i,xpmin,xpmax,ypmin,ypmax,xr,yr;

    float x,y,xd[20],yd[20],xdmin,xdmax,ydmin,ydmax;

    float Sx,Sy,Sxx,Sxy,a,b;

    float ymed, s1,s2,R2;

    float ax,bx,ay,by;

    int xp[50],yp[50];

    char nf[20],stra[15], strb[15];

    printf("Numele fisierului de intrare: ");

    gets(nf); f=fopen(nf,"r");

    if(!f)

    {

    printf("\nFisier inexistent!");

    getch();

    exit(1);

    }

    i=0;

    Sx=Sy=Sxx=Sxy=0;

    while(!feof(f))

    {

    if(fscanf(f,"%f%f",&x,&y)==2)

    {

    xd[i]=x; yd[i]=y; i++; Sx+=x; Sy+=y; Sxx+=x*x; Sxy+=x*y;

    }

    }

    n=i; a=(n*Sxy-Sx*Sy)/(n*Sxx-Sx*Sx); b=(Sy-a*Sx)/n;

    fclose(f);

  • f=fopen(nf,"r");

    s1=s2=0;

    ymed=Sy/n;

    while(!feof(f))

    {

    if(fscanf(f,"%f %f",&x,&y)==2)

    {

    s1+=(a*x+b-y)*(a*x+b-y);

    s2+=(ymed-y)*(ymed-y);

    }

    }

    R2=1-s1/s2;

    printf("===================================================\n");

    printf("n= %d",n);

    for(i=0;i

  • //Dimensiunile ferestrei de afisare si coeficientii de scalare

    xpmin=160;xpmax=440;

    ypmin=85;ypmax=365;

    ax=(xpmax-xpmin)/(xdmax-xdmin);

    bx=xpmin-ax*xdmin;

    ay=(ypmax-ypmin)/(ydmin-ydmax);

    by=ypmax-ay*ydmin;

    for(i=0;i

  • outtextxy(150,10,"Regresia liniara");

    settextstyle(6,HORIZ_DIR,1);

    outtextxy(150,40,"Exemplu: potentiometrul compensator");

    settextstyle(4,VERT_DIR,1);

    outtextxy(120,270,"U (V)");

    settextstyle(8,HORIZ_DIR,1);

    outtextxy(460,200,"Functia de fit:");

    outtextxy(460,230,"f(x) = ");

    gcvt(a,5,stra);

    gcvt(b,7,strb);

    outtextxy(530,230,stra);

    outtextxy(610,230,"x +");

    outtextxy(650,230,strb);

    gcvt(R2,5,stra);

    outtextxy(460,260,"R^2 = ");

    outtextxy(530,260,stra);

    outtextxy(460,320,"E = ");

    outtextxy(500,320,strb);

    outtextxy(570,320," V");

    outtextxy(460,350,"r = ");

    gcvt(-a,5,stra);

    outtextxy(500,350,stra);

    outtextxy(580,350," ohmi");

    setcolor(RED);

    rectangle(455,310,650,376);

    while(!_kbhit());

    closegraph();

    return 0;

    }

  • Deviaţia standard (abaterea standard)

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    1 2 3 4 5 6 7 8 9 10 0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    1 2 3 4 5 6 7 8 9 10

    20 valori, media = 5 20 valori, media = 5

    = distanţa medie dintre media valorilor unui set de date şi datele setului respectiv - măsoară împrăştierea datelor dintr-un set (dispersia faţă de medie)

  • 1

    1

    2

    n

    XX

    n

    i

    i

    Numitorul: - n-1 dacă datele Xi reprezintă un eşantion - n dacă datele Xi reprezintă întreaga populaţie (pentru n-mare, n-1n)

    Semnificatie

    Formula

  • 2

    11

    2

    _

    n

    i

    i

    n

    i

    i xxn

    nSaer

    2_

    xxx SnS

    nSaer

    2

    11

    2

    1

    2

    _

    n

    i

    i

    n

    i

    i

    n

    i

    i

    xxn

    x

    Sber2

    _

    xxx

    xx

    SnS

    SSber

    2

    1

    2

    n

    ybxa

    S

    n

    i

    ii

    unde:

    Eroarea estimarii parametrilor de fit

    Sunt necesare minim trei puncte pentru aputea folosi regresia liniara!

  • Exemplu

    Presupunem că s-au obţinut mai multe valori pentru E şi pentru r, din măsurători repetate. Rezultatul final se raportează ca şi valoarea medie +/- deviaţia standard.

  • Analiza reziduurilor

    y = 1049.9e-0.512x R² = 0.9956

    y = -44.531x + 335.79 R² = 0.8931

    y = 9.7762x2 - 147.18x + 576.12 R² = 0.9936

    -50

    0

    50

    100

    150

    200

    250

    300

    350

    0 2 4 6 8 10 -40

    -20

    0

    20

    40

    60

    80

    0 2 4 6 8 10 12

    Fit liniar

    -40

    -20

    0

    20

    40

    60

    80

    0 2 4 6 8 10 12

    Fit parabolic

    -40

    -30

    -20

    -10

    0

    10

    20

    30

    40

    50

    60

    0 2 4 6 8 10 12

    Fit exponential

  • Distribuţia normală (Gaussiană)

    Funcţia densităţii de probabilitate (densitatea unei variabile aleatoare continue) este o funcţie care descrie probabilitatea relativă pentru ca respectiva variabilă sa aibă o anumită valoare. Probabilitatea ca variabila aleatoare să aibă valori într-un anumit interval este dată de integrala densităţii variabilei respective pe intervalul dat. Funcţia densităţii de probabilitate este nenulă pe întreg domeniul său de definiţie, iar integrala sa pe întreg spaţiul este egală cu unu.

    Funcţia densităţii de probabilitate pentru distribuţia Gaussiană cu media şi deviaţia standard

    2

    2

    2

    )(exp

    2

    1),;(

    xx

    Distribuţia Gaussiană standard (=0 şi =1)

    2exp

    2

    1)(

    2xx