Longitudinální a panelová data – NMST422

Letný semester 2024 | Cvičenie 1 | 19.02.2024



I. Úvod a základy programu SAS

Cvičenie k predmetu NMST422 bude prebiehať formou rôznych teoretických a praktických úloh. Vzorové príklady, ilustrácie na reálnych datach a ďalšie praktické problémy budú riešené pomocou štatistického programu SAS.

Pre účely výuky budeme pracovať s (bezplatným) cloudovým online produktom SAS OnDemand ktorý je pre akademické použitie dostupný prostredníctvom webového rozhrania na adrese https://welcome.oda.sas.com/ (špecifické podrobnosti sú nižšie).

Jednotlivé príklady, konkrétne úlohy, aj ilustrácie na reálnych datach budú zadávané prostredníctvom predpripraveného zdrojového kódu, ktorý je možné priamo skopírovať do webového rozhrania SAS OnDemand a následne zdrojový kód spustiť.

Súčasťou cvičenia bude jednak riešenie drobných teoretických a prektických problémov, doplnenie a rozšírenie poskytnutého zdrojového SAS kódu potrebného k požadovanej štatistickej analýze uvažovaných dat, prípadne vlastné návrhy a postupy potrebné pre riešenie zadaných problémov.

Doporučená literatúra a ďalšie užitočné materiály
  • Diggle, P., Diggle, P. J., Heagerty, P., Liang, K. Y., & Zeger, S. (2002). Analysis of longitudinal data. Oxford university press.
  • Fitzmaurice, G. M., Laird, N. M., & Ware, J. H. (2012). Applied longitudinal analysis. John Wiley & Sons.
  • Hardin, J.W. and Hilbe, J.M. (2007). Generalized Linear Model and Extensions. StataPress.
  • Pinheiro, J., & Bates, D. (2006). Mixed-effects models in S and S-PLUS. Springer science & business media.

  • Jednoduchý (online) SAS tutorial (english)
  • Základný SAS OnDemand tutorial (english)
  • Stručný (Český) manuál uživatele SASu na stránke doc. Kulicha
  • Užitočné aj neužitočné príklady zdrojových kódov v SAS (english)




1. SAS OnDemand

Jedná sa viacmenej o plnohodnotnú inštaláciu programu SAS, ktorá je (registrovaným užívateľom) k dispozícii prostredníctvom online cloudu cez webové rozhranie na stranke https://welcome.oda.sas.com. Po vytvorení účtu a následnom prihlásení je pre pou#69vanie SASu potrebné už len internetové pripojenie. Podrobnejšie informácie je možné nájsť na webovej stránke
https://www.sas.com/en_us/software/on-demand-for-academics.html.


Samostatne


Ak boli všetky kroky urobené správne, zobrazí sa SAS konzola, do ktorej je už možné vkládať bloky zdrojového SAS kódu a tieto bloky následne pomocou programu SAS vyhodnotiť. Niekoľko jednoduchých ilustratívnych príkladov je uvedených v následujúcej sekcii.

