第 27 章

連續時間模型

前面每一個動態模型都共有一項隱藏的依賴,而本章要把它拖到光底下。一個交叉延宕追蹤 (cross-lagged panel) 模型的延宕係數、一個向量自我迴歸的自我迴歸 (autoregression)、一份日記研究的延續效果 (carryover),全都是「觀察之間那個間隔」的函數,於是兩份研究即使針對的是同一個歷程 (process),一份隔一個月測、一份隔六個月測,估出來的數字就不一樣,甚至還會在「兩個變項中哪一個領先」這件事上彼此矛盾。這不是一個加註腳就打發得掉的麻煩,而是對整片文獻可比較性 (comparability) 的一項威脅。連續時間 (continuous-time) 模型的解法是拒絕在「製造出這個問題的那種離散步伐」裡工作。它不用一個綁在單一間隔上的延宕係數,而是直接以一個漂移矩陣 (drift matrix) 為底下的歷程本身參數化 (parameterize),那個矩陣支配這個系統如何在時間中流動;而它把觀察的時點,不管多不規則,都當成資料而不是一格固定的網格。任何間隔上的離散效果,於是由漂移經由單一個關係還原出來,也就是矩陣指數 (matrix exponential),它扮演的是一個延宕翻譯器。本章的工作先是說服,讓讀者相信間隔依賴 (interval dependence),也就是第 20 章所稱的區間依賴,是真的、也是有後果的,這由「效果對間隔曲線」承擔,而那張圖應該成為每一位讀者的反射;接著是賦能,讓讀者相信連續時間模型是配適得出來的、可以透過一次擾動 (perturbation) 的半衰期 (half-life) 被解讀,而且正因為它交出了一種通貨 (currency),也就是漂移矩陣,設計不同的研究終於可以互相比較,它才值得那份概念上的額外成本。它的引擎就是第 26 章的狀態空間 (state-space) 形式,只是轉移改由一個微分方程 (differential equation) 支配,所以那套做法早就在手上了。

學習目標

讀完本章之後,你應該能夠:(1) 透過 \(\boldsymbol{\Phi}(\Delta t) = e^{\mathbf{A}\Delta t}\) 這個關係示範並解釋間隔依賴,並指出一個交叉延宕的結論如何隨間隔而改變;(2) 解讀漂移矩陣 \(\mathbf{A}\),把它為負的對角線讀成回復速率 (mean-reversion rate)、半衰期為 \(\ln 2 / |a_{ii}|\),把非對角線讀成連續時間的耦合 (coupling),並一併解讀擴散 (diffusion);(3) 把一個配適好的連續時間模型翻譯成任何間隔上隱含的離散效果,交出效果對間隔曲線;(4) 把 Ornstein-Uhlenbeck 歷程讀成一個帶著平衡點 (equilibrium) 與回復速率的連續時間 AR(1);(5) 對單一受試者、密集與不等間隔追蹤資料配適連續時間模型,並還原出逐人的半衰期;(6) 診斷識別 (identification) 與取樣率 (sampling rate) 的現實,包括振盪的漂移與疊頻 (aliasing);(7) 判斷連續時間建模什麼時候值得它相對於第 25 章離散化策略的額外成本。

27.1 間隔的醜聞

推動整章的那個令人不安的事實是:一個離散時間的動態係數,離開它的間隔就沒有意義。設想一個連續的歷程 (process),其中壓力隨時間把負向情緒往上推。三支研究團隊研究它,一支每半個時間單位取樣一次,一支每兩個單位,一支每四個單位,而每一支都配適一個交叉延宕 (cross-lag) 模型並報告壓力對後來負向情緒的效果。圖 27.1 呈現他們找到的東西:交叉延宕效果分別是 \(0.10\)、\(0.19\) 與 \(0.14\)。這三支團隊看起來彼此不合,而一位比對他們論文的讀者可能會斷定這個效果很脆弱、或者這些研究互相牴觸,然而事實上三者都是同一個底層系統在不同取樣率下的正確估計值。離散的交叉延宕不是這個歷程單獨的性質,它是「歷程乘上間隔」的性質,而報告它卻不報告間隔,就像報告一個速度卻不給時間單位。

間隔的醜聞:一個真相、三種發現。
圖 27.1 間隔的醜聞:一個真相、三種發現。

註:三份研究看的是同一個連續時間系統,取樣間隔分別為 \(0.5\)、\(2\) 與 \(4\) 個時間單位,報出來的交叉延宕效果卻差了大約兩倍。沒有一份是錯的;每一份都只是在不同的間隔上讀同一個底層歷程。離散的交叉延宕離開它的間隔就沒有意義。

