Letný semester 2025 | Cvičenie 1 | 17.02.2025
Cvičenie k predmetu NMST422 prebieha štandardne 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 kopírovať do webového rozhrania SAS OnDemand a následne zdrojový kód spustiť.
Súčasťou cvičenia bude jednak riešenie teoretických a praktických
problémov, dopĺňovanie a rozšírovanie znalosti z prednášky, práca s
programom SAS kódu a štatistická analýza podkladových dat, prípadne
vlastné návrhy a postupy potrebné pre riešenie zadaných problémov.
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 www stránke
https://welcome.oda.sas.com.
Po vytvorení účtu a následnom prihlásení je pre používanie programu SAS
potrebné 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.
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.
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)
Pre účely výuky budú podkladové zdrojové kódy pre program SAS 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—po príhlásení sa do svojho účtu—a následne spustiť):
/* 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;
Pokúste sa vysvetliť, čo uvedená časť zdrojového kódu v SAS počíta?
Dokážete interpretovať získané výsledky?
Použijte následujúci príkaz
proc print data=example1;
run;
a prípadne tiež príkaz
proc print data=example1;
var ex1 ex2;
run;
Niekoľko jednoduchých, ale pre celkové porozumenie implementácie (štandardne používanej v programe SAS) 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 webovej stránke https://www.tutorialspoint.com/.
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 (exploratívne štatistiky) 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;
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 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 budeme 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/uXXX/sasuser.v94/data/cars.csv';
proc import datafile=reffile
dbms=csv
out=work.data
replace;
getnames=yes;
run;
V zdrojovom kóde vyššie je potrebné nahradiť výraz XXX
príslušným užívateľským číslom (jednoznačné pre každého užívateľa),
ktore vznikne registrácioiu do SAS OnDemand.
Datový súbor zobrazíme napr. pomocou príkazu
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ú diskutované postupne v priebehu semestru), je možné načítať a zobraziť pomocou príkazov
filename reffile '/home/uXXX/sasuser.v94/data/sm_data.csv';
proc import datafile=reffile
dbms=csv
out=work.data
replace;
getnames=yes;
guessingrows=300;
run;
proc print data = work.data;
run;
Pozrite sa na funkcionalitu dotatočného parameteru
guessingrows=300
použitom v príkaze vyššie. Načítajte data
bez tohto parametru (defaultná hodnota je 20
) a podrobne
preskúmajte načítane data – viac užitočných podrobnosti, ako správne
načítať .csv súbory v programe SAS, je možné nájsť napríklad na
tejto
stránka.
Základnú štruktúru súboru získame pomocou príkazu
proc contents data=work.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.
V prípade časovo závislých pozorovaní býva podstatné tento fakt patrične v grafe vizualizovať. Často používané sú napr. tzv. “subject-specific time profiles”, resp. časovo závislé profily pre jednotlivé (neávsilé) subjekty. Jedná z mnohých možností, ako takéto profily v programe SAS získať, je napríklad následujúca časť SAS kódu:
proc sgplot data=work.data;
series y=EDSS x=LEM1 /group=patient;
run;
proc sgplot data=work.data;
reg x=EDSS y=LEM1 / group=PDMT;
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. Uvažujte prípadne niektorú z dodatočných premenných, ktoré sú explicitne uvedené v datovom súbore.
Následujúci kód načíta datový súbor v programe SAS, vypíše základné charakteristiky a a vykresli individuálne profily (resp. skupinové regresné priamky):
FILENAME rats '/home/uXXX/sasuser.v94/data/rats.csv';
proc import datafile = rats
dbms = csv
out = rats;
getnames = yes;
run;
proc print data = rats;
run;
proc contents data = rats;
run;
proc sgplot data=rats;
series y=resp x=time /group=subject;
reg x=time y=resp / group=group;
run;
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.