Užitočné

  • V prípade, že máte program SAS nainštalovaný na počítačí/notebooku, je možné (v určitej obmedzenej miere) používať program SAS aj prostredníctvom programu R (resp. Rkového interfacu RStudio). Je nutné použiť R knižnicu `SASmarkdown’, ktorú v programe R nainštalujete a následne inicializujete pomocou dvojice príkazov

    install.packages("SASmarkdown")
    library(SASmarkdown)
  • Následne je možné použíť Rkový balíček (knižnicu) `Knitr’ a prostredníctvom programu R skompilovať (t.j., vytvoriť napr. HTML markdown, alebo PDF dokument) zdrojový Rmd súbor, ktorý ale na rozdiel od príkazov pre program R bude obsahovať príkazy pre program SAS.
  • Podrobnejšie informácie je možné nájsť napr. na oficiálnej CRAN stránke knižnice `SASmarkdown’ a príslušnej PDF dokumentácii, alebo tiež na tejto stránke.



Základná syntax programu SAS

Niekoĺko najzákladnejších informácii ohľadom základnej syntaxe používanej v programe SAS:
  • Každý příkaz SASu končí středníkem, zapomínání středníků je vždy největší potíž nezkušených uživatelů;
  • Příkazy mohou být libovolně rozděleny na více řádků v místech, pokud nejsou rozděleny uvnitř klíčového slova nebo jména;
  • Příkazy mohou mezi klíčovými slovy a jmény obsahovat libovolné množství mezer (ale aspoň jednu);
  • Na jednom řádku může být více příkazů (oddělených středníky);
  • Řádky dat se neoddělují středníky. Všechny hodnoty dat vstupující z klávesnice se považují za jeden příkaz a jsou ukončeny jedním středníkem na konci;
  • SAS nerozlišuje velká a malá písmena, s výjimkou řetězcových konstant;
  • Jména se skládají z písmen a číslic, nesmí začínat číslicí a mohou obsahovat nejvýše 8 znaků;



Pre účely výuky budú podkladové zdrojové kódy pre program R k dispozícíí v následujúcom formáte (príkazy z nasledujúceho bloku je možné jednoducho skopírovať a vložit do SAS konzoly vo webovom rozhrani SAS OnDemand—popríhlásení sa do svojho účtu):

/* jednoduchý príklad v SAS */
data example1;
ex1 = probnorm(0);
ex2 = probnorm(-1) - probnorm(1);
ex2 = probnorm(-2) - probnorm(2);
ex3 = probnorm(quantile('normal', 0.95));
run;

Dokážete vysvetliť, čo uvedená časť zdrojového kódu v SAS počíta? Dokážete interpretovať získane výsledky?

proc print data=example1; 
run; 

prípadne

proc print data=example1; 
var ex1 ex2; 
run; 



2. Základné príkazy a jednoduché príklady

Niekoľko veľmi jednoduchých, ale pre celkové porozumenie implementácie (štandardne používanej v programe SAS) celkom užitočných príkladov je možné nájsť na tejto stránke. Užitočný a pomerne intuitívny je aj SAS tutoriál na stránke https://www.tutorialspoint.com/.


Samostatne

  • Pokúste sa vytvoriť (stručný) vlastný datový súbor v programe SAS. Napríklad:

    data example2; 
    input id name $ age height; 
    datalines; 
    1 jozef 28 162
    2 petr  51 180
    3 marie 42 165
    4 filip 12 155
    5 klara 55 172
    6 tomas 42 182
    ;
    run; 
  • Použijte help, SAS tutorial, prípadne google a spočítajte niektoré popisná charakteristiky vo vytvorenom datovom súbore. Napríklad:

    proc means data=example2 mean median std var;
        var age height;
    run;
  • Použijte vytvorený datový súbor a zostrojte jednoduchý scatterplot. Napríklad:

    title 'Jednoduchý scatterplot';
    proc sgscatter  data = example2;
       PLOT height*age 
       / datalabel = name ellipse =(alpha = 0.05 type = predicted);
       title 'Výška v závislosti na věku';
    run; 
  • Pokúste sa data rozšíriť pridaním dodatočných premenných a manipuláciou/transformáciou už existujúcich premenných. Pomocou SAS tutoriálu, dokumentácie k jednotlivým procedúram, prípadne google sa pokúste vypracovať jednoduchú analýzu datového súboru (t.j., popisné charakteristiky, vhodný obrázok, prípadne nejaký štatistický test/model).



V praxi je ale podstatné pracovať s reálnymi datovými súbormi. Je preto potrebné dokázať datový súbor správne načítať do programu SAS a následne s nim dokázať pracovať. Pomocou cloudového web rozhrania SAS OnDemand je možne načítať a analyzovať aj vlastné datové súbory. Vzhľadom k licenčným podmienkam pre používanie SAS OnDemand sú ale k dispozícii pouze niektoré súborové typy—hlavne tzv. “SAS related datasets”, t.j. napr. .sas7bdat, .sd2 (SAS Data File), štandardné textové súbory, napr. .csv (comma delimited), .txt (text file), ,dat (flat data file), nebo .tab (text file).

Pre potreby výuky sa budú využívať hlavne datové súbory typu .csv a prípadne .txt.

Zoznam niekoľkých vzorových datových súborov pre program SAS je k dispozícii na následujúcej stranke:
https://support.sas.com/documentation/onlinedoc

Stiahnite si niektorý z datových súborov, ktoré sú k dispozícii na uvedenej webovej stránke (pripadne použijte niektorý z následujúcich súborov: cars.csv (cross-sectional data) nebo sm_data.csv) (longitudinálne data) a uploadujte súbor do svojho účtu v SAS OnDemand. Data sa pokúste načítať do programu SAS. Napríklad datový súbor cars.csv je možné z pracovného adresáru načítať a následne zobraziť pomocou SAS príkazov

filename reffile '/home/u63241636/sasuser.v94/data/cars.csv';

proc import datafile=reffile
    dbms=csv
    out=work.data
    replace;
    getnames=yes;
run;

a pre samotné zobrazenie:

proc print data = work.data;
run;


Ilustračný datový súbor sm_data.csv, ktorý obsahuje opakované pozorovania pacientov so sklerózou multiplex (ďalšie podrobnosti o tomto datovom súbore budú postupne v priebehu semestru), je možné načítať a zobraziť pomocou príkazov

filename reffile '/home/u63241636/sasuser.v94/data/sm_data.csv';

proc import datafile=reffile
    dbms=csv
    out=sm.data
    replace;
    getnames=yes;
    delimiter = ",";
    guessingrows=300
run;

Čo robí dotatočná parameter guessingrows=300? Načítajte data bez tohto parametru (defaultná hodnota je ``) – viac podrobnosti, ako načítať .csv súbory v programe SAS, napríklad na tejto stránka.

Dotvý súbor zobrazíme pomocou príkazov

proc print data = sm.data;
run;

resp. základnú štruktúru súboru získame pomocou príkazov:

proc contents data=sm.data; 
run;

Vzhľadom na povahu predmetu (Longitudinální a panelová data) sa v následujúcej časti stručne pozrieme práve na tento datový súbor a využijeme niektoré grafické nástroje v programe SAS, ktoré slúžia k vyzualizácii.

3. Základné grafické nástroje v programe SAS

  • Stručný popis niektorých grafických nástrov (t.j., konkrétnych procedúr) v SASe napríklad na tejto stránke;
  • Sofistikovanejší popis SAS nástrojov určených pre komplexnú vyzualizáciu datových súborov a výsledkov (štatistickej) analýzy napríklad na tejto stránke;


Samostatne

  • Využijte niektoré z dostupných grafických nástrojov v programe R a pokúste sa vyzualizovať niektoré zaujímavé charakteristiky v datovomi súbore, ktorý ste do SAS načítali.
  • Pokúste sa vytvoriť graf, ktorý bude obsahovať viac, ako pouze dve rôzne premenné (t.j., jednoduchý \(xy\) scatterplot).


V prípade časovo závislých pozorovaní býva podstatné tento fakt patrične v grafe vizualizovať. Často používané sú tzv. “subject-specific time profiles”, resp. časovo závislé profily pre jednotlivé subjekty. Jedná z mnohých možností, ako takéto profily v programe SAS získať v prípade datového súboru pacientov so sklerozou multiplex, je napríklad následujúca časť SAS kódu:

proc sgplot data=sm.data;
    series y=EDSS x=LEM1 /group=patient;
run;



Pokúste sa datový súbor vhodne upraviť a vizualizovať pouze určitú jeho časť. Napríklad, lze uvažovať pouze pacientov mužov-ženy, prípadne zjednotiť tzv. “follow-up” period od času \(t = 0\) až do času posledného merania. Uva6ujte prípadne niektorú z dodatočných premenných, ktoré sú explicitne uvedené v datovom súbore.



4. Stručné teoretické opakovanie / Samostatný úkol

Pripomeňte si teoretické základy lineárnej regresie, konkrétne:
  1. značenie a formulácia ordinálneho lineárneho (normálneho) regresného modelu;
  2. mnohonásobného (multiple, t.j., \(\boldsymbol{X} \in \mathbb{R}^p\)) regresného modelu;
  3. zobecněného lineárneho regresného modelu (GLM).

Pomocou programu SAS s Vami zvoleného konkrétneho datového súboru nafitujte linerárny regresný model typu 1., 2., aj 3. (pre jednotlivé regresné modely môžete využiť rôzne datové súbory).

Na záver, do svojho online účtu v SAS OnDemand uploadujte niekoľko datových súborov (napr. z programu R), tak aby bolo možné ich následne správne načítať do programu SAS (tieto datové súbory budú následne slúžiť ako pomocné a ilustračné data pre ďalšiu prácu v rámci semestru). Ideálne by niektoré datové súbory mali byt longitudinálneho typu.