產生這種行為的那個關係就是本章的主方程式,而它值得在形式地認識之前先在數值上見一面。如果底層的連續動態由一個漂移矩陣 (drift matrix) \(\mathbf{A}\) 支配,那麼跨越一個間隔 \(\Delta t\) 的離散轉移矩陣 (transition matrix),也就是一個離散模型在那個間距上會估出來的自我迴歸與交叉延宕所構成的矩陣,就是矩陣指數 (matrix exponential) \(\boldsymbol{\Phi}(\Delta t) = e^{\mathbf{A}\Delta t}\)。把單一個漂移矩陣餵進這個關係、跑過一整排間隔,就得到圖 27.2 的效果對間隔曲線,那是本章的核心圖,也是要內化下來的那一張。自效果 (auto-effect),也就是對角線上的元素,隨著間隔變長而由 \(1\) 單調衰減 (decay) 到零,因為一個變項對它自己遙遠過去的依賴會淡去。交叉效果 (cross-effect),也就是非對角線上的元素,做的事情更有意思:它在極短的間隔上從接近零開始,因為影響還沒有時間累積 (accumulate),接著在一個中等的間隔上升到高峰,這裡靠近 \(\Delta t = 2\),然後隨著整個系統被沖淡而下降。一份在極短間隔上取樣的研究幾乎找不到交叉效果,可能會斷定它不存在;一份落在高峰上的研究會發現它很強;一份在長間隔上的研究則會發現它又變弱了。存在一個「效果最容易被偵測到」的最適間隔 (optimal interval),這是 Dormann and Griffin (2015) 發展出來的一點,而一份離散研究所報告的那個單一數字,只是這條曲線上的一個抽樣 (draw)。在帶有回饋 (feedback) 的系統裡,兩條交叉效果甚至會隨間隔改變它們的大小順序,於是「哪一個變項看起來領先」竟取決於間距,這是 Kuiper and Ryan (2018) 分析過的一項危害。這一點把第 20 章為潛在變化分數提出的間隔告誡、第 21 章的跨研究可比較性問題,以及第 25 章的離散化 (discretization) 粗化 (coarsening),全都重新框成同一個底層真相的不同側面。

每一個離散效果都是觀察間隔的函數。
圖 27.2 每一個離散效果都是觀察間隔的函數。

註:一個固定的漂移矩陣經由 \(\boldsymbol{\Phi}(\Delta t) = e^{\mathbf{A}\Delta t}\) 所隱含的離散自效果與交叉效果,畫成間隔 \(\Delta t\) 的函數。自效果單調衰減;交叉效果升到靠近 \(\Delta t = 2\) 的高峰之後下降。任何一份離散研究都只報出這些曲線上的一個點。這是本章的反射圖。

27.2 連續時間模型

這些曲線底下的模型是一個隨機微分方程 (stochastic differential equation),而它的符號帶著能夠撐過形式化的心理學意義。以 \(\boldsymbol{\eta}(t)\) 表示在連續時間 \(t\) 上的潛在狀態 (latent state) 向量,方程式 \(d\boldsymbol{\eta}(t) = \big(\mathbf{A}\,\boldsymbol{\eta}(t) + \mathbf{b}\big)\,dt + \mathbf{G}\,d\mathbf{W}(t)\) 有三個部分。漂移項 \(\mathbf{A}\,\boldsymbol{\eta}(t)\,dt\) 是決定性 (deterministic) 的那份拉力:在任何一個瞬間,系統都被拉向一個由「漂移矩陣作用在當下狀態上」所設定的方向,而對一個會回復到平衡點的歷程來說,這份拉力是往平衡點回去。截距 \(\mathbf{b}\) 決定那個平衡點的位置。擴散項 \(\mathbf{G}\,d\mathbf{W}(t)\) 是持續不斷的隨機輸入,是創新 (innovation) 在連續時間中的對應物,其中 \(\mathbf{W}(t)\) 是一個 Wiener 歷程 (Wiener process),也就是連續時間中的隨機漫步 (random walk),它的增量是獨立且高斯的,是那些讓系統一直活著的、永不停歇的小衝擊 (shock) 的來源。要使用這個模型並不需要測度論 (measure theory):漂移是系統被拉往哪裡,擴散是它一路上被搖晃得多厲害。

漂移矩陣是要被解讀的那個物件,而它的對角線正是本章交得出來最可解讀的通貨。一個為負的對角元素 \(a_{ii}\) 是一個回復速率:它越負,這個變項在受擾動之後被拉回平衡點 (equilibrium) 的速度就越快。那個速率翻譯成一個半衰期 (half-life),也就是一次擾動衰減到一半大小所需要的時間,由 \(\ln 2 / |a_{ii}|\) 給出,正是第 24 章對自我迴歸做過的那個詮釋動作,只是現在在連續時間裡、而且不依賴任何取樣間隔。一個 \(-0.40\) 的漂移自效果對應到 \(1.73\) 個時間單位的半衰期;一個 \(-0.60\) 的則對應到 \(1.16\)。非對角的元素是連續時間的交叉效果,是一個變項對另一個變項的瞬時耦合,而它們帶著與第 25 章離散交叉延宕相同的詮釋紀律:它們是條件的 (conditional)、嵌在系統裡的量,不是孤立的因果 (causal) 箭號,而且沒有標準化 (standardization) 就不可以跨「量尺不同的變項」比較。表 27.1 把連續與離散兩套詞彙並排,表 27.2 則連同半衰期一起解讀那些漂移參數。

表 27.1 離散時間與連續時間的對應。

離散時間的物件連續時間的物件兩者的關係
轉移矩陣 \(\boldsymbol{\Phi}(\Delta t)\)漂移矩陣 \(\mathbf{A}\)\(\boldsymbol{\Phi}(\Delta t) = e^{\mathbf{A}\Delta t}\)
自我迴歸 \(\phi_{ii}(\Delta t)\)回復速率 \(a_{ii}<0\)半衰期 \(\ln 2 / |a_{ii}|\)
交叉延宕 \(\phi_{ij}(\Delta t)\)連續的交叉效果 \(a_{ij}\)對 \(\Delta t\) 非單調
創新共變數 \(\mathbf{Q}(\Delta t)\)擴散 \(\mathbf{G}\mathbf{G}^{\top}\)Van Loan 積分
截距平衡點 \(-\mathbf{A}^{-1}\mathbf{b}\)長期的平均數

