原文鏈接:http://tecdat.cn/?p=26105
原文出處:拓端數據部落公眾號
潛類別軌跡建模 (LCTM) 是流行病學中一種相對較新的方法,用於描述生命過程中的暴露,它將異質人群簡化為同質模式或類別。然而,對於給定的數據集,可以根據類的數量、模型結構和軌跡屬性得出不同模型的分數。
本文說明了LCTM的基本用法,用於匯總擬合的潛在類軌跡模型對象的輸出。要安裝 R 包,請在 R 控制台中使用命令
例子
目的:通過將 BMI 建模為年齡函數,識別具有不同軌跡的參與者亞組。根據迄今為止可用的文獻,我們假設初始 K=5 類 BMI 軌跡。
我們使用體重指數 (BMI) 重復測量 10,000 個人的長格式數據框。
提供了一個示例(模擬)數據集 bmi 來描述整個步驟, bmi_long 是長格式版本。
包含的變量有:
id - 個人 ID
年齡 - BMI 測量的年齡,以年為單位
bmi - 個人在 T1、T2、T3 和 T4 時間的體重指數,以 kg/m^2 為單位 true_class - 用於識別模擬個人 BMI 數據的類別的標簽從
加載數據
繪制數據
潛在類軌跡建模的八步示例
為了對縱向結果 yijk 進行建模,對於 k=1:K,類,對於個體 i,在時間點 j,tj可以使用許多建模選擇。我們在這里給出方程來說明這些,並按照復雜度增加的順序將它們命名為模型 A 到 G。
模型 A:無隨機效應模型 | 固定效應同方差 | - 解釋個人軌跡與其平均類軌跡的任何偏差僅是由於隨機誤差
其中假設所有類的殘差方差相等,
模型 B:具有特定類別殘差的固定效應模型 | 異方差 | 與模型 A 相同的解釋,隨機誤差在不同的類別中可能更大或更小。
其中假設殘差方差不同
模型 C:隨機截距 解釋是允許個體的初始體重不同,但假設每個班級成員遵循平均軌跡的相同形狀和大小
對於 k=1:K, classes, 對於個體 i, 在時間點 j, tj,
其中隨機效應分布
模型 D:隨機斜率 允許個體在初始權重和平均軌跡的斜率上有所不同,但曲率與軌跡
對於 k=1:K,類,對於個體 i,在時間點 j , tj,
其中假設隨機效應分布為
模型 E:隨機二次 - 跨類的共同方差結構 允許個體在類內通過初始權重、形狀和大小變化的額外自由,但是假設每個類具有相同的變異量 R lcmm hlme/lcmm 對於 k=1: K, 類, 對於個體 i, 在時間點 j, tj,
其中假設隨機效應分布為
模型 F 和 G:隨機二次 - 允許方差結構跨類變化的比例約束 增加模型 E 的靈活性,因為允許方差結構相差一個乘法因子,以允許某些類具有更大或更小的類內方差。該模型可以被認為是模型 G 的更簡潔版本(將要估計的方差-協方差參數的數量從 6xK 參數減少到 6+(K-1)個參數。
對於 k=1:K, classes, 對於個體 i, 在時間點 j, tj,
其中假設隨機效應分布為
第一步:選擇隨機效應結構的形式
為了確定隨機效應的初始工作模型結構,可以遵循 Verbeke 和 Molenbergh 的基本原理來檢查沒有隨機效應的模型中每個 K 類的標准化殘差圖的形狀。
如果殘差輪廓可以近似為平坦、直線或曲線,則分別考慮隨機截距、斜率或二次項。
為了擬合沒有隨機效應的潛在類模型。
-
hlmfixed(bmig)
-
-
然后,我們將擬合模型輸入 LCTM中的 step1 函數,以檢查特定類別的殘差。
第2步
優化步驟 1 中的初步工作模型以確定最佳類數,測試 K=1,...7。可以根據最低貝葉斯信息標准 (BIC) 來選擇所選類別的數量。
-
set.seed(100)
-
-
-
for (i in 2:4) {
-
mi <- lchlme( data.frame(bmg[1:500,])
-
-
}
-
#> Be patient, hlme is running ...
-
#> The program took 0.29 seconds
-
#> Be patient, hlme is running ...
-
#> The program took 0.69 seconds
-
#> Be patient, hlme is running ...
-
#> The program took 2.3 seconds
-
-
modelut <-kable(lin)
第 3 步
使用步驟 2 中推導出的偏好 K 進一步細化模型,測試最優模型結構。我們測試了七個模型,從簡單的固定效應模型(模型 A)到允許殘差在類別之間變化的基本方法(模型 B)到一組具有不同方差結構的五個隨機效應模型(模型 CG)。
- A(SAS、PROC TRAJ)
- B型(R,mmlcr)
調用 source() 命令。
-
mmldata = bmi_l01
-
# )
# model_b$BIC
- C (SAS、PROC TRAJ)
- D 型(SAS、PROC TRAJ)
- E型 (R, lcmm)
-
model_e <- hlme(fixed = bmi ~1+ age + I(age^2),
-
mixture = ~1 + age + I(age^2),
-
random = ~1 + age,
-
ng = 5, nwg = F,
-
idiag = FALSE,
-
data = data.frame(bmi_long[1:200,]),
-
subject = "id")
-
#> Be patient, hlme is running ...
-
#> The program took 0.77 seconds
model_e$BIC
- F型 (R, lcmm)
-
fixed = bmi ~1+ age + I(age^2),
-
mixture = ~1 + age + I(age^2)
mod$BIC
- G (SAS、PROC TRAJ)
第四步
執行一些模型充分性評估。首先,對於每個參與者,計算被分配到每個軌跡類的后驗概率,並將個體分配到概率最高的類。在所有類別中,這些最大后驗分配概率 (APPA) 的平均值高於 70% 被認為是可以接受的。使用正確分類、不匹配的幾率進一步評估模型的充分性。
LCTMdel_f
第 5 步
圖形表示方法;
-
繪制包含每個類的時間平均軌跡
-
每個類具有 95% 預測區間的平均軌跡圖,顯示每個類內預測的隨機變化
-
plotpred <- predictY
-
plototp
- 個人水平的“面條圖”隨時間變化,取決於樣本量,可能使用參與者的隨機樣本
-
-
ggplot(bm, aes(x = age, y = bmi)) + geom_line
-
-
ggplot(bmong) + geom_line
第 6 步
評估模型辨別。
第 7 步
使用四種方法評估臨床特征和合理性;
1. 評估軌跡模式的臨床意義,旨在包括至少 1% 的人群的類別
postprb( modf )
2. 評估軌跡類別的臨床合理性
使用 6.2中生成的圖 來評估預測的趨勢對於正在研究的組是否現實。例如,對於研究 BMI,顯示下降到 <5 kg/m2 的預測趨勢是不現實的。
3. 潛在類別與傳統分類的特征列表
使用從所選模型中提取類分配;
然后用描述性變量反饋到主數據集中。
然后可以根據需要將這些制成表格。
等等。
4. 使用 kappa 統計的類成員與傳統 BMI 類別成員的一致性
-
# 定義BMI類別,這些類別的數量需要與類別的數量相等
-
confusionMatrix(bmi_class, bmclass
-
kable(y, row.names = )
第 8 步
酌情進行敏感性分析。
最受歡迎的見解
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現