Review: Distributed lag non-linear models (DLNM)
Author: A. Gasparrini, B. Armstrong and M. G. Kenward
Journal: Statistics in Medicine (2010)
세 줄 요약:
- Delayed effect가 있는 event의 비선형 exposure-relationship을 설명하기 위해 DLNM을 도입했다.
- R package "dlnm"으로 해당 내용이 구현되었다. [1]
- Penalization을 도입하면 더 발전될 여지가 있다. [2, 3, 4]
본문
이해를 돕기 위한 예시로, 1987년부터 2000년까지 뉴욕에서 수집된 National Morbidity, Mortality, and Air Pollution Study (NMMAPS)의 온도-사망 (temperature-mortality) 자료를 생각하자. 반응변수는 사망, 설명변수는 온도이다. 즉 평균온도가 건강에 미치는 영향이 어떻게 되는지를 살펴보고 싶다는 뜻이다. 당일의 극단적인 온도가 당일의 건강에 영향을 미치는 것과 함께, 며칠 전의 극단적인 온도도 오늘의 건강에 영향을 줄 수 있다. 이런 상황을 delayed effect가 있다고 말하고, delay를 반영하기 위해서 "lag dimension"도 함께 고려해야 잘 맞는 온도-사망 관계를 찾을 수 있다. 여기 까지 이해했다면 모델의 이름이 이제는 자연스럽게 느껴진다. Distributed lag들의 delay effect를 고려한 온도-사망 사이의 non-linear relationship을 찾는 방법이다. 기존의 방법들은 delayed effect, 온도의 effect 둘 중 하나를 간단하게(linear) 생각해서 이루어졌다. 이 논문은 두 가지 effect 모두 복잡하게 모델링할 수 있게 해준다는 점에서 그 의의를 찾을 수 있다.
DLNM의 간단한 경우로 Distributed Lag Model (DLM)을 먼저 알아보자. Non-linear를 의미하는 "N"이 빠졌으니, 온도-사망 관계를 linear하다고 가정했음을 눈치챌 수 있다. 관측된 설명변수들을 \(( x_t )_ {t = 1}^n\), 반응변수는 \(y_t\), lag의 갯수는 L이라고 하겠다. Delayed effect를 반영하기 위해서 \(Q\)라는 \(n \times (L+1)\) 모양의 행렬을 정의해야 하는데, \(t\)-번째 행은 \([x_t, x_{t-1}, \cdots, x_{t-L}]\)로 이루어져 있다. 관측된 설명변수를 열벡터로 두고, 오른쪽으로 확장해 가면서 시점을 하나씩 뒤로 밀었다고 보면 된다. 온도가 사망에 미치는 영향을 linear하다고 가정했기 때문에, \(g(\lambda) = Q\beta\)의 coefficient vector \(\beta\)를 결정해주는 일이 남았다. 이는 \(\beta = C \eta\)로 결정되는데, \(C\)는 lag vector \(\textbf{l} = [0, \cdots, L]^t\)에 spline basis같은 것을 적용하여 얻어진 \((L+1)\times \nu_l\) 모양의 행렬이고, \(\eta\)는 우리가 찾아야 할 parameter이다. \(g(\lambda) = Q\beta\)를 봤을 때 \(\beta\)는 delay effect로 해석할 수 있고, \(\beta = C\eta\)를 보면 delay effect를 lag vector \(\textbf{l}\)의 non-linear function(e.g., spline)으로 설명하려고 하는 상황이라고 볼 수 있다.
그럼 DLNM을 알아보자. 앞에서는 \(Q\)라는 design 행렬에 \(\beta\)를 곱한 모델이었다. \(Q\)의 성분들은 가공되지 않은 단순한 온도자료였으므로, 여기에 spline 같은 것을 적용하여 design 행렬을 변형해주면 non-linear 관계를 모델링 할 수 있을 것이다. \(r_j\)를 어떤 non-linear 함수(e.g., spline)를 생성하는 basis의 \(j\)번째 녀석이라고 해보자. \(Q_j\)는 위에서 정의한 \(Q\)의 각 성분에 \(r_j\)를 적용한 행렬이다. 그러면 DLM의 항이 변형된 \(g(\lambda) = Q_j C \eta\)를 고려할 수 있다. 그러나 해당 식은 다른 basis의 effect들을 고려하고 있지 않고, \(\eta\)역시 \(j\)에 의존하지 않는 다소 딱딱한 식이기 때문에, \(\sum_j Q_j C \eta_j\)로 다시 써 주게 되면 DLNM이 된다. \(W = \left[ Q_1 C \lvert \cdots \lvert Q_{\nu_x} C \right]\), \(\eta^t = [\eta_1 ^t \lvert \cdots \lvert \eta_{\nu_x}^t]\)라고 둔다면 \(g(\lambda) = W\eta\)로 쓸 수 있다. \(W\)의 모양만 이해했다면 논문의 나머지 부분을 읽는 일은 일사천리가 된다.
논문에 package "dlnm"을 이용한 예시와 그 코드가 들어있는데, lag dimension의 spline을 어떻게 설정한 것인지는 코드만 보고 알기 힘들었다. 패키지를 설명한 논문[1]에 자세한 설명이 들어있을 테니, 읽어보고 사용법을 읽혀두도록 하자.
References
- Gasparrini, A. (2011). Distributed Lag Linear and Non-Linear Models in R: The Package dlnm. Journal of Statistical Software, 43(8), 1–20. https://doi.org/10.18637/jss.v043.i08
- Eilers PHC, Currie ID, Durbn M. Fast and compact smoothing on large multidimensional grids. Computational Statistics and Data Analysis 2006; 50(1):61-76.
- Eilers PH, Gampe J, Marx BD, Rau R. Modulation models for seasonal time series and incidence tables. Statistics in Medicine 2008; 27(17):3430-3441.
- He S, Mazumdar S, Arena V. A comparative study of the use of GAM and GLM in air pollution research. EnvironMetrics 2006; 17(1):81-93.