註:漂移矩陣是那個與間隔無關的參數化方式;任何間距上的離散轉移都由矩陣指數還原出來。擴散是創新共變數在連續時間中的來源,而創新共變數本身仍然依賴間隔。

表 27.2 解讀漂移矩陣,連同半衰期。

漂移元素數值半衰期讀法
\(a_{\text{壓力}}\)(自效果)\(-0.40\)\(1.73\)壓力以 \(1.73\) 個單位的半衰期回復到平衡點
\(a_{\text{負向情緒}}\)(自效果)\(-0.60\)\(1.16\)負向情緒回復得更快,半衰期 \(1.16\)
\(a_{\text{負向情緒,壓力}}\)(交叉)\(+0.25\)–壓力持續不斷地把負向情緒往上推
\(a_{\text{壓力,負向情緒}}\)(交叉)\(0.00\)–在這個系統裡,情緒對壓力沒有回饋

註:自效果是被讀成半衰期的回復速率,是那個與間隔無關、可解讀的通貨。交叉效果是連續的耦合,它在任何間隔上的離散大小都跟著效果對間隔曲線走。數值取自 ct_sim。表中「不適用」以短橫線標示。

連續時間之所以能夠涵蓋任何間距,理由在那個精確的離散解。跨越一個間隔 \(\Delta t\),這個歷程精確地滿足 \(\boldsymbol{\eta}_{t} = e^{\mathbf{A}\Delta t}\,\boldsymbol{\eta}_{t-1} + \mathbf{w}_t\),其中 \(\mathbf{w}_t\) 是高斯的,而它的共變數本身是擴散在這個間隔上的一個積分,由基礎概念方塊記下的 Van Loan 方法算出。這意味著同一個漂移矩陣同時在每一個間隔上都生成正確的離散動態,於是一份間距混雜的資料,日間有短的空隙、跨夜有一段長的空隙,處理起來不必假裝那些空隙相等。測量那一層就是第 26 章的狀態空間觀察方程式:連續的狀態透過一個負荷量矩陣 (loading matrix) 被帶著測量誤差 (measurement error) 觀察到;而配適這個模型的引擎,就是那一章的卡爾曼濾波器 (Kalman filter),只是轉移矩陣在每一個時點依它自己的間隔重新算過。Ornstein-Uhlenbeck 歷程,也就是連續時間的一階自我迴歸 (first-order autoregressive, AR(1)),是那個純量 (scalar) 情形,也是建立直覺最好的起點。圖 27.3 呈現它的樣本路徑:每一條都以自效果所設定的速率被拉回平衡點,永遠被擴散推開、也永遠被拉回來,而半衰期標示出一次偏離衰減得多快。它的定態 (stationary) 分配有一個變異數,基礎概念方塊會給出;而整幅圖像把第 9 與第 20 章預告過的向量場 (vector field) 與吸引子 (attractor) 直覺形式化了。

Ornstein-Uhlenbeck 歷程:連續時間的回復到平衡點。
圖 27.3 Ornstein-Uhlenbeck 歷程:連續時間的回復到平衡點。

註:一個 Ornstein-Uhlenbeck 歷程的四條樣本路徑,那就是連續時間的 AR(1)。每一條都以自效果所設定的速率被拉向平衡點(藍線),並被擴散搖晃;陰影帶是一個定態標準差。半衰期,也就是那支紅色箭號,是回復速率可解讀的摘要。

基礎概念 • 矩陣指數、精確的離散解,與 OU 的變異數

矩陣指數由與純量情形相同的級數定義,\(e^{\mathbf{A}\Delta t} = \mathbf{I} + \mathbf{A}\Delta t + \tfrac{1}{2}(\mathbf{A}\Delta t)^2 + \tfrac{1}{6}(\mathbf{A}\Delta t)^3 + \cdots\);而對一個可對角化 (diagonalizable) 的漂移 \(\mathbf{A} = \mathbf{V}\boldsymbol{\Lambda}\mathbf{V}^{-1}\),它乾淨地算成 \(\mathbf{V}\,e^{\boldsymbol{\Lambda}\Delta t}\,\mathbf{V}^{-1}\),其中 \(e^{\boldsymbol{\Lambda}\Delta t}\) 只是把那些特徵值 (eigenvalue) 取指數。對純量漂移 \(a = -0.40\) 與 \(\Delta t = 2\),這給出 \(e^{-0.8} = 0.449\),也就是一份延宕兩個單位的研究會估出來的離散自我迴歸。精確的離散解隨之而來:把這個隨機微分方程在 \([t-\Delta t, t]\) 上積分,得到 \(\boldsymbol{\eta}_t = e^{\mathbf{A}\Delta t}\boldsymbol{\eta}_{t-1} + \mathbf{w}_t\),其中 \(\mathrm{Cov}(\mathbf{w}_t) = \int_0^{\Delta t} e^{\mathbf{A}s}\,\mathbf{G}\mathbf{G}^{\top}\,e^{\mathbf{A}^{\top}s}\,ds\),也就是被積分過的擴散;它不必作數值積分,用 Van Loan 的把戲即可取得:把區塊矩陣 \(\left[\begin{smallmatrix} -\mathbf{A} & \mathbf{G}\mathbf{G}^{\top} \\ \mathbf{0} & \mathbf{A}^{\top}\end{smallmatrix}\right]\Delta t\) 取指數,再由它右上區塊乘上轉移矩陣讀出那個共變數。至於純量的 Ornstein-Uhlenbeck 歷程,它的定態變異數是 \(\sigma^2 = -g^2/(2a)\),於是回復越強(\(a\) 越負)或擴散越弱,平衡帶就越緊,那正是 \(\sigma^2_\varepsilon/(1-\phi^2)\) 在連續時間中的對應物。

