Lineární regrese

Zadání

Úvod

Nejjednodušší funkcí, která kvantifikuje (modeluje) vzájemný vztah dvou číslených proměnných, je lineární funkce. Lineární vztah proto používáme jako základní model v případě, že jsou splněny předpoklady zvolené metody pro odhad jeho parametrů. Nejstarší, tzv. parametrickou metodou nalezení parametrů lineárního modelu je metoda nejmenších čtverců (MNČ), která odhaduje parametry na základě minimalizace sumy čtverců odchylek (reziduí) jednotlivých bodů od regresní přímky (ve směru osy y, tedy závislé proměnné). Jsou-li splněny tři předpoklady Gauss-Markovovy věty, lze ukázat, že MNČ je nejlepším možným odhadem lineárního modelu. V praxi se splnění těchto předpokladů testuje metodou ověření normality reziduí modelu, nulového průměru reziduí a nezávislosti reziduí na závislé proměnné. V případě, že nelze tyto podmínky splnit, lze s opatrností využít semi-parametrických metod lineární regrese jako je odhad pomocí maximální věrohodnosti nebo metod neparametrických jako jsou Theil-Senův nebo Siegelův odhad.

Odhadovanými parametry lineární regrese proměnné y v závislosti na proměnné x (tedy matematicky y = α + β × x) jsou konstantní člen α (průsečík regresní přímky s osou y) a sklon regresní přímky β, popisující míru závislosti závislé proměnné x na nezávislé proměnné y. U obou parametrů lze stanovit rovněž statistickou významnost ve formě odhadu parametru p.

Lineární regresi s jednou nezávislou proměnnou lze snadno zobecnit na přirozenočíselný počet nezávislých proměnných s koeficienty β1, β2, … , βn.

V následujícím případě se budeme zabývat lineárním modelem koncentrace rtuti v lidské krvi v průběhu let 1970 až 2015. Naučíme se data transformovat, zvolit vhodnou metodu lineárního modelu, ověřit jeho předpoklady a interpretovat získaný odhad modelovaných parametrů. Data vychází ze článku Sharma et. aů. An overview of worldwide and regional time trends in total mercury levels in human blood and breast milk from 1966 to 2015 and their associations with health effects publikovaného v časopise Environment International v roce 2019.

Postupné kroky datové analýzy

1

2

3

4

5

6

7

8

Krok 1: Načtení dat

V prvním kroku je třeba načíst do proměnné data data pro analýzu. Tabulka o dvou sloupcích se nachází na prvním listu souboru 2_data.xlsx, který je umístěn v pracovní složce. V prvním řádku jsou požadované názvy sloupců (čas a koncentrace), ve druhém řádku jsou názvy jednotek, které pro analýzu nejsou užitečné a potřebujeme se jich zbavit. Naším cílem je proto využít vhodný příkaz pro načtení dat tak, aby byla datového typu numeric a měla pojmenované sloupce čas a koncentrace.

Navrhované možnosti

Použijeme základní příkaz read.xlsx() pro čtení souborů ve formátu MS Excel a jako druhý argument (sheetIndex) uvedeme číslo 1, tedy pořadové číslo listu pro čtení. S názvy jednotek se vyrovnáme pomocí třetího argumentu startRow, který nastavíme na hodnotu 2.

Z důvodu české diakritiky v názvu sloupce čas využijeme příkaz read.xslx2(), který umí pracovat s různými znakovými sadami. S názvy jednotek se vyrovnáme pomocí druhého argumentu startRow, který nastavíme na hodnotu 2. Protože příkaz read.xlsx2() neumí správně identifikovat datové typy, použijeme třetí argument colClasses pro zadání hodnoty numeric pro oba sloupce.

Načtení dat ze souboru MS Excelu lze mj. provést univerzálním příkazem pro čtení dat read.csv() (stejně by fungoval příkaz read.csv2()), je ovšem třeba také zadat druhý argument, který uvádí pořadové číslo listu s daty v souboru (sheetIndex), tedy 1.

Z důvodu české diakritiky v názvu sloupce čas využijeme příkaz read.xslx2(), který umí pracovat s různými znakovými sadami. Jako druhý argument (sheetIndex) zadáme pořadové číslo listu 1. Protože příkaz read.xlsx2() neumí správně identifikovat datové typy, použijeme třetí argument colClasses pro zadání hodnoty numeric pro oba sloupce. Na závěr se zbavíme řádku s jednotkami vynětím pomocí indexu [-1,].

Okno R kódu a R konzole


##################################### # # # Analýza č. 3 - Lineární regrese # # # ##################################### library("xlsx") ## Krok č. 1 ## Krok č. 2 ## Krok č. 3 ## Krok č. 4 ## Krok č. 5 ## Krok č. 6 ## Krok č. 7 ## Krok č. 8