Letný semester 2025 | Cvičenie 5 | 24.03.2025
Prihlásenie k SAS OnDemand:
https://www.sas.com/en_us/software/on-demand-for-academics.html
Nutná je registrácia s vytvorením vlastného účtu s jedinečným
identifikačným číslom a potvrdenie registrácie prostredníctvom emailu.
Identifikačné číslo užívateľa (vo forme
uXXX, kde
XXX je samotné číslo uživateľa)
sa objavuje v niektorých následujúcich SAS skriptoch. Symbol
XXX v zdrojových kódoch je
potrebné vždy nahradiť príslušným identifikačným číslom užívateľa.
V praxi sa často štatistík stretáva s longitudinálnymi datami, ktoré
nie sú balancované (tzv., počet opakovaných pozorovaní v rámci jedného
subjektu je pre rôzne subjekty rôzna). Z tohto dôvodu nie je možné
aplikovať mnohorozmerné štatistické postupy (napr. tie, ktoré boli
explicitne zmienené na predchádzajúcich cvičeniach). Je nutné využiť iné
stochastické/pravdepodobnostné modely a iné štatistické postupy, ktoré
umožnia pracovať aj s nebalancovanými longitudinálnymi pozorovaniami.
Základným štatistickým (regresným) nástrojom pre analýzu longitudinálnych (nie nutne balancovaných) dat je tzv. (lineárny) regresný model s náhodnými efektmi. Jedná sa o rozšírenie klasického lineárneho regresného modelu, definovaného (maticovo) ako \boldsymbol{Y} = \mathbb{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon}, kde \boldsymbol{Y} = (Y_1, \dots, Y_N)^\top predstavuje vektor (nezávislých) pozorovaní závislej premennej/veličiny Y (celkovo pre N \in \mathbb{N} rôznych, t.j., nezávislých subjektov), matica \mathbb{X} je tzv. regresná (dizajnová )matica modelu a vektor \boldsymbol{\beta} \in mathbb{R}^p predstavuje neznáme parametre, ktoré je potrebné odhadnúť. Chybový člen \boldsymbol{\varepsilon} = (\varepsilon_1, \dots, \varepsilon_N)^\top predstavuje vektor nepozorovaných náhodných chýb a väčšinou sa predpokláda, že \varepsilon_i \sim N(0, \sigma^2), pre nejaký nezámy parameter rozptylu \sigma^2 > 0. Neznáme parametre \boldsymbol{\beta} = (\beta_1, \dots, \beta_p)^\top sa často označujú aj ako pevné efekty. U lineárneho regresného modelu s náhodnými efektmi navyše vystupujú tzv. náhodné efekty a celkový (marginálny) model je možné zapísať v (maticovom) tvare ako \boldsymbol{Y} = \mathbb{X}\boldsymbol{\beta} + \mathbb{Z}\boldsymbol{b} + \boldsymbol{\varepsilon}, avšak v tejto formulácii predstavuje \boldsymbol{Y} = (Y_{11}, \dots, Y_{i n_1}, Y_{21}, \dots, Y_{Nn_N})^\top \in \mathbb{R}^{\sum n_i}( vektor závislej premennej Y nameranej jednak pre N \in \mathbb{N} nezávislých subjektov, ale zároveň aj n_i \in \mathbb{N} opakovaných pozorovaní v rámci každého subjektu i \in \{1, \dots, N\}. Celkový počet pozorovaní je teda \mathcal{N} = \sum_{i = 1}^N n_i.
Regresná matica \mathbb{X} je
typu \mathcal{N} \times p, pre
vektor neznámych parametrov (pevných efektov) platí \boldsymbol{\beta} \in \mathbb{R}^p a
matica \mathbb{Z} je typu \mathcal{N} \times Nq a prislúcha
náhodnym efektom \boldsymbol{b} =
(\boldsymbol{b}_1^\top, \dots, \boldsymbol{b}_N^\top)^\top \in
\mathbb{R}^{Nq}, kde \boldsymbol{b}_i = (b_{i 1}, \dots, b_{i q})^\top
\in \mathbb{R}^q reprezentuje tzv. ``subject-specific’’ náhodné
efekty pre každé i \in \{1, \dots,
N\}. Všimnite si, že dimenzia (počet) náhodných efektov je pre
každý subjekt rovnaká, t.j. q \in
\mathbb{N}.
Základný princíp lineárneho regresného modelu s náhodnými efektami môže byť dobre ilustrovaný pomocou tzv. dvoj-fázoveho regresného modelu.
Idea modelovania longitudinálnych dat pomocou dvojfázoveho postupu je založená na dvoch samostatných (regresných) krokoch:
Uvažujúc značenie zavedené vyššie, v prvom kroku sa jedná o N \in \mathbb{N} nezávislých regresných modelov (vzhľadom k nezávislosti jednotlivých subjektov), ktoré pre každý subjekt i \in \{1, \dots, N\} môžeme zapísať ako \boldsymbol{Y}_i = (Y_{i 1}, \dots, Y_{i n_i})^\top = \mathbb{Z}_i\boldsymbol{\beta}_{i} + \boldsymbol{\varepsilon}_{i}, kde vektor neznámych parametrov \boldsymbol{\beta}_i \in \mathbb{R}^q je špecifický pre každý subjekt i \in \{1, \dots, N\} (teda \boldsymbol{\beta}_i sú obecně rôzne), \mathbb{Z}_i je príslušná regresná matica modelu a pre vektor chýb (vzhľadom ku korelovanosti/závislosti opakovaných pozorovaní v rámci subjektu) predpokládame napr. že platí \boldsymbol{\varepsilon}_i = \left( \begin{array}{c} \varepsilon_{i 1}\\ \vdots\\ \varepsilon_{i n_i} \end{array} \right) \sim N_{n_i}(\boldsymbol{0}, \Sigma_i), kde \Sigma_i \in \mathbb{R}^{n_1 \times n_i} je pozitívne-definitná variačná-kovariančná matica (opäť obecně rôzna pre jednotlivé subjekty). Náhodný vektor \boldsymbol{\varepsilon}_i \sim N_{n_i}(\boldsymbol{0}, \Sigma_i) popisuje tzv. within-subject variability v datach (t.j., variabilitu v rámci jednotlivých subjektov).
Pre ilustráciu uvažujme datový súbor s opakovanými meraniami
pacientov so sklerózou multiplex a pre každého pacienta samostatne
uvažujme lineárny regresný model (v programe R) pre časovú závislost
premennej EDSS. Z výsledných fitovaných regresných modelov nás ale
zaujímajú hlavne odhadnuté neznáme (subject-specific) parametre. Nad
rámec týchto parametrov zaznamenáme aj pohlavie každého pacienta (t.j.,
muž = 1
a žena = 2
).
sm <- read.csv(url("https://www2.karlin.mff.cuni.cz/~maciak/NMST422/sm_data2.csv"), header = T)
BETA <- NULL
for (subject in 1:140){
m <- lm(EDSS ~ time, data = sm[sm$id == subject,])
if (sm$gender[sm$id == subject][1] == "M"){
BETA <- rbind(BETA, c(m$coeff, 1, sm$age[sm$id == subject][1]))
} else {
BETA <- rbind(BETA, c(m$coeff, 2, sm$age[sm$id == subject][1]))
}
}
Odhadnuté regresné parametre pre všetkých 140 pacientov (každý z
uvažovaných pacientov má k dispozícii aspoň dva opakované pozorovania a
tiež platí, že \boldsymbol{\beta}_i \in
\mathbb{R}^2, pretože odhadujeme intercept a smernicu pre
lineárnu závislosť EDSS' na čase
time`).
Následne sa môžeme graficky pozrieť na odhadnuté
`subject-specific'' parametre individuálných regresných modelov a prípadne pomocou funkcie
lowess()`
(neparametrické vyhladzovanie dat) zohadní aj dodatočnú informáciu o
pohlaví.
plot(BETA[,2] ~ BETA[,1], pch = 21, bg = BETA[,3], xlab = "Intercept", ylab = "Smernica")
lines(lowess(BETA[BETA[,3] == 1, 2] ~ BETA[BETA[,3] == 1,1]), col = 1, lwd = 2)
lines(lowess(BETA[BETA[,3] == 2, 2] ~ BETA[BETA[,3] == 2,1]), col = 2, lwd = 2)
legend("topleft", legend = c("male", "female"), lwd = c(2,2), col = c(1,2))
par(mfrow = c(1,2))
plot(BETA[,1] ~ BETA[,4], pch = 21, bg = BETA[,3], xlab = "Vek [roky]", ylab = "Intercept")
lines(lowess(BETA[BETA[,3] == 1, 1] ~ BETA[BETA[,3] == 1,4]), col = 1, lwd = 2)
lines(lowess(BETA[BETA[,3] == 2, 1] ~ BETA[BETA[,3] == 2,4]), col = 2, lwd = 2)
legend("topleft", legend = c("male", "female"), lwd = c(2,2), col = c(1,2))
plot(BETA[,2] ~ BETA[,4], pch = 21, bg = BETA[,3], xlab = "Vek [roky]", ylab = "Smernica")
lines(lowess(BETA[BETA[,3] == 1, 2] ~ BETA[BETA[,3] == 1,4]), col = 1, lwd = 2)
lines(lowess(BETA[BETA[,3] == 2, 2] ~ BETA[BETA[,3] == 2,4]), col = 2, lwd = 2)
legend("topleft", legend = c("male", "female"), lwd = c(2,2), col = c(1,2))
V druhom kroku sa odhadnuté subject-specific parametre \widehat{\boldsymbol{\beta}_i} (resp. variabilitu medzi subjektvami – t.j., between-subject variabilitu) vysvetliť pomocou druhého regresného modelu, ktorý je možné matematicky (teoretický model) formulovať ako \boldsymbol{\beta}_i = \mathbb{K}_i\boldsymbol{\beta} + \boldsymbol{b}_i, pričom platí, že \boldsymbol{\beta}_i \in \mathbb{R}^q, regresná matica \mathbb{K}_i \in \mathbb{R}^{q \times p} je opäť tzv. subject-specific (a je typu q \times p), vektor neznámych parametrov \boldsymbol{\beta} \in \mathbb{R}^p popisuje rozdiely medzi pacientmi (s analogickou interpretáciou, ako v štandardnom lineárnom regresnom modeli) a náhodné chyby \boldsymbol{b}_i \sim N_q(\boldsymbol{0}, \mathbb{D}) modelujú variabilitu medzi jednotlivými subjektami – t.j., tzv. between-subject variabilitu.
Z hľadiska lineárneho regresného modelu nás zaujímajú následujúce regresné modely:
summary(lm(BETA[,1] ~ BETA[,3]))
##
## Call:
## lm(formula = BETA[, 1] ~ BETA[, 3])
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8676 -1.0338 0.1324 1.2662 3.0043
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0014 0.5038 7.942 6.24e-13 ***
## BETA[, 3] -0.1338 0.2842 -0.471 0.639
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.519 on 138 degrees of freedom
## Multiple R-squared: 0.001603, Adjusted R-squared: -0.005632
## F-statistic: 0.2216 on 1 and 138 DF, p-value: 0.6386
summary(lm(BETA[,2] ~ BETA[,3]))
##
## Call:
## lm(formula = BETA[, 2] ~ BETA[, 3])
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.66969 -0.06969 -0.06214 0.08031 0.58031
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.054595 0.066645 0.819 0.414
## BETA[, 3] 0.007548 0.037593 0.201 0.841
##
## Residual standard error: 0.2009 on 138 degrees of freedom
## Multiple R-squared: 0.000292, Adjusted R-squared: -0.006952
## F-statistic: 0.04031 on 1 and 138 DF, p-value: 0.8412
V predchádzajúcom dvoj-fázovom regresnom modelováni bol vektor
opakovaných pozorování vrámci konkrétneho subjektu i \in \{1, \dots, N\} sumarizovaný
pomocou (``summary statistic’’) odhadnutého vektoru parametrov \widehat{\boldsymbol{\beta}_i} \in
\mathbb{R}^q a následne (v druhej fáze) jednotlivé odhadnuté
parametre \widehat{\boldsymbol{\beta}_1},
\dots, \widehat{\boldsymbol{\beta}_n} boli sumarizované
prostredníctvom odhadnutého vektoru parametrov \widehat{\boldsymbol{\beta}} \in
\mathbb{R}^p.
Uvažujeme teda dva lineárne regresné modely:
Oba modely je možné uvažovať dohromady, resp. \left. \begin{array}{c} \boldsymbol{Y}_i = \mathbb{Z}_i\boldsymbol{\beta}_i + \boldsymbol{\varepsilon}_i\\ \boldsymbol{\beta}_i = \mathbb{K}_i\boldsymbol{\beta} + \boldsymbol{b}_i\\ \end{array} \right\} \Longrightarrow \boldsymbol{Y}_i = \mathbb{Z}_i \mathbb{K}_i\boldsymbol{\beta} + \mathbb{Z}_i\boldsymbol{b}_i + \boldsymbol{\varepsilon}_i, čo je základná formulácia (definícia) lineárneho regresného modelu s náhodnými efektami \boldsymbol{b}_i \sim N_q(\boldsymbol{0}, \mathbb{D}) a zároveň \boldsymbol{\varepsilon}_i \sim N_{n_i}(\boldsymbol{0}, \Sigma_i). Navyše sa štandardne predpokladá aj vzájomná nezávislosť medzi chybovými členmi, t.j. medzi náhodnými vektormi \boldsymbol{\varepsilon}_1, \dots, \boldsymbol{\varepsilon}_N, \boldsymbol{b}_1, \dots, \boldsymbol{b}_N.
Ak označíme maticu \mathbb{Z}_i\mathbb{K}_i ako \mathbb{X}_i a združíme všetky subjekty
i \in \{1, \dots, N\} do jedného
modelu prostredníctvom vektoru závislých pozorovaní \boldsymbol{Y} = (\boldsymbol{Y}_1^\top, \dots,
\boldsymbol{Y}_N^\top)^\top \in \mathbb{R}^\mathcal{N}, tak
získame výsledný model v tvare
\boldsymbol{Y} = \mathbb{X}\boldsymbol{\beta} + \mathbb{Z}\boldsymbol{b}
+ \boldsymbol{\varepsilon},
kde regresna matica \mathbb{X} \in
\mathbb{R}^{\mathcal{N} \times p} (prislúchajúca pevným
efektom) je definovaná ako
\mathbb{X} = (\mathbb{X}_1^\top, \dots, \mathbb{X}_N^\top)^\top
a regresná matica \mathbb{Z} \in
\mathbb{R}^{\mathcal{N} \times Nq} (prislúchajúca náhodným
efektom \boldsymbol{b} =
(\boldsymbol{b}_1^\top, \dots, \boldsymbol{b}_N^\top)), je
definovaná ako
\mathbb{Z} =
\left(
\begin{array}{cccc}
\mathbb{Z}_1 & \boldsymbol{0} & \dots & \boldsymbol{0}\\
\boldsymbol{0} & \mathbb{Z}_2 & \dots & \boldsymbol{0}\\
\vdots & \vdots & \ddots & \vdots\\
\boldsymbol{0} & \boldsymbol{0} & \dots & \mathbb{Z}_N
\end{array}
\right).
V súvislosti s lineárnym regresným modelom s náhodnými efektami sa v literatúre uvádzajú dve analogické, ale nie ekvivalentné formulácie: tzv. hierarchický model, ktorý špecifikuje podmienené rozdelenie \boldsymbol{Y}_i|\boldsymbol{b}_i a rozdelenie náhodných efektov \boldsymbol{b}_i;
Druhou formuláciou je tzv. marginálny model, ktorý priamo špecifikuje rozdelenie náhodných vektorov \boldsymbol{Y}_i. Zamyslite sa nad jednotlivými formuláciami a premyslite výhody a nevýhody jednotlivých zápisov.Pre ilustráciu lineárneho modelu s náhodnými efektami využijeme opäť datový súbor s pacientami so sklerózou multiplex. Data načítame do programu SAS:
libname sm '/home/uXXX/sasuser.v94';
filename reffile '/home/uXXX/sasuser.v94/data/sm_data2.csv';
proc import datafile=reffile
dbms=csv
out=sm.data
replace;
getnames=yes;
run;
proc print datafile = sm.data;
run;
a pomcou procedúry ´proc mixed
nodhadneme parametre
príslušného lineárneho modelu (najprv bez náhodných efektov ale s
explicitnou špecifikáciou štruktúry opakovaných pozorovaní – AR(1)
proces).
data sm.data2;
set sm.data;
timeCls = time;
run;
proc mixed data = sm.data2 method = ml;
class gender timeCls;
model EDSS = gender time*gender / s;
repeated timeCls / type = AR(1) subject = id;
run;
proc mixed data = sm.data2 method = ml;
class gender(ref = "F") timeCls;
model EDSS = gender time*gender / s;
repeated timeCls / type = AR(1) subject = id;
run;
Následne skusíme špecifikovať maticu náhodných efektov \mathbb{Z} pomocu tzv. ‘random statement’,
proc mixed data = sm.data2 method = reml;
class gender(ref = "F") timeCls;
model EDSS = gender time*gender / s;
random intercept / subject = id v g cl solution;
run;
Porovnajte model vyššie s následujúcim modelom (a prípadne využijte
parameter noint
v “model statement”):
proc mixed data = sm.data2 method = ml;
class gender(ref = "F") timeCls;
model EDSS = gender time*gender / s;
repeated timeCls / type = AR(1) subject = id;
random intercept / subject = id v g cl solution;
run;
proc mixed
napr.
na
tejto
stránke. Čo je výstupom tejto funkcie a ako jednotlivé časti výstupu
interpretovať?