整個系統的性格由漂移矩陣的特徵值 (eigenvalue) 決定,而那正是連續時間與第 32 章振盪子 (oscillator) 接上頭的地方。圖 27.4 呈現兩個系統。當特徵值是實數且為負時,系統在受擾動之後平滑地衰減回平衡點,也就是那個工作範例裡回復到平衡點的行為。當特徵值是複數、實部為負而虛部不為零時,系統一邊回去一邊振盪 (oscillate),越過平衡點再以一種阻尼 (damped) 的節奏盪回來,那是第 24 章遇過的二階振盪在連續時間裡的面貌,也是通往第 32 章微分方程振盪子的橋。特徵值的實部 (real part) 支配系統安頓下來的速度,虛部 (imaginary part) 支配它振盪的速度。圖 27.5 把同樣的動態畫成一個向量場,每一支箭都是漂移矩陣在狀態空間中該一點上施加的瞬時拉力,全部朝平衡點流動,並被交叉效果扳彎,這就把本書自第 9 章起以預告方式呈現的那些吸引子圖像形式化了。

漂移矩陣的特徵值決定系統的性格。
圖 27.4 漂移矩陣的特徵值決定系統的性格。

註:左:一個衰減系統(實數、為負)與一個振盪系統(複數)的特徵值在平面上的位置;陰影區標示穩定(實部為負)。右:兩者各自產生的軌跡,平滑的回復對照阻尼的振盪。特徵值的虛部是振盪的來源,也是通往第 32 章的橋。

連續時間系統的向量場。
圖 27.5 連續時間系統的向量場。

註:每一支箭都是漂移在該狀態上施加的瞬時拉力 \(\mathbf{A}\boldsymbol{\eta}\);全部朝平衡點(紅點)流動。那份不對稱,也就是流被扳彎的地方,正是壓力到情緒的交叉效果。這是第 9 與第 20 章那些吸引子預告的正式版本。

27.3 配適連續時間模型

這些模型的生產工具是 ctsem 套件,它設定一個連續時間模型,以頻率論 (frequentist) 的卡爾曼最大概似 (maximum likelihood) 或以一個以 Stan 為底的階層貝氏 (hierarchical Bayesian) 模式配適它,並回傳帶著不確定性的漂移矩陣。本章的分析建自一具手寫的連續時間引擎,轉移用矩陣指數、歷程共變數用 Van Loan 積分,再加上一個「在每一個時點依它自己的間隔重新算兩者」的、隨時間變動版本的第 26 章卡爾曼濾波器,好讓整套做法能對照一個已知的真相被稽核;ctsem 才是應用工作上該去拿的工具,而表 27.3 記下它的各種模式。工作階梯的第一階是還原。模擬一個帶著已知漂移矩陣的雙變項連續時間歷程,在不規則的間隔上取樣,再以最大概似配適連續時間模型,就把漂移還原了出來:自效果回來成 \(-0.45\) 與 \(-0.56\),對照生成用的 \(-0.40\) 與 \(-0.60\);壓力到情緒的交叉效果回來成 \(0.29\),對照 \(0.25\);而半衰期回來成 \(1.55\) 與 \(1.25\) 個單位,對照真值 \(1.73\) 與 \(1.16\),以單一條序列而言算是接近了。這個估計式從不等間隔的資料中還原出與間隔無關的動態,而那正是整件事的重點。

# 延宕翻譯器與一次連續時間配適(手寫引擎)
library(Matrix)
A <- matrix(c(-0.40, 0.00,          # 漂移:為負的對角線就是回復速率
               0.25, -0.60), 2, 2, byrow = TRUE)
Phi <- function(dt) as.matrix(expm(A * dt))       # 間隔 dt 上的離散效果
Phi(0.5); Phi(2); Phi(4)            # 效果對間隔曲線,一次一個 dt
log(2) / abs(diag(A))               # 半衰期:1.73 與 1.16 個時間單位
# 以轉移的最大概似對不等間隔資料配適一個 CT-VAR(分析腳本中的 ct_fit_bivar):
# 先為每一個相異的間隔預先算好 Phi(dt) 與 Van Loan 的 Q*(dt),
# 再在 A 與擴散上最大化高斯的轉移概似。
fit <- ct_fit_bivar(Y = as.matrix(ct_sim[, c("stress","na")]), dtv = ct_sim$dt)
fit$A; fit$half_life                # 還原出來的漂移與半衰期

