Lineární regrese

Z testwiki
Skočit na navigaci Skočit na vyhledávání

Šablona:Neověřeno

Ilustrace lineární regrese

Lineární regrese je matematická metoda používaná pro proložení souboru bodů v grafu přímkou. O bodech reprezentujících měřená data se předpokládá, že jejich x-ové souřadnice jsou přesné, zatímco ypsilonové souřadnice mohou být zatíženy náhodnou chybou, přičemž předpokládáme, že závislost y na x lze graficky vyjádřit přímkou. Pokud měřené body proložíme přímkou, tak při odečítání z grafu bude mezi ypsilonovou hodnotou měřeného bodu a ypsilonovou hodnotou ležící na přímce odchylka. Podstatou lineární regrese je nalezení takové přímky, aby součet druhých mocnin těchto odchylek byl co nejmenší. Lineární regresi lze zobecnit i pro prokládání jinou funkcí než přímkou. Termín lineární regrese proto může označovat dvě částečně odlišné věci:

  • Lineární regrese představuje aproximaci daných hodnot přímkou metodou nejmenších čtverců. Pokud tuto přímku vyjádříme rovnicí y=b1+b2x, jedná se o nalezení optimálních hodnot koeficientů b1 a b2.
  • V obecnějším případě může lineární regrese znamenat aproximaci daných hodnot [xi,yi] takovou funkcí y=f(x,b1,,bk), kterou lze vyjádřit jako lineární kombinaci funkcí f1 až fk: y=b1f1(x)++bkfk(x). Koeficienty b1,,bk se opět určují metodou nejmenších čtverců.

Homoskedasticita (homogenita ve varianci) dat je běžným jevem. Avšak její předpoklad může vést k přeceněníŠablona:Fakt/dne korelačního koeficientu. V jistých případech je tedy nutné uvážit heteroskedasticitu a použít váženou regresi.

Aproximace přímkou

Uvažujme funkční závislost: f(x)=ax+b

Součet čtverců pak bude vypadat takto:

S(a,b)=i=1n[f(xi)yi]2=i=1n(axi+byi)2

kde [xi,yi] jsou souřadnice aproximovaných bodů.

Abychom našli minimum součtu (našli koeficienty a, b tak, aby nalezená závislost vhodně aproximovala daná data), položíme obě parciální derivace součtu čtverců rovny nule:

0=Sa=2i=1n(axi+byi)xi
0=Sb=2i=1n(axi+byi)

Úpravami obdržíme soustavu:

ai=1nxi2+bi=1nxi=i=1nxiyi
ai=1nxi+bn=i=1nyi

Lze ukázat, že matice této soustavy je regulární pro všechna n2, a má tedy právě jedno řešení. Obecně lze také ukázat, že v tomto bodě má součet čtverců minimum.

Jejím řešením pro konkrétní hodnoty xi a yi dostaneme konečně hledané hodnoty parametrů a a b.

a=nxiyixiyinxi2(xi)2
b=xi2yixixiyinxi2(xi)2

Podobný postup lze aplikovat na jakýkoliv druh závislosti i více proměnných.

Pokud je každá hodnota zatížena jinou chybou σi (např. měříme několika různými přístroji), je výhodné zahrnout i toto do aproximace. Označíme-li x=i=1nxiσi2, potom dostáváme

a=1xyxy1x2x2
b=yx2xyx1x2x2

Přímka procházející počátkem

Pokud je požadováno, aby přímka procházela počátkem, hledá se aproximace y=ax. Pro konstantu a lze odvodit následující vztah:

a=xiyixi2

Máme-li závislost y=ax a hodnoty jsou zatíženy chybami σi, pak pro odhad parametru a platí a=xyx2 (je užito označení x=i=1nxσi2 a σi značí chybu (směrodatnou odchylku) i-tého měření).

Dále pro rozptyl parametru a platí V[a]=1x2.

Výpočet na počítači

Matlab umožňuje použít funkci P = POLYFIT(X, Y, 1), kde poslední parametr 1 udává, že hledáme koeficienty polynomu prvního řádu. [1] [2]Šablona:Nedostupný zdroj

V Excelu a Calcu (LibreOffice a OpenOffice.org) lze koeficient a zjistit funkcí SLOPE(Y; X) [3] [4] a konstantu b funkcí INTERCEPT(Y; X) [5] [6]. Případně lze oba koeficienty zjistit maticově zadanou funkcí {=LINEST(Y;X)}. [7] [8] V českém Excelu se tato funkce nazývá LINREGRESE. [9]

Obecná lineární regrese

Ilustrace hledání optimální lineární kombinace. Zelená plocha colX představuje prostor, ve kterém se nachází všechny možné lineární kombinace f(X,β)=β1X12X2. Vektor y, představuje vektor hodnot, ke kterým se aproximace βX snaží přiblížit s nejmenší možnou chybou ε=y−βX, respektive druhou mocninou této chyby. Další popis viz kapitola Odvození: Kolmé vektory v článku Metoda nejmenších čtverců.

V obecnějším případě je možné danými hodnotami [xi;yi], i=1,,n proložit funkci y=f(x,b1,,bk) sestavenou jako lineární kombinaci k funkcí y=b1f1(x)++bkfk(x), kde f1(x),,fk(x) jsou libovolné (zpravidla lineárně nezávislé) funkce. Regrese se nazývá lineární, neboť funkční předpis y=f(x,b1,,bk) je lineární v proměnných b1,,bk, tedy v koeficientech, které podrobujeme regresi. Jinými slovy, úlohu lze formulovat algebraicky jako (lineární) metoda nejmenších čtverců.

