Regresní techniky v Excelu
Měříme závislost proměnné y na jedné nebo více nezávisle proměnných. Hodnoty
nezávisle proměnných nastavíme pevně. Naměřené hodnoty závisle proměnné vykazují
určité odchylky – kolísání (obvykle na nich mají velký podíl experimentální
chyby) kolem neznámé střední hodnoty.
Budeme studovat závislost proměnné y na jedné nezávisle proměnné x. Provedeme
n měření. Získáme tak body (xi,yi), i=1,2,…n. Předpokládejme,
že naše měřená závislost je matematicky formulována známým zákonem - rovnicí
y=f(x). Funkci f budeme nazývat regresní funkce.
Regresní funkci proložíme naměřenými daty tak, abychom naším prokladem zmíněné kolísání dat minimalizovali.
Tím zároveň určíme odhad neznámých parametrů regresní funkce. Jinak řečeno, cílem regrese je
určit takové hodnoty parametrů regresní funkce, aby tato funkce co nejlépe prokládala zadaná
data.
Excel již obsahuje nástroje, které tyto hodnoty parametrů, pro regresní
funkce lineární vzhledem k parametrům, počítají. Používá k tomu samozřejmě
metodu nejmenších čtverců. Po získání odhadů regresních parametrů lze z regresní funkce vypočítat, po zadání hodnoty
nezávisle proměnné x, odpovídající odhad závisle proměnné y. Popsanému výpočtu říkáme predikce.
Funkce LinRegrese()
Mějme regresní funkci lineární k hledaným parametrům:
y= β0+β1 f1 (x)+ β2 f2 (x)+ ... +βm fm (x) , kde βj, j=0,1,...,m, jsou neznámé parametry, fk (x), kde k=1,...,m, nazýváme regresory.
Parametry βj regresní funkce pouze odhadujeme z provedených n měření. Odhad každého parametru βj budeme značit bj.
Právě pro odhad parametrů tohoto typu regresních funkcí, ke kterému patří polynomiální regresní funkce, tedy regresní přímka i regresní parabola, slouží excelovská funkce LinRegrese().
Její zápis, včetně argumentů, je LinRegrese(Y;X;B;Stat). Jak připravená data potřebuje?
- Y je vektor o n prvcích, kde n je počet měření. Obsahuje hodnoty
jednotlivých měření yi závisle proměnné y. Budeme jej zadávat jako vektor sloupcový. Tedy i-tý řádek tohoto vektoru obsahuje hodnotu závisle proměnné pro i-té měření.
- X je matice o n řádcích a m sloupcích, kde m je počet regresorů. V každém sloupci obsahuje hodnoty příslušného regresoru.
I-tý řádek této matice obsahuje hodnoty regresorů pro i-té měření fk (xi), k=1,...,m. Pokud bychom jednotlivá měření zadávali ve sloupcích, role řádků a sloupců se zamění.
- B – určuje, zda závislost obsahuje absolutní člen (vynechán, nebo PRAVDA obsahuje, NEPRAVDA či nula – neobsahuje absolutní člen).
- Stat – je-li PRAVDA, poskytuje funkce další statistické charakteristiky regrese, je-li NEPRAVDA, nebo bez zadání – funkce je neposkytuje. Hodnotu tohoto parametru nebudeme zpravidla zadávat.
Pokud žádáme od funkce LinRegrese() jen výpočet odhadu parametrů bj, je jejím výsledkem jednořádková matice o počtu sloupců, který je roven počtu těchto parametrů. Nutno zdůraznit, že pořadí získaných parametrů je opačné, než pořadí sloupců s hodnotami příslušných regresorů v argumentu X.
Absolutní člen b0 je vždy poslední. Počítáme-li další statistické charakteristiky regrese (Stat=TRUE), zadáme pro výslednou matici funkce LinRegrese() obdélník o pěti řádcích a počtu sloupců, který je roven počtu hledaných parametrů.
Příklady regresních funkcí.
- Regresní funkce y=b0+b1 x (regresní přímka) je lineární vzhledem k neznámým parametrům b0,b1, pro regresor f1(x) platí f1(x)=x. Výchozími daty pro regresi bude tabulka o dvou sloupcích. V prvním bude n hodnot nezávisle proměnné (argument X), ve druhém n hodnot závisle proměnné (argument Y).
Výsledná matice parametrů funkce LinRegrese() bude obsahovat po řadě parametry b1,b0.
- Regresní funkce y=b0+b1 x+ b2 x2 (regresní parabola) je lineární vzhledem k neznámým parametrům b0,b1,b2,
pro regresor f1(x) platí f1(x)=x, pro regresor f2 (x) platí f2 (x)=x2. Výchozími daty pro regresi bude tabulka (matice) o třech sloupcích a n řádcích. V prvním sloupci budou hodnoty nezávisle proměnné, ve druhém hodnoty čtverců nezávisle proměnné (tyto dva sloupce tvoří argument X) a ve třetím budou hodnoty závisle proměnné (argument Y). Výsledná matice parametrů funkce LinRegrese() bude obsahovat po řadě parametry b2,b1, b0. Změníme-li pořadí sloupců v argumentu X,
změní se pořadí získaných parametrů na b1,b2, b0.
- Regresní funkce y=b0+b1 x1+ b2 x2 je lineární vzhledem k neznámým parametrům b0,b1,b2. Je to funkce dvou proměnných x1 a x2, které jsou zároveň regresory. Výchozími daty pro regresi bude tabulka o třech sloupcích a n řádcích. V prvním sloupci budou hodnoty nezávisle proměnné x1, ve druhém hodnoty nezávisle proměnné x2 (tyto dva sloupce tvoří argument X) a ve třetím bude n hodnot závisle proměnné (argument Y).
Výsledná matice parametrů funkce LinRegrese() bude obsahovat po řadě parametry b2,b1, b0. Změníme-li pořadí sloupců v argumentu X, změní se pořadí získaných parametrů na b1,b2, b0.
- Regresní funkce y=b1 .e(b2.x)+ b3 .e(b4.x) není lineární vzhledem k parametrům b2 a b4. Proto nelze k výpočtu hodnot jejich parametrů použít funkce LinRegrese().
Regrese obecnou přímkou y=b0+b1x
- Funkce Slope(Y, X) – poskytuje směrnici b1 regresní přímky.
- Funkce Intercept(Y, X) – navrací y-ovou souřadnici b0 průsečíku přímky s osou y.
- Maticová funkce LinRegrese(Y, X, B, Stat) poskytuje řádkovou matici parametrů b1 a b0 (nezadáme-li parametr Stat).
X je vektor hodnot nezávisle proměnné x.
Y je vektor obsahující odpovídající naměřené hodnoty závisle proměnné y.
Hodnotu B nezadáváme.
Hodnotu Stat zadáme jen v tom případě, požadujeme-li statistické charakteristiky regrese.
Pracovní postup
- Vyznačíme zdrojová data X,Y (následující obrázek B47:C58).
- Sestrojíme z nich bodový graf.
- Z kontextové nabídky libovolného bodu grafu volíme příkaz Přidat spojnici trendu. Objeví se okno „Formát spojnice trendu“. V něm klepneme na volbu Lineární a dále zaškrtneme volbu Zobrazit rovnici v grafu a volitelně volbu Zobrazit hodnotu spolehlivosti R2.
- Pro výpočet regresních parametrů funkcí LinRegrese() vyznačíme dvě sousední buňky v řádku (G67:H67). Tlačítkem fx zvolíme funkci LinRegrese(). Zadáme argumenty Y a X. Zadání ukončíme Ctrl+Shift+Enter. Parametr b1 je první zleva, b0 druhý. Příslušný vzorec vidíme na řádku vzorců.
- Hodnoty predikce počítáme z rovnice regresní funkce, či maticovou funkcí LinTrend(). Stačí zadat její první dva argumenty Y, X.
Regrese přímkou procházející počátkem y=b1x
- Funkce Slope() a Intercept() nelze v tomto případě použít.
- Maticová funkce LinRegrese(Y, X, B, Stat) poskytuje řádkovou matici parametrů b1 a b0=0.
X je vektor hodnot nezávisle proměnné x.
Y je vektor obsahující odpovídající naměřené hodnoty závisle proměnné y.
Hodnotu B zadáváme rovnou nule.
Hodnotu Stat zadáme jen v tom případě, pokud bychom
požadovali statistické charakteristiky regrese.
Pracovní postup
- Vyznačíme zdrojová data X,Y (následující obrázek B6:C16).
- Sestrojíme z nich bodový graf.
- Z kontextové nabídky libovolného bodu grafu volíme příkaz Přidat spojnici trendu. Objeví se okno „Formát spojnice trendu“. V něm klepneme na volbu Lineární a dále zaškrtneme volbu Hodnota Y 0,0, dále volbu Zobrazit rovnici v grafu a volitelně volbu Zobrazit hodnotu spolehlivosti R2.
- Pro výpočet regresních parametrů funkcí LinRegrese() vyznačíme dvě sousední buňky v řádku (I26:J26). Tlačítkem fx zvolíme funkci LinRegrese(). Zadáme argumenty Y a X. Za argument B zadáme hodnotu nula. Zadání ukončíme Ctrl+Shift+Enter.
Parametr b1 je první zleva, b0=0 druhý. Příslušný vzorec vidíme na řádku vzorců.
- Hodnoty predikce počítáme z rovnice regresní funkce, či maticovou funkcí LinTrend(). Zadáme její první dva argumenty Y, X a argument B=0.
Regrese parabolou y=b0+b1 x+ b2 x2
Maticová funkce LinRegrese(Y, X, B, Stat) poskytuje řádkovou matici hodnot odhadovaných parametrů.
X je matice hodnot regresorů x a x2.
Y je vektor obsahující odpovídající naměřené hodnoty závisle proměnné y.
Hodnotu B nezadáváme.
Hodnotu Stat zadáme jen v tom případě, pokud bychom požadovali statistické charakteristiky regrese.
Pracovní postup (viz následující obrázek)
- Vyznačíme zdrojová data X,Y (předchozí obrázek B2:C25).
- Sestrojíme z nich bodový graf.
- Z kontextové nabídky libovolného bodu grafu volíme příkaz Přidat spojnici trendu. Objeví se okno „Formát spojnice trendu“. V něm klepneme na volbu Polynomická a volíme druhý stupeň polynomu (Pořadí 2). Dále volbu Zobrazit rovnici v grafu a volitelně volbu Zobrazit hodnotu spolehlivosti R2.
- Nyní třeba spočítat čtverce hodnot nezávisle proměnné (do A2:A25). Pro výpočet regresních parametrů funkcí LinRegrese() vyznačíme tři sousední buňky v řádku (F24:H24). Tlačítkem fx zvolíme funkci LinRegrese(). Zadáme argumenty Y (C2:C25) a X (A2:B25).
Zadání ukončíme Ctrl+Shift+Enter. Parametr b1 je první zleva, b2 je druhý a b0 je poslední. Příslušný vzorec vidíme na řádku vzorců.
- Hodnoty predikce počítáme z rovnice regresní funkce, či maticovou funkcí LinTrend() podobně jako v předchozích případech.
- Na předchozím obrázku je ještě na adrese F27:H31 výstupní matice funkce LinRegrese() pro případ hodnoty jejího argumentu Stat nastavené na TRUE. Vlevo od této matice je popis výstupních hodnot.
Exponenciální regrese
Excel též umožňuje použít regresní funkci y=b1exp(b2x). K určení regresních parametrů b1 a b2 lze použít funkci LinRegrese(), i když je regresní funkce vzhledem k druhému z nich nelineární. Pomůže nám zlogaritmování regresní funkce, čímž nelinearitu odstraníme. Dostaneme vztah ln(y)=ln(b1)+ b2x.
Maticová funkce LinRegrese(Y, X, B, Stat) poskytuje řádkovou matici hodnot odhadovaných parametrů.
X je sloupcová matice hodnot regresoru x.
Y je vektor obsahující odpovídající naměřené hodnoty přirozeného logaritmu závisle proměnné y.
Hodnotu B nezadáváme.
Hodnotu Stat zadáme jen v tom případě, pokud bychom požadovali statistické charakteristiky regrese.
Pracovní postup (viz následující obrázek)
- Vyznačíme zdrojová data x, y (předchozí obrázek A4:B22).
- Sestrojíme z nich bodový graf.
- Z kontextové nabídky libovolného bodu grafu volíme příkaz Přidat spojnici trendu. Objeví se okno „Formát spojnice trendu“. V něm klepneme na volbu Exponenciální. Dále aktivujeme volbu Zobrazit rovnici v grafu a volitelně volbu Zobrazit hodnotu spolehlivosti R2x.
- Nyní spočítáme sloupec hodnot ln(Y) (C4:C22). Pro výpočet regresních parametrů funkcí LinRegrese() vyznačíme dvě sousední buňky v řádku (F21:G21). Tlačítkem fx zvolíme funkci LinRegrese(). Zadáme argumenty ln(Y) (C4:C22) a X (A4:A22). Zadání ukončíme Ctrl+Shift+Enter.
Parametr b2 je první zleva, ln(b1) je druhý. Hodnotu b1 získáme odlogaritmováním (H21).
- Hodnoty predikce počítáme z rovnice regresní funkce (D4:D22).
Logaritmická regrese
Excel též umožňuje použít regresní funkci y=b1ln(x) + b0. K určení regresních parametrů b1 a b0 lze použít funkci LinRegrese().
Maticová funkce LinRegrese(Y, X, B, Stat) poskytuje řádkovou matici hodnot odhadovaných parametrů.
X je sloupcová matice hodnot přirozeného logaritmu regresoru x.
Y je vektor obsahující odpovídající naměřené hodnoty závisle proměnné y.
Hodnotu B nezadáváme.
Hodnotu Stat zadáme jen v tom případě, pokud bychom požadovali statistické charakteristiky regrese.
Pracovní postup (viz následující obrázek)
- Vyznačíme zdrojová data x, y (předchozí obrázek A2:B12).
- Sestrojíme z nich bodový graf.
- Z kontextové nabídky libovolného bodu grafu volíme příkaz Přidat spojnici trendu. Objeví se okno „Formát spojnice trendu“. V něm klepneme na volbu Logaritmická. Dále aktivujeme volbu Zobrazit rovnici v grafu a volitelně volbu Zobrazit hodnotu spolehlivosti R2.
- Nyní spočítáme sloupec hodnot ln(X) (C3:C12). Pro výpočet regresních parametrů funkcí LinRegrese() vyznačíme dvě sousední buňky v řádku (D18:E18). Tlačítkem fx zvolíme funkci LinRegrese(). Zadáme argumenty Y (B3:B12) a X (C3:C12). Zadání ukončíme Ctrl+Shift+Enter.
Parametr b1 je první zleva, b0 je druhý.
- Hodnoty predikce počítáme z rovnice regresní funkce (D3:D12).
Mocninná regrese
Excel též umožňuje použít regresní funkci y=b1xb2. K určení regresních parametrů b1 a b2 lze použít funkci LinRegrese(), i když je regresní funkce vzhledem k druhému z nich nelineární. Pomůže nám zlogaritmování regresní funkce, čímž nelinearitu odstraníme. Dostaneme vztah ln(y)=ln(b1)+ b2ln(x).
Maticová funkce LinRegrese(Y, X, B, Stat) poskytuje řádkovou matici hodnot odhadovaných parametrů.
X je sloupcová matice hodnot přirozeného logaritmu regresoru x.
Y je vektor obsahující přirozený logaritmus naměřených hodnoty závisle proměnné y.
Hodnotu B nezadáváme.
Hodnotu Stat bychom zadali jen v tom případě, pokud bychom požadovali statistické charakteristiky regrese.
Pracovní postup (viz následující obrázek)
- Vyznačíme zdrojová data x, y (předchozí obrázek B4:C22).
- Sestrojíme z nich bodový graf.
- Z kontextové nabídky libovolného bodu grafu volíme příkaz Přidat spojnici trendu. Objeví se okno „Formát spojnice trendu“. V něm klepneme na volbu Mocninná. Dále aktivujeme volbu Zobrazit rovnici v grafu a volitelně volbu Zobrazit hodnotu spolehlivosti R2.
- Nyní spočítáme sloupce hodnot ln(X) a ln(Y) (E4:F22). Pro výpočet regresních parametrů funkcí LinRegrese() vyznačíme dvě sousední buňky v řádku (I21:J21). Tlačítkem fx zvolíme funkci LinRegrese(). Zadáme argumenty ln(Y) (F4:F22) a ln(X) (E4:E22).
Zadání ukončíme Ctrl+Shift+Enter. Parametr b2 je první zleva, ln(b1) je druhý. Hodnotu b1 získáme odlogaritmováním (K21).
- Hodnoty predikce počítáme z rovnice regresní funkce (D4:D22).