第二階是人:對每一個個體的序列配適一個連續時間 AR(1),就還原出一個逐人的回復速率、因而也還原出一個逐人的半衰期,而那些半衰期的分配 (distribution),是一項以動態為通貨的個別差異 (individual differences) 發現。圖 27.6 同時呈現真實資料的分配與它的驗證。在 affect_ema 資料上,使用每個人實際的提示 (beep) 時戳 (timestamp),也就是日間兩個半小時、跨夜十一個半小時的間隔,負向情緒的半衰期散得很開,中位數 (median) 靠近三小時,而第十到第九十百分位數 (percentile) 的範圍由不到一小時到將近八小時,於是人與人在「情緒回到基線 (baseline) 有多快」上差別很大,這是一項逐人 (person-specific) 的參數。這個估計式還原得出這樣的異質性 (heterogeneity),由模擬確認:生成一批帶著已知、各不相同的回復速率的人,再逐一重新估計,還原出來的半衰期與真值相關 \(0.63\),在一份日記研究的序列長度下並不完美,但顯然帶著訊息。在 ctsem 的階層貝氏模式裡,這些逐人參數會與一個關於它們的母體 (population) 分配一起被估計,那正是第 25 章隨機效果那套跨人借力;而那一章開頭那兩個帶著隨機自我迴歸的人,在這裡再度以「來自一個漂移矩陣分配的抽樣」的身分登場。

連續時間建模還原得出逐人的回復速度。
圖 27.6 連續時間建模還原得出逐人的回復速度。

註:左:對 affect_ema 作連續時間 AR(1) 配適所得到的逐人負向情緒半衰期分配,使用的是每個人真實而不規則的時戳;中位數靠近三小時。右:一項模擬驗證,估出來的半衰期對照跨人的真實半衰期,以 \(0.63\) 的相關還原出這份異質性。

第三階是刻意的示範,說明連續時間不是只給密集資料用的:它也修補追蹤研究。一份只有少數幾波 (wave) 的追蹤 (panel) 研究,但那幾波在不同的人身上落在真正不同的實際時間上,有些人隔一個月測、有些人隔三個月測,正是一個離散模型會處理不好的情形,因為它把同一個延宕係數套在那些其實不相等的間隔上。圖 27.7 呈現時點的柵狀圖 (raster),每個人的施測落在他自己的時間上,並把後果放在旁邊。一個假裝間距相等的離散模型報出單一個 \(0.14\) 的交叉延宕,就這一個數字;然而真實的交叉效果其實隨著資料裡實際存在的那些間隔而變動,由最短間距上的大約 \(0.10\) 到最長間距上的 \(0.18\),而這一整段範圍被那份假裝壓成了一個誰的間隔也不對應的數值。連續時間模型還原出那個「把上述全部都正確生成出來」的漂移矩陣;而它與第 21 章隨機截距 (random intercept) 交叉延宕追蹤模型對照起來的讀法是:連續時間加上去的,恰恰是跨人不等間距所要求的東西。因此任何一次連續時間配適,它的應用產出從來都不是那個原始的漂移本身,而是它的翻譯:讀者關心的那些間隔上隱含的 (implied) 離散矩陣、帶著不確定區間 (interval) 的半衰期,以及效果對間隔曲線,好讓這份結果能夠與其他間距的研究比較。

連續時間也適用於追蹤資料。
圖 27.7 連續時間也適用於追蹤資料。

註:左:一份五波追蹤研究中逐人施測時點的柵狀圖;每個人的施測都落在不同的實際時間上。右:一個假裝間距相等的離散模型報出單一個交叉延宕(\(0.14\)),而真實的交叉效果在資料實際存在的那些間隔上橫跨 \(0.10\) 到 \(0.18\)。連續時間如實對待那份不相等的間距。

27.4 限制、誠實與選擇

連續時間很有力,但不是萬能,而它最重要的限制正是第 1 章以疊頻 (aliasing) 之名預告過的那一個,現在改用矩陣指數這具透鏡重新看一次。一個運作得比它被取樣的速度快得多的歷程是還原不出來的,因為在兩次觀察之間,那些快的動態早已跑完,於是觀察值看起來幾乎彼此獨立,不帶任何關於回復速率的訊息。圖 27.8 把這件事量化:在一整排取樣間隔上估計一個快速歷程的回復速率,只要取樣間隔短於歷程的半衰期,半衰期就還原得不錯;但當間隔超過半衰期,估計值開始走樣,而它的不確定性炸開,直到間隔是半衰期的好幾倍時,漂移實際上就識別不出來了。實務上的讀法是:取樣率必須配上你希望研究的那個歷程的時間尺度,而那是一項事後任何分析都補救不了的設計決定。另外兩項限制界定了適用範圍。這裡呈現的模型是線性的,而真正帶著非線性 (nonlinear) 動態、閾值 (threshold) 或依狀態而定之回復的歷程,需要第 32 章的非線性擴充。而這個歷程被假設在一個固定的平衡點附近是定態的;讓平衡點本身移動的連續時間成長模型是存在的、也被引用了,但這匹主力假設的是一個穩定的吸引子。

疊頻的形式化:取樣太慢的歷程還原不出來。
圖 27.8 疊頻的形式化:取樣太慢的歷程還原不出來。

註:一個快速歷程估出來的半衰期,對照「取樣間隔比上真實半衰期」的比值。比值小於一(間隔在半衰期之下)時還原良好;越過之後估計值開始走樣,而它的不確定性,也就是那條陰影帶,炸開。取樣率必須配上歷程的時間尺度。