Lineární regresí je tedy i výše popsané proložení bodů přímkou (f1(x)=x, f2(x)=1, f(x)=b1x+b2), ale také parabolou (f1(x)=x2, f2(x)=x, f3(x)=1, f(x)=b1x2+b2x+b3) nebo obecným polynomem. Poznamenejme, že s proložením množiny bodů parabolou, resp. obecným polynomem se můžeme v literatuře setkat pod pojmem kvadratická, resp. polynomická (či polynomiální) regrese.[1]

Koeficienty b1,,bk jsou vypočteny metodou nejmenších čtverců, tedy tak, aby součet druhých mocnin odchylek modelu od daných dat, tj.

S=i=1n(yif(xi,b1,,bk))2=i=1n(b1f1(xi)++bkfk(xi)yi)2,

byl minimální.

1. způsob výpočtu: parciální derivace

Pro koeficienty, které minimalizují výše uvedené kritérium S, musí platit, že všechny první parciální derivace kritéria podle těchto koeficientů musí být rovny nule.

Sb1==Sbk=0

Dalšími úpravami se lze dostat k soustavě lineárních rovnic:

a11b1++a1kbk=a1=ak1b1++akkbk=ak

Kde jednotlivé prvky ajk a aj znamenají:

ajk=i=1nfj(xi)fk(xi)
aj=i=1nfj(xi)yi

Výše uvedenou soustavu rovnic lze řešit některou z metod uvedených v článku Soustava lineárních rovnic.

2. způsob výpočtu: přeurčená soustava rovnic

Jiným způsobem, jak vypočítat hledané koeficienty, je sestavení přeurčené soustavy rovnic a její vyřešení, opět metodou nejmenších čtverců, ale poněkud odlišným postupem. Přeurčená soustava rovnic může vypadat následovně:

𝐀𝐱=𝐛
𝐀=[f1(x1)fk(x1)f1(xn)fk(xn)],𝐱=[b1bk],𝐛=[y1yn],kn.

Hledané koeficienty, umístěné ve vektoru 𝐱, lze, za předpokladu lineární nezávislosti sloupců matice 𝐀, vyjádřit vztahem:

𝐱=(𝐀T𝐀)1𝐀T𝐛

Výpočet na počítači

Matlab umožňuje soustavu rovnic Ax=b řešit velmi snadno pomocí operátoru \ (zpětné lomítko), tedy x = A \ b. Ekvivalentní je funkce MLDIVIDE, tedy x = mldivide(A, b). [10]

V Excelu a Calcu (LibreOffice a OpenOffice.org) lze výše sestavenou přeurčenou soustavu rovnic řešit použitím maticové funkce {=LINEST(known_y's; known_x's; const)} [11] [12] (v českém Excelu LINREGRESE(pole_y; pole_x; b) [13]), kde první parametr known_y's (česky pole_y) je svislá oblast buněk obsahující složky vektoru b a druhý parametr known_x's (česky pole_x) je oblast obsahující prvky matice A. Výsledný vektor x se nachází ve vodorovné oblasti, přičemž jeho složky jsou umístěny v buňkách v opačném pořadí, tedy bk je v buňce nejvíce vlevo a b1 je nejvíce vpravo. Třetí parametr const (česky b) musí být v tomto příkladu roven nule, správné použití tedy je: {=LINEST(b; A; 0)}.

Ovšem nejjednodušším způsobem odhadu parametrů metodou nejmenších čtverců je použití ekonometrického softwaru jako např. STATA, Gretl, Eviews nebo R, kde existují obecné příkazy pro jejich výpočet. Zároveň i tyto programy umožňují jednoduše testovat předpoklady daného modelu.

Převod mocninné a exponenciální regrese na lineární

Na lineární problém lze transformovat i aproximaci mocninnou funkcí f(x)=axb nebo aproximaci funkcí exponenciální f(x)=abx.

Mocninná funkce

Problém, jak aproximovat původní data [xi,yi] křivkou y=axb lze převést na podobný problém zlogaritmováním rovnice křivky.

ln(y)=ln(a)+bln(x),

přičemž místo ln(a) lze psát c.

ln(y)=c+bln(x)

Vznikl tak problém, jak aproximovat logaritmovaná původní data [ln(xi),ln(yi)] přímkou y=c+bx, který již problémem není. Koeficient a v mocninné funkci lze z koeficientu c vypočítat jako a=ec.

Exponenciální funkce

Problém, jak aproximovat původní data [xi,yi] křivkou y=abx lze převést na podobný problém zlogaritmováním rovnice křivky.

ln(y)=ln(a)+xln(b),

přičemž místo konstant ln(a) a ln(b) lze psát c a d.

ln(y)=c+xd

Na rozdíl od aproximace mocninnou funkcí, stačí z původních dat logaritmovat pouze hodnoty yi a řešit problém, jak aproximovat data [xi,ln(yi)] přímkou y=c+dx. Koeficienty a a b v exponenciální funkci lze z koeficientů c a d vypočítat jako a=ec, b=ed.

Reference

  1. Jiří Likeš, Josef Machek, Matematická statistika, SNTL Praha 1988, s. 165-169

Související články

Externí odkazy

Šablona:Autoritní data