ProfileGLMM: a R Package Extending Bayesian Profile Regression using Generalised Linear Mixed Models
ProfileGLMM R 套件打通 Bayesian 剖面迴歸的隨機效果缺口,縱向研究 9 個曝露群集精準識別
- ProfileGLMM 填補 PReMiuM 兩大缺口:納入隨機效果並支援潛在群集與共變量的交互建模
- 1500 人縱向曝露模擬研究中,Gibbs 採樣器以 800 次迭代精準識別出 9 個潛在群集
- 同一套件可做分段線性擬合,自動從資料中識別 6 個局部動態,無需預設分段點
分析高度相關協變量時直接納入迴歸往往統計次優——Bayesian 剖面迴歸能同步聚類與回歸,但一直缺少隨機效果支援。荷蘭阿姆斯特丹自由大學研究團隊新發布的 ProfileGLMM R 套件填補這個缺口,在 1500 名個體、4500 筆觀測的縱向模擬研究中精準識別出 9 個潛在曝露群集,且已正式上架 CRAN 開放取用。
Bayesian 剖面迴歸的問題設定與 PReMiuM 的侷限
Bayesian 剖面迴歸(Bayesian profile regression)是一種同時處理聚類與迴歸的統計框架,設計初衷是應對一批高度相關的「聚類共變量」(clustering covariates)——例如環境曝露測量值或問卷多項回應。直接把這些共線性強的變量塞進迴歸模型往往統計效能不佳,替代做法是先將它們非參數地分群,再將群集成員資格作為指示變量納入迴歸,由此捕捉複雜的協同效應。現有的標準實作 PReMiuM 支援多種結果類型,但主要適用於橫斷面資料,且存在兩個關鍵缺口:不支援隨機效果、無法建模潛在群集與其他觀測共變量的交互效應。在縱向研究中,同一個體的重複測量存在個體內相關性,若未引入隨機效果則推論偏誤不可避免;若群集效應在特定共變量水準下存在異質性,缺少交互建模也會系統性低估群集差異。
ProfileGLMM 的兩項核心突破:隨機效果與群集交互項
ProfileGLMM 以廣義線性混合模型(GLMM, Generalised Linear Mixed Model,同時包含固定效果與隨機效果的迴歸模型)作為結果模型,嵌入 Bayesian 剖面迴歸框架。連續結果採用線性混合模型,二元結果採用Probit 混合模型(利用潛在連續變量與常態累積分布函數建模二元觀測)。模型將協變量分為三個子集:固定效果共變量(FE)、隨機效果共變量(RE),以及與潛在群集進行交互的共變量(Lat)。隨機效果參數服從均值為零的高斯分布,協方差矩陣 W^Re 由模型自行估計;群集特定交互參數 γ_c 則刻畫每個群集在交互項上的獨特效應,先驗使用 Inverse-Wishart 分布並整合進模型估計,避免研究者需要手動指定超參數。
貝葉斯推論採用截斷式 Dirichlet 過程混合模型(truncated DPMM),以 stick-breaking 先驗處理無窮維混合成分,並以 Gibbs 採樣器(Markov Chain Monte Carlo 的逐塊採樣形式)進行後驗推斷。後處理步驟透過「平均不相似矩陣」識別代表性群集結構,解決 MCMC 中常見的標籤交換問題(label switching,不同迭代中群集標號可能互換導致無法直接平均的現象)。整體計算以 Rcpp(R 調用 C++ 的介面套件)實作,效率與 PReMiuM 相當,詳見論文 Table 4。
1500 人縱向曝露研究:9 個群集的識別流程
論文以一個模擬的三波縱向曝露研究(1500 名個體、4500 筆觀測)示範標準工作流程。資料集包含個體指示變量 indiv、時變個體特徵 X、時間點 t、兩個曝露測量值 Exp1 與 Exp2,以及健康結果 Y。底層真實結構由 9 個潛在群集組成,對應 Exp1、Exp2 各自為正、負、中性的三種狀態之所有組合,每個群集對 Y 有獨特效應。
操作分三步執行。第一步呼叫 profileGLMM_preprocess() 預處理資料,在 covList 中分別指定:固定效果 X、隨機效果 t(統計單位 indiv)、交互共變量 X,以及連續聚類共變量 Exp1 與 Exp2,最大群集數設為 nC = 30。第二步呼叫 profileGLMM_Gibbs(),設定 nIt = 800、燃燒期 nBurnIn = 200,保留 600 個 MCMC 樣本。第三步呼叫 profileGLMM_postProcess() 後驗推斷,模型成功識別出 9 個群集,群集中心精準對應底層真實值所在的 {−1, 0, 1} 網格。predict() 方法可對新樣本返回固定效果貢獻 $FE、群集效應 $Int 與整體預測值 $Y,其中 $FE + $Int = $Y。
分段線性擬合:ProfileGLMM 的非典型延伸應用
ProfileGLMM 論文展示了一個超出流行病學的應用場景:以單一連續預測變量 x 同時作為聚類共變量與交互共變量,令模型自動識別分段線性結構。不指定任何固定效果或隨機效果,也不預設分段位置,模型能非參數地將 x 的定義域劃分成多個局部制度(regime),並在各制度內估計對應的線性斜率。在此範例中,模型自動識別出 6 個局部線性動態,準確量化每段的方向與幅度,重建效果與真實底層訊號高度吻合。這個案例說明 ProfileGLMM 的框架不限於群體曝露分析,凡具有局部異質性的迴歸問題——例如變點偵測、非線性函數近似——都可納入考量。
核心函數介面與先驗調參實務
ProfileGLMM 圍繞三個核心函數組成分析管線:profileGLMM_preprocess()(模型定義與先驗初始化,回傳 pglmm_data 物件)、profileGLMM_Gibbs()(Gibbs 採樣,回傳 pglmm_mcmc 物件)、profileGLMM_postProcess()(後驗推斷,回傳含 print、summary、plot、predict 方法的 pglmm_fit 物件)。預設先驗設計為無資訊先驗:固定效果採 Normal-Gamma 先驗,隨機效果協方差矩陣採 Inverse-Wishart 先驗,所有超參數設定列於論文 Table 2。若需自訂先驗強度,可直接修改 dataProfile$prior 下的對應欄位(例如調整固定效果懲罰項 λ 從預設的 1e-06 改為 10),再呼叫 prior_init() 重新初始化採樣器起始值。鏈收斂性建議透過集中度參數 ζ 的跡線圖(trace plot)目視確認;論文示範顯示 800 次迭代即可達到充分收斂。
ProfileGLMM 讓 Bayesian 剖面迴歸從橫斷面工具升級為縱向與階層式資料的通用框架,聚類與迴歸同步估計、交互效應一鍵啟用。