要不要付出連續時間那份概念成本,這個決定由資料的間隔結構決定,而圖 27.9 把它攤了出來。當人之內或人之間的間隔變動很大時,連續時間值得,因為那些替代方案會誤述動態。當間隔相等或幾乎相等時,一個離散模型就夠用、也比較簡單;而第 25 章動態結構方程模型的 TINTERVAL 離散化是一條中間路線,它把中度不等的間隔對齊到一格細網格上,不必動用完整的連續時間那一套做法。等距的假裝只有在間隔變異數小的時候才勉強可以接受,而本章的模擬把「什麼時候不可以」量化了出來:以追蹤範例那種很寬的間距變動來說,這份假裝顯著地錯過了那些依間隔而異的效果。更大的願景,也是這份額外成本值得學的理由,是可比較性。一個漂移矩陣與間隔無關,所以它是「比較設計不同的研究」與「對動態作後設分析 (meta-analysis)」的天然共同通貨,而後者是一個活躍的研究方向,目標是像一般後設分析彙整效果量 (effect size) 那樣,跨研究彙整漂移矩陣。表 27.4 以表格形式給出這個決定,表 27.5 則給出報告檢核表,而它不可讓步的那一項就是隱含間隔的翻譯。

在連續時間與離散化策略之間作選擇。
圖 27.9 在連續時間與離散化策略之間作選擇。

註:間隔相等或幾乎相等時,一個離散模型是可以的;中度不等的間隔可以用第 25 章的 TINTERVAL 離散化處理;顯著不等的間隔,或者跨研究比較的需要,就要用連續時間的漂移矩陣。代價是概念上的額外成本,回報是可比較性。

表 27.3 ctsem 的模式與設定。

模式/設定它做什麼使用指引
頻率論(卡爾曼 ML)最大概似的漂移,速度快適合 \(N=1\) 與單一組的追蹤研究;用 delta 法 (delta method) 求區間
階層貝氏經由 Stan 讓漂移在人與人之間隨機帶彙整的逐人動態;需要先驗與執行時間
先驗(階層)在漂移/擴散上的弱訊息先驗要報告出來;並探測其敏感度(第 17 章的素養)
時間資料提供實際的觀察時點間隔結構是資料,不是一項假設
輸出的翻譯在選定的 \(\Delta t\) 上隱含的離散矩陣一律要報告;光有漂移還不是讀者讀得懂的東西

註:頻率論模式快速地配適一個固定的漂移;階層貝氏模式估計逐人的漂移並附上一個母體分配,承接第 17 章的貝氏工作流程。實際分析時請確認套件當時的介面。

表 27.4 連續時間什麼時候要緊。

情境間隔結構建議
等距的追蹤或密集縱貫資料\(\Delta t\) 為定值離散模型就夠用;要把間隔報出來
輕度不等的間距間隔變異數小離散模型或 TINTERVAL(第 25 章);作敏感度檢查
嚴重不等的間距間隔變異數大用連續時間;假裝等距會誤導
跨研究比較設計上就用了不同的間隔用連續時間;漂移是共同的通貨
歷程快、取樣粗間隔 \(\gg\) 半衰期沒有任何模型還原得出來;請修正研究設計

註:等距的假裝只有在間隔變異數小的時候才勉強可以接受。變動顯著,或者要跨研究比較,才是漂移矩陣賺回它額外成本的地方。沒有任何估計式克服得了「取樣對這個歷程而言太慢」。

常見陷阱 • 連續時間結果被誤讀的三種方式

第一,把漂移的交叉效果當成離散的交叉延宕來解讀:一個瞬間上的連續交叉效果,並不是一份離散研究在它自己的間隔上所報告的那個數字,兩者只透過效果對間隔曲線發生關係,所以一個 \(0.25\) 的漂移元素在任何一個間距上都不是「一個 \(0.25\) 的交叉延宕」。第二,跨「量尺不同的變項」比較原始的漂移元素,那在連續時間裡跟「在計量不同的預測變項 (predictor) 之間比較未標準化 (unstandardized) 迴歸係數」一樣沒有意義;要跨變項比較自效果或交叉效果,請先把漂移標準化。第三,相信連續時間解決得了混淆 (confounding):它解決的是間隔問題,還原出與間隔無關的動態,但它對「一個被遺漏、卻同時驅動兩個被建模變項的變項」毫無辦法,所以第 25 與第 26 章那本告誡帳冊原封不動地轉移過來,而一個連續時間的交叉效果是一個預測性的、嵌在系統裡的量,不是一張作因果主張的執照。

實務要點 • 起始值、先驗,以及「振盪還是雜訊」的問題

給最佳化器 (optimizer) 一組合理的漂移起始值 (starting value):先在平均間隔上配適一個離散模型,取它轉移矩陣的矩陣對數 (matrix logarithm) 再除以那個間隔,當作初始的漂移;從任意值冷啟動經常收斂 (converge) 不了。在階層貝氏模式裡,把弱訊息先驗 (weakly informative prior) 放在漂移的對角線上,並讓它尊重那些元素的符號,回復到平衡點意味著為負,也把先驗放在擴散上,並且要報告與探測它們。在心理學的序列長度上,最難的識別問題是把真正的振盪,也就是複數的漂移特徵值,與雜訊區分開來:一條短而有雜訊的序列可以顯示出其實是取樣造成的假週期 (cycle),所以一個振盪的漂移只有在通過敏感度檢查、而且最好還能跨人複製時,才應該被接受;至於一個接近取樣率的振盪頻率 (frequency) 估計值,處理時要把疊頻的警告牢牢記在心裡。

軟體提示 • 連續時間軟體

