1 SOC108/708 LEKCE 11: Základy lineární regrese (c) Petr Mareš a Ladislav Rabušic 2002 LEKCE11 PŘÍKLAD REGRESNí ANALýZA -- JEDNODUCHá LINEáRNí REGRESE Regresní analýza je jednou z nejpoužívanějších statistických technik analýzy dat ve společenských vědách. Jednoduchá lineární regrese, podobně jako bivariační korelační analýza, zkoumá vztah mezi dvěma proměnnými. Na rozdíl od korelace však dokáže nejenom popsat těsnost mezi dvěma proměnnými, ale dokáže a v tom je její síla predikovat hodnoty závisle proměnné. Jaké jsou podmínky pro užití regresní analýzy? Podobné jako při uplatnění Pearsonova korelačního koeficientu r. Obě proměnné tedy musí být měřeny na intervalové škále (musí to tedy být kardinální proměnné) a vztah mezi nimi musí být lineární. Základním smyslem jednoduché lineární regrese je sumarizovat vztah mezi dvěma proměnnými tím způsobem, že se stanoví přímka, která nejlépe vystihuje průběh vztahu. Jakmile je tato přímka stanovena, mohou se vypočítat její parametry, to je může se stanovit rovnice této přímky. Má obecnou podobu y = a + bx kde, y je hodnota závisle proměnné, x je hodnota nezávisle proměnné, a je parametr, který říká, v jakém bodě přímka protíná vertikální osu Y, b je hodnota, která určuje směr přímky a v regresní analýze se jí říká regresní koeficient. Ukažme si vše na příkladu. Vyjděme z demografických dat z roku 1999, která jsou obsažena v tab. 11. 1. Uvádějí kojeneckou úmrtnost, tedy počet zemřelých kojenců během prvního roku života na 1000 živě narozených, a ekonomickou vyspělost země indikovanou hrubým národním produktem na hlavu (Gross National Product -- GNP) v amerických dolarech. Budeme se zajímat o to, do jaké míry je v Evropě kojenecká úmrtnost podmíněna ekonomickou vyspělostí země. Budeme tedy hledat vztah mezi ekonomická vyspělostí země (což je v daném příkladu nezávisle proměnná) a mírou kojenecké úmrtnosti (proměnnou závislou). Data k tomuto příkladu jsou převzata ze souboru demografie_data.sav. Jak je z tabulky vidět, kojenecká úmrtnost v evropských zemích značně variuje a pohybuje se od 4 po 22. Evropský průměr byl v roce je 8,3. Již pouhá okometrická analýza naznačuje, že země s vyšším GNP mají nižší kojeneckou úmrtnost a naopak. Jakýkoliv příklad regresní analýzu je vždy dobré začít nejdříve řešit nejdříve graficky, abychom zjistili, zdali vztah mezi proměnnými má lineární charakter. Použijeme k tomu bodový graf, který zadáme tak, jak je zobrazeno na obr. 11.1. Tab. 11. 1: Kojenecká úmrtnost v nich zaškrtnout okénko a hrubý národní produkt (GNP) Display chart with case na hlavu v evropských zemích labels. (1999) Obr. 11.1: Zadání pro bodový Země Kojen. graf úmrt. GNP na hlavu Albánie 22 810 Belgie 5,6 25 380 Bělorusko 11,0 2 180 Bulharsko 14,4 1 220 Česko 4,6 5 115 Dánsko 4,7 33 040 Estonsko 9,0 3 360 Finsko 4,2 24 280 Francie 4,8 24 210 Chorvatsko 8,2 4 620 Irsko 6,2 18 710 Island 2,6 27 830 Itálie 5,5 20 090 Litevsko 9,0 2 540 Lotyšsko 11,0 2 420 Maďarsko 8,9 4 510 Moldávie 18,0 380 Německo 4,7 26 570 Nizozemsko 5,0 24 780 Norsko 4,0 34 310 Polsko 9,0 3 910 Portugalsko 5,4 10 670 Rakousko 4,9 26 830 Rumunsko 20,5 1 360 Rusko 17,0 2 260 Řecko 6,7 11 740 Slovensko 8,8 3 700 Slovinsko 5,2 9 780 Španělsko 5,7 14 100 Švédsko 3,5 25 580 Švýcarsko 4,8 39 980 Ukrajina 13,0 980 V. Británie 5,7 21 410 Graphs Scatter Simple Define (do obdélníčku Y Axis umístíme jméno závisle proměnné, v našem případě má jméno kojen_um, do obdélníčku X Axis umístíme jméno nezávisle proměnné, v našem případě gnp_head. Do obdélníčku Label Cases by vložíme jména zemí v jejich zkratce, což je proměnná Id viz obr. 11.1). Abychom k jednotlivým bodům dostali jejich popisek, musíme si ještě kliknout na Options a Výsledkem tohoto zadání je graf, který je zobrazen jako obr. 11. 2. Z obrázku je patrné, že tvar vztahu mezi GNP a kojeneckou úmrtností nemá jasně lineární charakter, nicméně nebrání nám v tom, abychom daty nechali proložit regresní přímku. Obr. 11. 2: Kojenecká úmrtnost v závislosti na GNP na hlavu v evropských zemích (data z roku 1999) Úkolem regresní analýzy je proložit body grafu regresní přímku. Vzhledem k tomu, že počet možných přímek, jimiž by mohly být body proloženy, je nesmírně velký, používá se k této úloze metoda nejmenších čtverců, která nalezne takovou přímku, aby součet druhých mocností vzdáleností jednotlivých bodů od přímky byl nejmenší. V našem případě je výsledek metody nejmenších čtverců přímka, kterou ukazuje obrázek 11.3. Regresní přímku do grafu dostaneme tak, že dvakrát klikneme na graf, abychom jej mohli editovat. Pak zvolíme z nabídky menu zvolíme Chart -- Options a budeme požadovat, aby do grafu byla zanesena Fit Line (zaškrtneme políčko Total). Potom ještě klikneme na Fit Options, abychom zvolili metodu výpočtu -- v novém dialogovém okně, které se objeví, budeme klinutím požadovat lineární regresi. Na obrázku 11.3 je zřetelně vidět, že část bodů je od přímky poměrně značně vzdálena -- pokud by regresní přímka měla být dobrým modelem vztahu těchto dvou proměnných, měly by se všechny body k přímce těsně přimykat, což však není např. případ Albánie (Alb), Rumunska (Ru), ČR nebo Švýcarska (SV). Kdyby regresní model platil beze zbytku, musela být mít např. ČR vzhledem ke svému GNP více než dvojnásobnou kojeneckou úmrtnost, než jakou ve skutečnosti má, a naopak Švýcarsko by muselo mít kojeneckou úmrtnost asi pětinásobně nižší, než jakou má (O rozdílu mezi skutečnými hodnotami a hodnotami, vypočtenými z modelu budeme ještě hovořit). Obr. 11. 3: Regresní přímka popisující vztah mezi urbanizací a populačním stárnutím Vypočítejme si nyní parametry regresní rovnice. Regresi vypočítáme v SPSS následujícím sledem příkazů. Analyze Regression Linear Dependent (vložíme příslušnou závisle proměnnou) -- Independent (vložíme příslušnou nezávisle proměnnou) Výsledkem výpočtu je několik tabulek. Interpretaci regresní analýzy začínáme vždy tím, že zhodnotíme, zdali je regresní přímka adekvátním modelem pro příslušná data. Proto nejdříve zkoumáme tabulku s údaji o R, R Square (tab. 11.2) a tabulku ANOVy (11.3) Tab. 11. 2: Hlavními ukazateli vhodnosti modelu pro naše data jsou údaje o velikosti R a R2 (R Square). Hodnota R je v případě jednoduché lineární regrese vlastně hodnotou Pearsonova korelačního koeficientu (ale pozor, nabývá pouze kladných hodnot, takže nemůže sloužit pro vyjádření korelačního vztahu -- k tomu slouží standardizovaný koeficient beta, jehož výpočet je součástí výstupu z regresní analýzy). Čím vyšší je v regresi hodnota R, tím více si můžeme být jisti, že regresní model vyhovuje našim datům. V našem případě je R = 0,72, což není špatný výsledek. R2 indikuje, jak silný je regresní vztah mezi dvěma proměnnými. Vynásobíme-li jej 100, získáme vlastně koeficient determinace, jak jsme o něm hovořili v předchozí kapitole. Pro naše data je R2 = 0,52 což značí, že rozptyl v datech je z 52 % způsoben chováním proměnné GNP na hlavu. Zbylých 48 % variance je třeba hledat v dalších, pravděpodobně neekonomických faktorech. Nicméně ekonomický vliv se zdá být pro úroveň kojenecké úmrtnosti v evropských zemích poměrně značný. Tab. 11. 3: Tabulka analýzy rozptylu (tab. 11.3) rovněž říká, zdali je model vhodný pro data, nebo ne, to je měří rozdíl mezi skutečnými daty a daty, které vzniknou na základě aplikace regresního modelu. Z tabulky jsou pro praktickou práci nejdůležitější údaje o hodnotě F (mělo by být vyšší než 1) a jeho signifikance (Sig. by měla být nižší než 0,05). F je v našem případě mnohem větší než 1 a je signifikantní. Což značí, že vypočítaný regresní model je vhodný. Máme-li tedy důvěru v to, že má smysl pracovat s lineárním modelem regrese,1 podívejme se nyní na parametry regresní přímky (viz tab. 11.4). Vyčteme je ve sloupci Unstandardized Coefficients (nestandardizované koeficienty). Z údajů v tabulce 11.4 pak můžeme sestavit regresní rovnici.: k.ú. = 12,47 + (-0,0003 x GNP) Tab. 11. 4: Jak tuto rovnici čteme? Hodnoty závisle proměnné, což je kojenecká úmrtnost, vzniknou jako součin hodnoty regresního koeficientu B (B = -0,0003) 2 a hodnoty GNP. Konstanta, která má v našem případě hodnotu 12,47, zase říká, v jaké výšce protíná regresní přímka osu Y, když hodnota závisle proměnné je nula. Tato konstanta je důležitou interpretačně. Říká totiž, jak vysoká bude hodnota závisle proměnné, když hodnota nezávisle proměnné bude nulová. Řečeno jinými slovy, kdyby teoreticky byl GNP nulový, pak by kojenecká úmrtnost byla 12,5 (12,47). Regresní rovnice umožňuje analyticky několik věcí. Tak především hodnota regresního koeficientu B říká, o kolik se změní hodnota závisle proměnné y, když se hodnota nezávisle proměnné zvýší o jednotku, v níž je měřena (samozřejmě za předpokladu, že všechno ostatní zůstane konstantní). V našem příkladě má regresní koeficient hodnotu -0,0003, což umožňuje formulovat následující výrok.3 Zvýší-li se GNP na hlavu o jeden dolar, sníží se kojenecká úmrtnost o 0,0003. Zvýší-li se o GNP na hlavu o 1000 dolarů, kojenecká úmrtnost se sníží o --0,0003*1000 = -0,3. Regresní rovnice dále umožňuje z hodnot nezávisle proměnné predikovat hodnotu proměnné závislé. Předpokládejme např., že by v nějaké zemi byl GNP na hlavu 35 620 dolarů. Jaká by v takové zemi byla kojenecká úmrtnost (k. ú.)? Pro zodpovězení této otázky stačí dosadit příslušné hodnoty do regresní rovnice: k. ú. = 12,47 + (-0,0003 x 35 620) k. ú. = 12,47 + (-10,686) k. ú. = 1,784 Takže při GNP 35 620 dolarů na hlavu by měla být kojenecká úmrtnost velmi nízká, pouhých 1,8 zemřelých kojenců na 1000 živě narozených dětí. * * * Při pozorném pohledu na obrázek 11. 2 se možná mnohým může zdát, že rozložení zemí v sobě vlastně skrývá dva modely. Jeden je modelem pro bývalé země východoevropské, druhý pak pro země západoevropské. Zdá se tedy, že by mohlo mít smysl neanalyzovat vztah mezi kojeneckou úmrtností a GNP pro všechny evropské země najednou, nýbrž rozdělit celou analýzu do dvou podsouborů: podsoubor zemí západních, k nimž přičleníme i Slovinsko4 a podsoubor zemí východních. Zkusme to. Nejdříve vyberme přes proceduru Data -- Select cases podsoubor zemí západních. Použijeme k tomu dichotomickou proměnnou z_v, která rozděluje země na západní a východní. Pro západní země uděláme graf a v něm necháme zobrazit regresní přímku (viz obr. 11.4). Totéž pak provedeme pro země východní (viz obr. 11. 5). Obr. 11. 4. Obr. 11. 5. A nyní spočítejme pro oba podsoubory lineární regresi. Pro západoevropské země je výsledek v tabulce 11.5a 11.5b. Tab. 11.5a: Tab. 11.5b: Srovnáme-li výsledky s regresí pro celý soubor, pak lineární model je pro tento podsoubor horším modelem. R2 se snížilo na 0,31 (vysvětluje tedy pouze 31 % variance kojenecké úmrtnosti) a síla vztahu (R = 0,55) je také nižší. Zato pro východoevropské země nastalo zlepšení, jak ukazují tabulky 11.6a a 11.6b. R se zvýšilo na 0,84, R2 se zvýšilo na 0,70, takže plných 70 % variance kojenecké úmrtnosti je vysvětleno velikostí GNP na hlavu. Tab. 11.6a: Tab. 11.6b: Co z toho všeho vyplývá? Dospěli jsme zajímavému závěru. Evropa se z hlediska kojenecké úmrtnosti dělí do dvou oblastí, západoevropské a východoevropské. Zatímco v západoevropských zemích není vztah mezi GNP a kojeneckou úmrtností lineární povahy, a nemá proto cenu aplikovat na něj model lineární regrese, ve střední a východní Evropě má tento vztah lineární podobu. Což jinými slovy znamená, že onen poměrně výrazný ekonomický vliv na kojeneckou úmrtnost, který jsme nalezli v naší analýze pro všechny evropské země, byl způsoben velkou váhou tohoto faktoru v zemích východoevropských. Zdá se tedy, že od jisté úrovně ekonomické vyspělosti tento lineární vliv přestává platit. Rovnice lineární regrese je pro východoevropské země následující (viz tab. 11.7) k.ú. = 19,63 -- 0,0028*GNP Tab. 11.7: Což znamená, že pokud se zvýší GNP na hlavu o 1000 dolarů, sníží se kojenecká úmrtnost o 2,8 zemřelých kojenců na 1000 živě narozených dětí. A to je vskutku už velmi zajímavý výsledek. Predikované hodnoty a reziduály Predikční schopnosti regresní přímky můžeme využít také k tomu, abychom se podívali, do jaké míry regresní model neboť vypočtená regresní přímka je skutečně pouze modelem, který ve zhuštěné a elegantní podobě sumarizuje vztah mezi sadou hodnot dvou proměnných zpětně reprodukuje výchozí hodnoty závisle proměnné. Pokud je bude reprodukovat relativně věrně, můžeme si být jisti, že regresní rovnice je dobrým modelem dat. To, jak rovnice reprodukuje výchozí hodnoty závisle proměnné, je možné zjistit dvěma způsoby. Tím prvním je ruční způsob, kdy bychom do vypočtené rovnice postupně dosazovali hodnoty GNP v jednotlivých zemích a kontrolovali, zdali se vypočtená (říká se jí také predikovaná) kojenecká úmrtnost shoduje s příslušným statistickým údajem. Z tab. 11. 1 například víme, že na Slovensku bylo GNP na hlavu 3700 dolarů. Po dosazení tohoto údaje do regresní rovnice pro východoevropské země vypočítáme, že kojenecká úmrtnost (k.ú.) by měla být: k.ú. SR = 19,63 -- 0,0028*3700 = 9,27 Skutečná kojenecká úmrtnost přitom byla 8,8. Oba údaje jsou si docela blízké, což nás ale nemůže překvapit, neboť když se podíváme na obrázek 11.5, tak uvidíme, že Slovensko se velmi těsně přimyká regresní přímce. Udělejme stejný pokus pro Albánii, která, jak ukazuje obr. 11.5, je od přímky poměrně dosti vzdálena. k.ú. Albánie = 19,63 -- 0,0028*810 = 17,36 Skutečná kojenecká úmrtnost byla v Albánii 22. Zde je tedy již rozdíl větší. Program SPSS umožňuje, abychom tento způsob kontroly nemuseli provádět ručně. Vypočítá za nás (podle příslušné regresní rovnice, kterou si pamatuje) predikované hodnoty kojenecké úmrtnosti pro všechny východoevropské země a tyto hodnoty umístí jako novou proměnnou na konec matice pod názvem PRE_1. Dále vypočítá tzv. rezidua neboli rozdíl mezi skutečnou hodnotou kojenecké úmrtnosti a její predikovanou hodnotou. Ty umístí jako další proměnnou do matice pod názvem RES_1. Procedura k celé operaci je následující: Analyze Regression Linear (vložíme jména nezávisle a závisle proměnné) Save (ve sloupečku Predicted Values zaškrtneme políčko Unstandardized a ve sloupečku Residuals zaškrtneme políčko Unstandardized viz obr. 11.6 ) -- Continue OK Obr. 11.6: Dialogové okno pro zpětný výpočet hodnot závisle proměnné, pro výpočet reziduí a pro jejich uložení jako nových proměnných Pozn. Pozor, stále pracujeme pouze s podsouborem východoevropských zemí (bez Slovinska). Tím jsme provedli příslušné výpočty a v matici dat se objevily nové dva sloupce nazvané PRE_1 a RES_1. Jejich hodnoty si nyní zobrazíme do tabulky. Učiníme tak následovně (viz obr. 11.7): Analyze Reports Case Summaries (do políčka Variables vložíme jméno identifikující proměnné "zeme" , dále proměnnou "kojen_um" a nově uložené proměnné "pre_1" a "res_1") OK Obr. 11.7: Dialogové okno pro zobrazení hodnot nezávisle a závisle proměnné, rekonstruovaných hodnot závisle proměnné a reziduí Tab. 11.7: Skutečné hodnoty kojenecké úmrtnosti, jejich vypočtené hodnoty a rezidua Srovnáním sloupce "KOJEN_UM" se sloupcem "PRE_1" můžeme zjistit, jak se vypočtené hodnoty (PRE_1) odlišují od pozorovaných (skutečných).5 Nejjednodušším způsobem ale, jak tyto rozdíly zjistit, je podívat se do sloupce "RES_1", v němž jsou uvedeny rozdíly mezi skutečnou a vypočtenou hodnotou. Kladná hodnota rezidua znamená, že vypočtená (predikovaná) hodnota je vyšší, než skutečná, zatímco záporná hodnota rezidua naznačuje, že vypočtená hodnota je nižší než skutečná. Z tabulky 11.7 je patrné, že v některých případech (zemích), se predikované i skutečné hodnoty příliš neodlišují (např. v případě Česka, Moldávie či Polska), jindy je rozdíl poměrně značný (např. pro Ukrajinu, Rusko, Rumunsko či Albánii). Rozdíl naznačuje, že uvedené země se "chovají" z hlediska vztahu mezi ekonomickou vyspělostí a kojeneckou úmrtností jinak, než by naznačoval model. Obr. 11. 8: Graf predikovaných hodnot (pre_1) oproti hodnotám závisle proměnné Pozn. Upravte měřítka na obou osách tak, aby byla stejně dlouhá. Predikovaných hodnot můžeme ještě využít pro kontrolu, zdali je regresní model adekvátní reálným datům. Je zřejmé, že pokud vyneseme do grafu hodnoty kojenecké úmrtnosti (závisle proměnné), kterou umístíme na osu x a na osu y hodnoty predikované, měly být by v případě, že model data dobře uchopil, body grafu na přímce. Jak ukazuje obr. 11.8, body grafu nevytvářejí zcela jasnou přímku, ale nejsou od ní daleko. Jiný způsob, jak testovat adekvátnost modelu, je prostřednictvím reziduí. Pokud je model pro data adekvátní, měla by být rezidua normálně rozložena. To testuje tzv. Normal probability plot neboli graf pravděpodobnosti normality. Získáme ho s pomocí zadání: Analyze Regression Linear Statistics -- Casewise diagnostics (+ viz obr. 11.9) -- Plots -- Normal probabilty plot (+ viz obr. 11.9) Obr. 11. 9: Zadání pro analýzu reziduí Výsledkem je graf na obr. 11. 10. I zde by měly jednotlivé případy tvořit přímku. Naše data ideální přímku netvoří, nicméně nejsou od přímky příliš vzdálena. Což nevyvrací naše přesvědčení, že regresní lineární model je ve východoevropských zemích vhodným modelem pro vztah mezi GNP na hlavu a kojeneckou úmrtností. Obr. 11. 10: Graf pravděpodobnosti normality rozložení reziduí Závěrečné shrnutí Lineární regrese umí určit vztah mezi 2 proměnnými prostřednictvím regresní rovnice. Pokud je tato rovnice dobrým modelem vztahu, dokáže pro nové případy předvídat hodnoty závisle proměnné (y). Výsledky regresní analýzy mohou být znehodnoceny: 1. nelinearitou vztahu 2. odlehlými hodnotami (outliers) 3. přítomností subpopulací (když je soubor velmi heterogenní) V našem příkladě, kdy jsme hledali vztah mezi GNP a kojeneckou úmrtností, jsme narazili na problém druhého a třetího typu. Subpopulace jsme odhalili dvě: západní a východní Evropu, outlier bylo Slovinsko (Sl) -- viz obr. 11, který ukazuje odlehlost Slovinska mezi východoevropskými zeměmi. To byl také hlavní důvod, proč jsme Slovinsko z analytických důvodů zařadili mezi země západoevropské. Obr. 11.11: Regresní analýza je mocným statistickým nástrojem. V jejím užití však musíme být obezřetnými a pečlivě kontrolovat, zdali je předpoklad linearity naplněn. _______________________________ 1 Jak si ukážeme později, SPSS umí data proložit i jinou funkcí než lineární, např. kvadratickou, exponenciální či logaritmickou. 2 Výraz 8,509E-0,2 je zkráceným matematickým výrazem, který umožňuje, abychom nemuseli psát dlouhou řadu nul za desetinnou čárkou. Poslední část tohoto výrazu, to je E-0,2 říká, o kolik pozic máme posunout desetinnou čárku doleva. V našem případě musíme posunout o dvě desetinná místa. 3 Až dosud jsme se v analýze dat setkávali s koeficienty, které byly standardizovány, a proto nabývaly hodnot v rozsahu <0;1> nebo <-1;1>. Nestandardizovaný regresní koeficient může v podstatě nabýt hodnoty jakékoliv. 4 Pozor, ve vašem datovém souboru je Slovinsko definováno jako země východní (s kódem dvě). Pokud si budete tento příklad sami přepočítávat, je nutné, abyste Slovinsku přiřadili kód západoevropské země, tedy kód 1. 5 Náš ruční výpočet pro Slovensko přinesl údaj predikované kojenecké úmrtnosti 9,27. Rozdíl byl způsoben naším zaokrouhlením parametrů v rovnici.