最近看了好多潛類別軌跡latent class trajectory models的文章氢惋,發(fā)現(xiàn)這個方法和我之前常用的橫斷面數(shù)據(jù)的潛類別和潛剖面分析完全不是一個東西羽历,做縱向軌跡的正宗流派還是這個方法嗜侮,當然了這個方法和潛增長和增長曲線模型在做法并沒有實際區(qū)別刀荒,都是用的hlme這個函數(shù)。但是文獻中的叫法和花樣就比較多了棘钞。
像本文寫的latent class trajectory models缠借,之前寫的潛類別增長模型LCGA和增長曲線模型GMM都是潛類別線性混合模型latent class linear mixed models (LCLMM)的分支。
The major difference between LCGA and GMM is that LCGA does not allow within-class variation whereas GMM does allow within-class variation
像這一類的模型都是用hlme這個函數(shù)跑宜猜,這篇文章也可以看作是作為之前的潛增長和增長曲線文章的一個實際應(yīng)用的延續(xù)泼返。
應(yīng)用背景
很多的同學(xué)關(guān)心某個變量的縱向發(fā)展軌跡,并且還感興趣不同軌跡對某個結(jié)局的影響如何姨拥。如果你的研究也涉及到這樣的問題绅喉,你就可以考慮用潛類別軌跡模型了,參考文獻也甩給大家叫乌,大家感興趣可以去瞅瞅下面這個文章:
Mirza, S. S., Wolters, F. J., Swanson, S. A., Koudstaal, P. J., Hofman, A., Tiemeier, H., & Ikram, M. A. (2016). 10-year trajectories of depressive symptoms and risk of dementia: a population-based study. The Lancet Psychiatry, 3(7), 628-635.
文章作者通過潛類別軌跡模型將人群抑郁癥狀發(fā)展軌跡分成了5類柴罐,最終發(fā)現(xiàn)只有特定類軌跡才和隨后的癡呆有關(guān)系,這對癡呆的干預(yù)和抑郁癡呆的關(guān)系的認識都是有重要意義的憨奸。
今天我就仿照這篇文章給大家寫寫如何做潛類別軌跡模型革屠。
潛類別軌跡的報告內(nèi)容
做之前我們還是看看這篇文獻中是如何介紹這個方法的。
We used latent class trajectory models to identify trajectories of depressive symptoms over time. This is a specialised form of finite mixture modelling, and is designed to identify latent classes of individuals following similar progressions of a determinant over time or with age.
可以看到這個方法在重要作用是識別那些隨著時間或者年齡擁有相似癥狀和疾病進程的人群類別排宰。比如做抑郁的潛類別軌跡就是要識別出人群中可能的抑郁進程亞組似芝。文章中也說明了這個模型就是一個特殊的混合模型specialised form of finite mixture modelling。
在擬合癥狀隨著時間或者年齡變化的時候板甘,我們允許或者說我們需要去考慮癥狀和時間的曲線關(guān)系的党瓮,就是說不能簡單第認為某個癥狀的縱向變化一定是線性的,意思就是我們要考慮時間變量的高次項盐类,一般來講二次就夠了寞奸。作者的論文中也是加了時間的二次項的。然后根據(jù)BIC確定最優(yōu)類別數(shù)在跳,同時確保后驗概率大于0.7枪萄,類別人數(shù)大于0.02.
最終作者出圖如下:
作者根據(jù)這個軌跡走勢,還給每個類別進行了命名硬毕,打上標簽呻引,包括Low symptoms礼仗,Decreasing symptoms吐咳,Remitting symptoms逻悠,Increasing symptoms, High symptoms韭脊,然后將軌跡標簽作為預(yù)測變量進行了后續(xù)的生存分析童谒。
對于軌跡部分結(jié)果的報告,因為這個文章軌跡只是一部分而并非主要目的沪羔,所以報告很少,只有每一個軌跡的人群數(shù)量和占比饥伊。
接下來給大家分享如何做這么一個潛類別軌跡。
潛類別軌跡的做法
潛類別軌跡有專門的R包可以做蔫饰,感興趣的同學(xué)可以去看這篇文章:
Lennon H, Kelly S, Sperrin M, et al Framework to construct and interpret latent class trajectory modelling BMJ Open 2018;8:e020683. doi: 10.1136/bmjopen-2017-020683
上面這篇文章給出了潛類別軌跡模型的做法框架琅豆,共8步:
本文的絕大部分步驟也都是參考的上面的文章。
現(xiàn)在我手上的數(shù)據(jù)長這樣:
一個縱向的長型數(shù)據(jù)篓吁,包括每個人不同年齡段測得的bmi茫因,我現(xiàn)在就想看看隨著年齡的增長,人群bmi軌跡是不是存在異質(zhì)性亞組杖剪。接下來我就用潛類別軌跡模型回答這個問題冻押,并且出圖,并得到每個軌跡類別的人數(shù)和占比盛嘿。
首先我們寫出軌跡類別數(shù)量為1時候的潛類別軌跡的代碼:
m.1<-hlme(bmi~1+age+I(age^2),random=~1+age,ng=1,data=data.frame(bmi),subject="id")
關(guān)于hlme之前給大家寫過各個參數(shù)的意思洛巢,上面的代碼就是要擬合bmi隨著年齡變化的軌跡,同時考慮年齡的隨機效應(yīng)(截距+斜率)次兆,并聲明嵌套的高水平subject = "id"稿茉。運行上面的代碼我們就擬合了一個軌跡類別為1的模型。
之后我們還需要擬合2到7個類別的模型芥炭,這個7是上面文獻推薦的哈狈邑,我們可以寫個循環(huán)語句,一次搞定(為什么不從模型1循環(huán)到7呢蚤认?是因為ng參數(shù)為1時我們并不需要設(shè)定mixture參數(shù)米苹,所以2到7寫了循環(huán),1單獨做):
lin<- c(m.1$ng, m.1$BIC)for (i in2:7) {mi<- hlme(fixed = bmi~ 1+age + I(age^2),? ? ? ? ? ? ? ? ? mixture =~ 1+ age + I(age^2),? ? ? ? ? ? ? ? ? random =~ 1+ age,? ? ? ? ? ? ? ? ? ng = i, nwg = TRUE,? ? ? ? ? ? ? ? ? ? data = data.frame(bmi), subject ="id")? ? lin <- rbind(lin, c(i, mi$BIC))}
7個模型跑完砰琢,我們需要對比每個模型的BIC(這個也是參考的The Lancet Psychiatry那篇文章的做法)蘸嘶,所以我們對模型和相應(yīng)的BIC進行展示:
從上圖就可以看得出我們軌跡數(shù)量確定為5個時,模型的BIC最小陪汽,由此可以確定軌跡數(shù)量為5训唱。
按照論文報告的要求我們需要出圖,根據(jù)圖中每條軌跡的走勢確定軌跡類別標簽挚冤,還有每個軌跡類別的人群數(shù)量和占比况增,具體方法如下:
首先,進行圖形的繪制训挡,我們解決這類問題(包括機器學(xué)習(xí)模型)的基本思路依然是通過自我數(shù)據(jù)得到模型澳骤,通過模型擬合新數(shù)據(jù)出圖歧强,代碼如下:
plotpred<-predict(m5,datnew,var.time="age",draws=TRUE)plot(plotpred,lty=2,xlab="Age",ylab="BMI",legend.loc="topleft",cex=0.75)
上面的代碼中m5為我們擬合的5個軌跡類別的模型對象。
運行代碼得到圖如下:
然后我們就可以根據(jù)圖的走勢給每個潛類別軌跡打上有臨床意義的標簽了为肮,有了標簽就可以進行后續(xù)的建模了摊册。
然后我們還需要報告每個軌跡類別的人數(shù)和占比,方法如下:
m5$pprob
運行代碼即可得到颊艳,每個個案到底屬于哪個軌跡類別茅特,以及其屬于每個軌跡類別的概率,如下圖:
到這兒我們的模型基本跑完了棋枕,論文中有提到后驗概率大于0.7白修,類別人數(shù)大于0.02,這個在模型總結(jié)中也是可以調(diào)出來的:
基本上掌握了上面的方法重斑,柳葉刀精神病學(xué)那篇文章的前半部分統(tǒng)計分析就完成了熬荆,如果你想將某個癥狀或者疾病發(fā)展的軌跡作為自變量的相關(guān)研究都可以進行了,好了今天要給大家分享的潛類別軌跡模型的做法就是這樣绸狐。
后記:寫完這篇文章卤恳,我越來越覺得潛類別軌跡模型和增長混合模型就是一個東西,只不過不同的學(xué)者用詞不一樣寒矿,不知各位看官怎么看突琳,可以私信我交流。
另外符相,還特別建議大家好好去看lcmm包的說明文檔拆融,相信大家看完之后還會有更大收獲。
小結(jié)
今天給大家寫了潛類別軌跡的做法啊终,感謝大家耐心看完镜豹,自己的文章都寫的很細,代碼都在原文中蓝牲,希望大家都可以自己做一做趟脂,請轉(zhuǎn)發(fā)本文到朋友圈后私信回復(fù)“數(shù)據(jù)鏈接”獲取所有數(shù)據(jù)和本人收集的學(xué)習(xí)資料。如果對您有用請先收藏例衍,再點贊分享昔期。
也歡迎大家的意見和建議,大家想了解什么統(tǒng)計方法都可以在文章下留言佛玄,說不定我看見了就會給你寫教程哦硼一,另歡迎私信。