主要的工具是 ctsem,它設定連續時間結構方程模型,並以兩種模式配適:一個快速的頻率論卡爾曼最大概似模式,以及一個以 Stan 為底、用一個母體分配估計逐人漂移矩陣的階層貝氏模式;這個套件把實際的觀察時點當成輸入,所以不等間距是原生地被處理的。第 26 章的 dynr 套件也具備連續時間能力,並加上了體制轉換 (regime switching);而 OpenMx 可以透過它那套狀態空間的做法表達連續時間模型。Mplus 則相反,它目前並不配適真正的連續時間模型,而是提供它動態結構方程模型中的 TINTERVAL 離散化作為最接近的近似,那是把不等的間隔對齊到一格細網格,而不是為底下的微分方程作參數化。本章的分析一個也沒有用到這些工具,而是由矩陣指數、Van Loan 的被積分擴散,以及一個隨時間變動的卡爾曼濾波器把連續時間引擎建了起來,好讓每一個關係都能對照一個已知的漂移矩陣被檢查;那些套件才是應用工作上的正確選擇,而它們的介面應該在實際分析時確認一次,因為這是一個正在積極發展的領域。

寫出一份連續時間分析,有一項使它有別於任何離散報告的、不可讓步的要求:結果必須先以一種與間隔無關的形式給出,再翻譯成讀者用得上的那些間隔。報告應該呈現帶著不確定性的漂移矩陣、把自效果轉成帶區間的半衰期,並在給出交叉效果時附上告誡,說明它們是連續的耦合、不是離散的交叉延宕。接著它應該翻譯:在一到兩個具實質意義的間隔上隱含的離散轉移矩陣,最好還有效果對間隔曲線本身,好讓這項發現能夠與其他間距的研究比較。它應該說明被建模的觀察時點 (observation time) 結構,註明用的是頻率論還是階層模式以及它的先驗,並誠實面對取樣率的限制,承認這份設計解析得了與解析不了哪些時間尺度 (timescale)。一段示範的段落是這樣的:「本研究對不規則間隔的資料配適了一個雙變項連續時間模型,漂移矩陣以最大概似估計。負向情緒以 \(1.25\) 個時間單位的半衰期回復到平衡點(在這份日記資料中約為三小時),壓力的半衰期則為 \(1.55\);壓力對負向情緒有一個為正的連續時間效果,它隱含的離散交叉延宕在接近兩個單位的間隔上達到高峰。因為這個效果依賴間隔,我們一併報告在一個單位與四個單位間距上隱含的離散矩陣,好讓這些估計值能與使用那些延宕的研究比較。」

表 27.5 連續時間的報告檢核表。

項目要報告什麼
漂移矩陣估計值與不確定性;那個與間隔無關的參數化
半衰期自效果化為 \(\ln 2 / |a_{ii}|\) 並附區間,用可解讀的時間單位
交叉效果連續的耦合,並標明它們不是離散的交叉延宕
隱含的離散矩陣在一到兩個實質間隔上的 \(\boldsymbol{\Phi}(\Delta t)\)(必要項)
效果對間隔曲線交叉效果跨間隔的樣子,最好畫出來
觀察時點被建模的間隔結構;承認不規則的間距
估計頻率論還是階層模式;若為貝氏則含先驗
取樣率的誠實這份設計解析得了哪些歷程時間尺度

註:必要的那一項是隱含間隔的翻譯:一個報告出來卻沒有附上「在指名間隔上的離散意涵」的漂移矩陣,還不是讀者讀得懂的東西,因為可比較性,也就是使用連續時間的理由,正需要它。

本章摘要

離散時間的動態係數依賴觀察間隔,於是不同間距的研究會估出不同的數字,甚至會在「哪一個變項領先」上彼此矛盾,那是對一片文獻可比較性的威脅,而不是一則腳註。連續時間模型以一個漂移矩陣為底層歷程參數化、並把觀察時點當成資料,藉此移除了這份依賴;而任何間隔上的離散效果都由漂移經矩陣指數 \(\boldsymbol{\Phi}(\Delta t) = e^{\mathbf{A}\Delta t}\) 還原出來,它的效果對間隔曲線顯示自效果單調衰減、交叉效果先升到高峰再下降,於是一個延宕只報出曲線上的一個點。漂移矩陣為負的對角線是被讀成半衰期的回復速率,也就是那個與間隔無關、可解讀的通貨;它的非對角線則是連續的耦合;而它的特徵值決定這個系統是衰減還是振盪,那是通往第 32 章的橋。精確的離散解,也就是以矩陣指數得到的轉移與以 Van Loan 積分得到的歷程共變數,讓單一個漂移矩陣在每一個間距上都生成正確的動態,於是混雜而不等的間隔不必假裝相等就處理得了,而配適的引擎就是第 26 章的卡爾曼濾波器,只是轉移逐間隔重算。這個估計式在 ct_sim 上從不規則的資料還原出一個已知的漂移,還原出逐人的半衰期,而它們在 affect_ema 上的散布是一項真實的個別差異發現;它也修補了「波次間距不等、而離散模型把一整段真實效果壓成一個錯數字」的追蹤研究。它的限制是誠實的:一個被取樣得比它半衰期慢得多的歷程會疊頻、還原不出來;線性而定態的模型有它的適用範圍;而連續時間解決的是間隔,不是被遺漏變項造成的混淆。使用它與否的決定跟著間隔結構走,而它的回報是把漂移矩陣當成跨研究比較與彙整動態的共同通貨,那正是每一份連續時間報告都必須把它的漂移翻譯成「指名間隔上隱含的離散效果」的理由。

本章重要名詞中英對照

中文English說明/首次出現處
連續時間模型continuous-time model以漂移矩陣為底層歷程參數化,把觀察時點當資料;第 27.2 節
間隔依賴interval dependence離散動態係數隨觀察間隔而變(第 20 章稱「區間依賴」);第 27.1 節
矩陣指數matrix exponential\(\boldsymbol{\Phi}(\Delta t) = e^{\mathbf{A}\Delta t}\),本章的延宕翻譯器;第 27.1 節
效果對間隔曲線effect-versus-interval curve離散效果作為 \(\Delta t\) 的函數;本章的反射圖;第 27.1 節
漂移矩陣drift matrix支配瞬時拉力的矩陣 \(\mathbf{A}\);與間隔無關;第 27.2 節
回復速率mean-reversion rate為負的對角元素 \(a_{ii}\);越負回復越快;第 27.2 節
半衰期half-life\(\ln 2 / |a_{ii}|\),擾動衰減到一半的時間(承第 24 章);第 27.2 節
擴散diffusion\(\mathbf{G}\mathbf{G}^{\top}\),創新在連續時間中的來源;第 27.2 節
Wiener 歷程Wiener process連續時間的隨機漫步,擴散的隨機輸入;第 27.2 節
Ornstein-Uhlenbeck 歷程Ornstein-Uhlenbeck process連續時間的 AR(1),會回復到平衡點;第 27.2 節
Van Loan 積分Van Loan integral以區塊矩陣指數求出被積分的擴散;第 27.2 節
疊頻aliasing取樣慢過歷程,動態就還原不出來(承第 1 章);第 27.4 節

參考文獻

Bergstrom, A. R. (1988). The history of continuous-time econometric models. Econometric Theory, 4(3), 365–383. https://doi.org/10.1017/S0266466600013359

Boker, S. M. (2001). Differential structural equation modeling of intraindividual variability. In L. M. Collins & A. G. Sayer (Eds.), New methods for the analysis of change (pp. 5–27). American Psychological Association. https://doi.org/10.1037/10409-001

Deboeck, P. R., & Preacher, K. J. (2016). No need to be discrete: A method for continuous time mediation analysis. Structural Equation Modeling: A Multidisciplinary Journal, 23(1), 61–75. https://doi.org/10.1080/10705511.2014.973960

Dormann, C., & Griffin, M. A. (2015). Optimal time lags in panel studies. Psychological Methods, 20(4), 489–505. https://doi.org/10.1037/met0000041

Driver, C. C., Oud, J. H. L., & Voelkle, M. C. (2017). Continuous time structural equation modeling with R package ctsem. Journal of Statistical Software, 77(5), 1–35. https://doi.org/10.18637/jss.v077.i05

Driver, C. C., & Voelkle, M. C. (2018). Hierarchical Bayesian continuous time dynamic modeling. Psychological Methods, 23(4), 774–799. https://doi.org/10.1037/met0000168

Hecht, M., & Zitzmann, S. (2021). Sample size recommendations for continuous-time models: Compensating shorter time series with larger numbers of persons and vice versa. Structural Equation Modeling: A Multidisciplinary Journal, 28(2), 229–236. https://doi.org/10.1080/10705511.2020.1779069

Kuiper, R. M., & Ryan, O. (2018). Drawing conclusions from cross-lagged relationships: Re-considering the role of the time-interval. Structural Equation Modeling: A Multidisciplinary Journal, 25(5), 809–823. https://doi.org/10.1080/10705511.2018.1431046

Oravecz, Z., Tuerlinckx, F., & Vandekerckhove, J. (2009). A hierarchical Ornstein–Uhlenbeck model for continuous repeated measurement data. Psychometrika, 74(3), 395–418. https://doi.org/10.1007/s11336-008-9106-8

Oravecz, Z., Tuerlinckx, F., & Vandekerckhove, J. (2011). A hierarchical latent stochastic differential equation model for affective dynamics. Psychological Methods, 16(4), 468–490. https://doi.org/10.1037/a0024375

Oud, J. H. L., & Jansen, R. A. R. G. (2000). Continuous time state space modeling of panel data by means of SEM. Psychometrika, 65(2), 199–215. https://doi.org/10.1007/BF02294374

Ryan, O., Kuiper, R. M., & Hamaker, E. L. (2018). A continuous-time approach to intensive longitudinal data: What, why, and how?. In K. van Montfort, J. H. L. Oud, & M. C. Voelkle (Eds.), Continuous time modeling in the behavioral and related sciences (pp. 27–54). Springer. https://doi.org/10.1007/978-3-319-77219-6_2

Uhlenbeck, G. E., & Ornstein, L. S. (1930). On the theory of the Brownian motion. Physical Review, 36(5), 823–841. https://doi.org/10.1103/PhysRev.36.823

van Montfort, K., Oud, J. H. L., & Voelkle, M. C. (Eds.). (2018). Continuous time modeling in the behavioral and related sciences. Springer. https://doi.org/10.1007/978-3-319-77219-6

Voelkle, M. C., & Oud, J. H. L. (2013). Continuous time modelling with individually varying time intervals for oscillating and non-oscillating processes. British Journal of Mathematical and Statistical Psychology, 66(1), 103–126. https://doi.org/10.1111/j.2044-8317.2012.02043.x

Voelkle, M. C., Oud, J. H. L., Davidov, E., & Schmidt, P. (2012). An SEM approach to continuous time modeling of panel data: Relating authoritarianism and anomia. Psychological Methods, 17(2), 176–192. https://doi.org/10.1037/a0027543