臨床預測模型的預測性能決定了外推性和應用價值。當預測模型應用于新人群時,因研究時間、人群特征、地域等因素與初始建模人群存在差異而導致其預測性能降低。采用適當的統計方法對其進行校準或更新對于提高其在新人群中的預測性能具有重要意義。模型更新的方法主要包括回歸系數更新、Meta-model法及動態模型構建三大類,由于Meta-model法及動態模型構建在實際應用中存在較多限制,目前常使用模型回歸系數更新法進行更新。本文在系統性介紹模型更新方法的基礎上,詳細描述基于Logistic回歸和Cox回歸分別對模型系數更新的方法及其R實現過程,為科研工作者提供參考。
引用本文: 李笑叢, 王闖世, 郝軍, 王楊, 李衛. 臨床預測模型校準與更新方法介紹及R軟件實現. 中國循證醫學雜志, 2023, 23(1): 112-119. doi: 10.7507/1672-2531.202209029 復制
臨床預測模型是指利用數學公式構建多因素模型,評估特定個體當前患病概率或將來某結局發生概率的一種常見方法,在醫學研究與實踐中應用非常廣泛[1-2]。預測模型的預測能力可通過模型的區分度和校準度進行評價[3],通常臨床預測模型開發后均需要通過驗證模型對模型預測能力指標進行考察,來證明該模型的科學性和應用價值[4-5]。然而,預測模型的建立是基于具有某種特征的研究人群進行的,當將其應用于新人群時,由于研究時間、地域特征等方面存在差異,原有模型在新的目標人群中的預測性能可能發生變化,因此在新人群中使用該預測模型進行預測時,往往需要在新人群中重新驗證其應用價值[6-7]。當預測模型在新目標人群中的預測性能降低時,研究者可選擇利用新人群數據重新建立預測模型。但是,完全重新建立模型忽視了原有模型信息,與盡可能考慮先驗信息的科學研究原則相違背[8]。在原有模型信息的基礎上構建適用于新人群的預測模型,即基于新人群數據對原有模型進行校準與更新[9],是目前更為常見的方法。模型更新的方法主要包括回歸系數更新、Meta-model法及動態模型構建三大類,其中,后兩種方法近年來逐漸受到更多關注,因其應用場景、計算量等原因在實際應用時受到一定限制,目前常用的模型更新方法仍以回歸系數更新為主。因此,本文在系統性介紹模型更新方法的基礎上,主要闡述回歸系數更新法(分別基于Logistic回歸和Cox回歸兩種常見的臨床預測模型)及其實現過程,旨在為國內臨床研究者提供參考。臨床常見預測模型校準與更新方法見表1。

1 基于Logistic回歸的模型系數更新
目前,Logistic臨床預測模型的校準與更新方法根據對原始模型調整的方式主要分為模型再校準(model recalibration)、模型修正(model revision)和模型擴展(model extension)三大類[10-12]。假定原始模型Model 0表達式為[13]:
![]() |
為截距,X1,X2,······,Xn代表模型中納入的n個預測因子,β10,β20,······,βn0分別為模型0中各預測因子對應的斜率或回歸系數。β10X1+β20X2+······+βn0Xn稱為模型線性預測值(linear predictor,LP)。
1.1 截距校正
截距校正是最簡單的模型再校準方法,又稱為“大范圍校準(calibration-in-the-large)”或平均校準,一般適用于原始模型的建模人群與新目標人群的總體結局事件發生率存在系統性差異,即按照原始模型估算的目標人群事件風險與實際相比存在系統性高估或低估,且這種差異不是由于兩個人群預測因子的分布差異造成的。截距校正是通過僅調整模型截距,使校準后的預測均值接近實際觀測均值。校準后的預測模型Model 1可表示為:
![]() |
其中,為校準后的模型截距。
截距校正的實現方法主要有兩種:第一種為保持原始模型中預測因子及其回歸系數不變(即可將LP整體作為模型中的唯一協變量,并將斜率固定為1),在新目標人群數據集中進行重新擬合,使得新模型預測的平均風險等于實際觀察到的平均風險。
第二種為基于新目標人群使用原始模型的平均預測風險和實際的結局發生率來計算校正因子(correction factor),新模型截距等于原模型截距項與校正因子之和[8],即:
![]() |
需要注意的是,截距校正并不改變個體預測風險排序,原模型和新模型的受試者工作特征(receiver operating characteristic curve,ROC)曲線不變,因此該方法在提高校準度的同時并不改變區分度。
1.2 截距和回歸系數整體的校正
這種模型再校準方法是在截距校正的基礎上,同時對所有預測因子權重(即回歸系數)進行整體調整,又被稱為邏輯校準(logistic calibration),適用于原始模型的回歸系數過擬合(或欠擬合)的情況。實現方法為將LP整體作為模型的唯一協變量,在新人群數據集中進行模型擬合,即不固定斜率或截距。其校正后的預測模型Model 2表示為:
![]() |
其中,為更新后的模型截距,
為回歸系數整體校正因子。同樣的,這種方法可提高模型校準度,但不改變區分度。
1.3 選擇性回歸系數重估計
該法是在Model 2的基礎上重新估計某個或某些預測因子的回歸系數,屬于模型修正方法,適用于新目標人群的部分預測因子與結局的關聯強度(即回歸系數)與原始模型不同的場景。實現方法為對模型中已經納入的預測因子(或其交互項)按照Wald值從大到小的順序進行測試,即使用前進法依次納入各個預測因子,通過似然比檢驗確認預測因子的增加是否對模型預測性能有顯著改善,直到新加入的預測因子對模型擬合度改善沒有統計學意義。由此形成的校正后預測模型Model 3表示為:
![]() |
、
分別表示進行回歸系數重估計的預測因子及其重估計回歸系數。該方法中不同預測因子的回歸系數改變不同,因此個體的風險排序可能發生改變,新模型區分度和校準度均可提高。
1.4 重新估計所有參數
這是另外一種模型修正方法,基于新目標人群集重新估計所有系數和截距,適用于目標人群與原始建模人群中預測因子與結局的關聯強度差異較大,或者目標人群樣本規模遠大于原始模型人群的情況。實現方法為:以原有預測因子為模型自變量,在目標人群中重新擬合預測模型并進行參數估計。校正后模型Model 4表示為:
![]() |
采用這種方法校正后的模型區分度、校準度均可提高。不難發現,Model 3實際上是介于Model 2和Model 4之間的模型,當選擇性回歸系數重估計法中預測因子的納入標準設定極為嚴格時,Model 3等同于Model 2;當納入標準非常寬松時,Model 3與Model 4等同。
1.5 模型擴展
模型擴展是指在上述Model 2~4的基礎上納入新預測因子,適用于原始預測模型中未包括一個或多個潛在預測因子,或者需要加入新發現的生物標記物的場景。實現方法為在Model 2~4的基礎上增加其他潛在預測因子,并在新目標人群集中進行擬合,校正后的模型Model 5表示為:
![]() |
、
分別表示新納入的預測因子及其回歸系數。同樣地,擴展后模型的區分度、校準度均可提高。
如果使用上述三大類模型更新方法后仍尚未達到預期改善,可新建預測模型,即直接在新目標人群中完全重建,根據研究實際情況,潛在預測因子可綜合考慮既往模型中納入的預測因子和其他預測因子。但是,在新目標人群樣本規模相對較小的情況下,更推薦使用相對簡單的模型校準與更新方法。
2 基于Cox回歸的模型系數更新
基于Cox回歸的預測模型用于處理生存數據,結局變量為時間-事件類型(time-to-event outcome),生存函數通常可表示為[14]:
![]() |
為基線生存函數,
為預測因子取值為X的個體t時刻結局事件的發生概率,
為預后指數(prognostic index,PI)。基線生存風險可表示為
,其中
為基線累計風險。雖然在使用Cox回歸探索預后因素對生存的影響時,往往不指定基線生存函數,重點關注回歸系數
的估計。然而,基于Cox回歸進行預測時,除需要回歸系數
外,還需要知道基線生存函數或基線累計風險。類似地,基于Cox回歸的模型校準和更新方法也可分為三大類:再校準、修正和擴展。
2.1 基準生存率或生存率更新
與1.1類似,當新人群與原始建模人群的生存率存在系統性差異,而暫無證據認為模型預測因子在兩個人群中對生存率的影響不同,可通過校準基準生存率實現模型再校準。目前應用較多的方法是計算新人群某一時點的基準生存率(預測因子取值為0或均數時的生存率)替代原有基準生存率,如基于中國多省的隊列研究數據對Framingham模型進行校準[15],使用Kaplan-Meier(KM)法估計新人群隊列的平均事件發生率(對應預測因子取均值時的生存率)替代原有基準生存率[16],同時使用新人群隊列各預測因子的均值替代原模型中對應均值[15]。
此外,部分文章中會報告定性的“生存模型”,即風險分層規則:將人群按照一定的規則分組(如根據個體預測因子的取值劃分為不同風險組),并提供各分組特定時間點的生存率數據(如5年生存率),如國際非霍奇金淋巴瘤預后因素項目研究[17-18]。當將該風險分層規則用于新人群時,亦可能需要校準(如校準各分組固定時間點的生存率),可利用KM法估計的新人群中各亞組固定時間點的觀察生存率和預測生存率進行校準,即KM校準法[18-19]:
![]() |
其中是指第g組KM曲線觀察到的生存率,
指該組預測的生存率。若
固定為1則表示接受原始模型中的風險比,即與Logistic風險預測模型的Model 1類似,不改變回歸系數,只改變截距
。校正后各組不同時點生存率為:
![]() |
2.2 回歸系數整體校準
除外基準風險,基于Cox回歸的預測模型研究中,我們還關注新場景下預測因子對生存結局的影響是否改變,即是否改變,這種情況下可通過整體校準回歸系數的方式對原始模型進行驗證與校正,可表示為:
![]() |
其中,指校準后t時刻的瞬時風險,
指校準后的t時刻的基準風險,
指線性預測因子
整體的校準回歸系數。該法類似Logistic預測模型部分校正的Model 2,以PI作為唯一協變量在新人群數據集中擬合Cox回歸模型,即可得到的整體校正回歸系數
,
即為校正后的回歸系數。
擬合Cox回歸模型估算回歸系數時無需指定基準生存函數,故Cox模型被歸為“半參數模型”,上述校準中亦無需指定基準生存函數。若要對模型的基準生存函數和整體回歸系數均進行驗證與校準,則需根據實際情況指定基準風險函數,擬合參數模型,如Weibull模型[18-19],但其在實際研究中應用較少。
2.3 模型回歸系數重估計
當新數據集中預測因子的分布與原始建模數據集存在差異或新場景中某些預測因子的定義發生了改變,導致預測因子對于事件發生風險的影響發生變化時,可在2.2所述PI整體回歸系數校準的基礎上,采用前進法依次納入顯著改善(有統計學意義)模型預測性能的預測因子,從而實現對部分或全部預測因子回歸系數的重估計,該法屬于模型修正,可表示為:
![]() |
表示原始模型中的PI,
為回歸系數整體校準的系數,
則為部分或全部預測因子的重估計回歸系數。
2.4 模型擴展
如果有新的預測因子擬納入,可對原始模型進行擴展,與模型回歸系數重估計類似,在原始模型的基礎上采用前進法依次納入新的預測因子,以避免過擬合問題,用表示新納入的預測因子,則擴展模型可表示為:
![]() |
3 Meta-model法
利用Meta-model法進行模型更新的核心思想是合并既往預測模型和基于最新數據構建的預測模型,以期在更廣泛人群中應用,適用于既往已存在多個針對當前研究結局的預測模型的情況[20]。但一般情況下,難以獲取既往預測模型建立時所使用的個體水平數據,當使用既往預測模型的系數信息構建Meta模型時,則要求所有既往預測模型包含相同的預測因子,如“兩步法”策略[21]:首先基于當前數據集構建預測模型,納入與既往模型相同的預測因子;進一步借助Meta分析技術合并既往模型系數和基于當前數據集構建的預測模型系數,以獲得Meta模型實現模型更新。但在上述場景下,目前尚無合適的方法在Meta模型中加入或剔除預測因子[21]。當既往個體水平數據可獲取時,合并既往和當前個體水平數據后重新擬合模型,該策略通過加入隨機效應項等方法以得到針對不同來源人群的截距項;其局限性是當不同人群預測因子與結局的關聯存在較大異質性時,Meta模型的表現欠佳。若既往預測模型包含的預測因子不一致時,可采用模型平均(model averaging)或疊加回歸(stacked regression)的策略。前者需要首先通過回歸系數更新法更新既往預測模型,模型更新程度決定了最終擬合的Meta模型,但目前尚無統一的標準規定模型更新的程度[22]。后者以每個既往預測模型的風險評分作為預測因子,需估計的參數數量較前者少,但存在多重共線性問題[23]。綜上,Meta-model法適用于存在多個既往預測模型,當各模型納入的預測因子一致時較佳;但該法會受到既往預測模型研究質量的影響,實際應用時存在一定的局限性。
4 動態模型構建
除對基于單一時間截面信息預測結局的靜態模型進行更新外,構建動態預測模型也可作為模型更新的一種方法[24]。動態預測更新法利用來自同一人群多個不同時間點采集的縱向數據(如時依預測因子等),使用不斷收集的新數據實現動態預測和風險實時更新。關于動態預測模型更詳細的方法介紹可參考作者已發表的相關文章[25]。需要注意的是,構建動態預測模型的計算量較大,較大程度上限制了其應用。
5 R語言實現
目前,Meta-model及動態模型構建方式仍不夠成熟,存在較多局限性,預測模型的系數校準仍是當前模型更新的最常用方法。因此,本文以預測模型系數更新為例,介紹模型更新的R語言實現過程。
5.1 Logistic回歸模型系數更新的R實現
以Li等對肝細胞癌風險預測模型ASAP在日常臨床實踐中預測性能的驗證和更新為例,對其校準度和區分度進行展示[8,26]。模型驗證與更新所使用的原始模型為乙型肝炎病毒感染患者肝細胞癌的風險預測模型ASAP,該原始模型通過logistic回歸建立,該模型以患者肝細胞癌是否發生(hcc)為觀察結局,包含了年齡(age)、性別(sex)、甲胎蛋白水平(AFP)及維生素K缺乏誘導的凝血酶原Ⅱ水平(PIVKA-Ⅱ)四個預測因子[27],其中,AFP和PIVKA-Ⅱ水平為偏態分布,取其對數值納入預測模型,定義模型建立數據集為data_derive,在該數據集中擬合原始預測模型,相關R代碼如下[28]:
#原始預測模型的構建
model0 <- glm(hcc ~ age + sex + log(AFP) + log(PIVKA-II), data=data_derive, binomial(link = 'logit')) #定義連接函數為“logit”
summary(model0)
所得原始預測模型Model 0表達式為:?7.57711770+0.04666357[age]?0.57611693[sex]+0.42243533[log(AFP)]+1.10518910[log(PIVKA-II)]。基于2018年5月至2021年1月間在湖北省中醫院收集的病毒性或非病毒性慢性肝炎和肝硬化患者相關數據(對應更新數據集data_update),將原始ASAP模型Model 0應用于更新數據集中data_update,檢驗ASAP模型Model 0在更新數據集data_update人群中的區分度和校準度,相關R代碼如下:
#計算區分度:計算AUC(ROC曲線下面積)及其95%CI
library(pROC)
pr0 <- predict(model0, data_update, type = c(“response”))
roccurve0 <- roc(data_update $hcc ~ pr0)
auc(roccurve0)
ci.auc(data_update $hcc , pr0)
#繪制校準圖
Cal0<-calibrate(model0, method = "boot", B=1000)
plot(cal0,xlim=c(0,1.0),ylim=c(0,1.0),
xlab = " Predicted Riskl", ylab = "Actual risk")
從結果表2中可看出,模型應用于校正數據集時區分度較好[AUC=0.982,95%CI(0.970,0.990)],但校準度欠佳(校準曲線斜率:1.192,截距:?3.243)。

采用1.1~1.4中各模型校準方法對原始模型進行更新,并評估更新后模型的區分度和校準度,結果見表2。1.5模型擴展過程與重新擬合預測模型類似,區分度校準度計算相關R代碼與原始模型類似,在此不作贅述,1.1~1.4模型更新相關R代碼如下:
#將原始預測模型線性部分定義為LP0
lp0 <- 0.04666357[age] ? 0.57611693[sex] +0.42243533[log(AFP)] + 1.10518910[log(PIVKA-II)]
#1.1-截距校正
model1 <- glm(hcc~offset(lp0),data= data_update, binomial(link = 'logit')) #以原始模型LP0為唯一協變量,同時固定其斜率為1,進行模型擬合
summary(model1)
#1.2-截距和回歸系數整體的校正
model2 <- glm(hcc~lp0,data= data_update, binomial(link = 'logit')) #以原始模型LP0為唯一協變量進行模型擬合
summary(model2)
#1.3-選擇性回歸系數重估計(以甲胎蛋白水平為例)
model3 <- glm(hcc~lp0+ log(AFP), data= data_update,, binomial(link = 'logit')) #以原始模型LP0及加入后對模型擬合提升有意義的預測因子甲胎蛋白水平為協變量進行模型擬合
summary(model3)
#1.4-重新估計所有參數
model4 <- glm(hcc~ age + sex + log(AFP) + log(PIVKA-II), data=data_derive, binomial(link = 'logit')) #以原始模型預測因子為協變量重新進行模型擬合
summary(model4)
1.1、1.2、1.4模型更新方法對應的模型預測性能見表2,可看出,截距校正更新得到的模型Model 1、截距和回歸系數整體的校正得到的預測模型Model 2及重新估計所有參數得到的更新后模型Model 4與原始模型Model 0相比校準度均更好。截距校正及截距和回歸系數整體的校正兩種方法本身不影響模型區分度,但可改變模型校準度。從Model 1~Model 4,預測模型殘差不斷減小,也提示預測模型校準度的不斷改善。可注意到,本例中原始模型在新人群中的區分度本身較優,因此后續的Model 4也并未明顯提高其區分度。
5.2 Cox回歸模型校準和更新的R實現
Cox回歸模型建立的R實現與Logistic回歸校正相似,為節省篇幅,此處主要針對2.2~2.4給出Cox回歸模型校準的關鍵語句,2.1中涉及的KM法估計新人群隊列平均事件發生率的過程在此不作贅述。我們使用R軟件survival包中的coxph ()函數建立Cox回歸預測模型[29-31],同時假定data_cox作為原始Cox回歸預測模型的建模數據集,其中time表示生存時間,status表示刪失情況,假定原始模型納入了四個預測因子,分別以X1,X2,X3,X4表示,以PI表示原始預測模型PI,即β1X1+β2X2+β3X3+β4X4,用于模型校準的新數據集以data_coxnew表示,模型擴展中納入的新預測因子表示為X5,X6,則基于Cox回歸構建預測模型并進行模型校準和更新的R關鍵語句如下(模型預測性能測試相關R語言與Logistic相似):
#原始模型:
library("survival”) #調用Cox回歸模型構建所需R包
model0<-coxph(Surv(time,status)~ X1+X2+X3+X4,data=data_cox)#原始Cox回歸模型的構建
summary(model0) #原始Cox回歸模型的展示
#2.2-回歸系數整體校準
Model2<-coxph(Surv(time,status)~PI, data=data_coxnew) #將原始預測模型PI作為整體納入模型進行擬合
#2.3-部分回歸系數重估計(以X2, X3為例)
Model3<-coxph(Surv(time,status)~PI+ X2+X3, data=data_coxnew) #在2.2基礎上加入部分已納入預測因子進行模型擬合
#2.3-全部回歸系數重估計
Model3<-coxph(Surv(time,status)~PI+ X1+X2+X3+X4, data=data_coxnew) #在2.2基礎上加入全部已納入的預測因子進行模型擬合
#2.4-模型擴展
Model4<-coxph(Surv(time,status)~PI+ X5+X6, data=data_coxnew) #在2.2基礎上加入新預測因子進行模型擬合
6 討論
近年來,醫學研究不斷向精準化、個性化發展,臨床預測模型在疾病預防、診療和預后管理等方面的應用也越來越廣泛。然而,由于目標應用人群與原始建模人群特征間存在的諸多差異,預測模型在新目標人群應用的預測性能可能降低,影響其外推性。采用適當的統計方法在新目標人群中對已有預測模型進行校準和更新,可在充分利用先驗信息的基礎上改善臨床預測模型的準確性,提高模型應用價值,減少目前醫學研究中存在的“總是在建立模型、偶爾驗證模型、幾乎從不使用模型”的問題[32]。
目前,在選擇模型更新和校準方法時,依賴對已有人群數據的描述性分析、關聯性分析等,故不能完全“指向”某一單一最佳方法,需要綜合對新舊研究場景的定性比較及相關專業性考慮,使模型達到更理想性能(如更高的區分度和校準度),同時兼顧模型的簡潔性,選擇通過相對更小的更新(簡單的校準/更新方法)獲得較好的性能改善的方法。另一方面,“回歸系數更新”的系列方法也是“嵌套”和遞進的,后續復雜更新方法是以前序方法為基礎的,在這個過程中,也可幫助研究者更好選擇兼顧“簡潔-準確”的更新模型。因此,實際應用時,建議從簡單到復雜方法逐步遞進,直到校準/更新后的模型滿足應用的需求或達到預期目標。
綜上所述,本研究對不同模型更新方法的特點和適用場景進行了總結,重點圍繞目前臨床研究中常見的Logistic回歸預測模型和Cox回歸預測模型,闡述了相應的模型回歸系數更新法,并提供了相應的關鍵R語句,為廣大臨床研究者提供參考,助力預測模型的推廣應用。
臨床預測模型是指利用數學公式構建多因素模型,評估特定個體當前患病概率或將來某結局發生概率的一種常見方法,在醫學研究與實踐中應用非常廣泛[1-2]。預測模型的預測能力可通過模型的區分度和校準度進行評價[3],通常臨床預測模型開發后均需要通過驗證模型對模型預測能力指標進行考察,來證明該模型的科學性和應用價值[4-5]。然而,預測模型的建立是基于具有某種特征的研究人群進行的,當將其應用于新人群時,由于研究時間、地域特征等方面存在差異,原有模型在新的目標人群中的預測性能可能發生變化,因此在新人群中使用該預測模型進行預測時,往往需要在新人群中重新驗證其應用價值[6-7]。當預測模型在新目標人群中的預測性能降低時,研究者可選擇利用新人群數據重新建立預測模型。但是,完全重新建立模型忽視了原有模型信息,與盡可能考慮先驗信息的科學研究原則相違背[8]。在原有模型信息的基礎上構建適用于新人群的預測模型,即基于新人群數據對原有模型進行校準與更新[9],是目前更為常見的方法。模型更新的方法主要包括回歸系數更新、Meta-model法及動態模型構建三大類,其中,后兩種方法近年來逐漸受到更多關注,因其應用場景、計算量等原因在實際應用時受到一定限制,目前常用的模型更新方法仍以回歸系數更新為主。因此,本文在系統性介紹模型更新方法的基礎上,主要闡述回歸系數更新法(分別基于Logistic回歸和Cox回歸兩種常見的臨床預測模型)及其實現過程,旨在為國內臨床研究者提供參考。臨床常見預測模型校準與更新方法見表1。

1 基于Logistic回歸的模型系數更新
目前,Logistic臨床預測模型的校準與更新方法根據對原始模型調整的方式主要分為模型再校準(model recalibration)、模型修正(model revision)和模型擴展(model extension)三大類[10-12]。假定原始模型Model 0表達式為[13]:
![]() |
為截距,X1,X2,······,Xn代表模型中納入的n個預測因子,β10,β20,······,βn0分別為模型0中各預測因子對應的斜率或回歸系數。β10X1+β20X2+······+βn0Xn稱為模型線性預測值(linear predictor,LP)。
1.1 截距校正
截距校正是最簡單的模型再校準方法,又稱為“大范圍校準(calibration-in-the-large)”或平均校準,一般適用于原始模型的建模人群與新目標人群的總體結局事件發生率存在系統性差異,即按照原始模型估算的目標人群事件風險與實際相比存在系統性高估或低估,且這種差異不是由于兩個人群預測因子的分布差異造成的。截距校正是通過僅調整模型截距,使校準后的預測均值接近實際觀測均值。校準后的預測模型Model 1可表示為:
![]() |
其中,為校準后的模型截距。
截距校正的實現方法主要有兩種:第一種為保持原始模型中預測因子及其回歸系數不變(即可將LP整體作為模型中的唯一協變量,并將斜率固定為1),在新目標人群數據集中進行重新擬合,使得新模型預測的平均風險等于實際觀察到的平均風險。
第二種為基于新目標人群使用原始模型的平均預測風險和實際的結局發生率來計算校正因子(correction factor),新模型截距等于原模型截距項與校正因子之和[8],即:
![]() |
需要注意的是,截距校正并不改變個體預測風險排序,原模型和新模型的受試者工作特征(receiver operating characteristic curve,ROC)曲線不變,因此該方法在提高校準度的同時并不改變區分度。
1.2 截距和回歸系數整體的校正
這種模型再校準方法是在截距校正的基礎上,同時對所有預測因子權重(即回歸系數)進行整體調整,又被稱為邏輯校準(logistic calibration),適用于原始模型的回歸系數過擬合(或欠擬合)的情況。實現方法為將LP整體作為模型的唯一協變量,在新人群數據集中進行模型擬合,即不固定斜率或截距。其校正后的預測模型Model 2表示為:
![]() |
其中,為更新后的模型截距,
為回歸系數整體校正因子。同樣的,這種方法可提高模型校準度,但不改變區分度。
1.3 選擇性回歸系數重估計
該法是在Model 2的基礎上重新估計某個或某些預測因子的回歸系數,屬于模型修正方法,適用于新目標人群的部分預測因子與結局的關聯強度(即回歸系數)與原始模型不同的場景。實現方法為對模型中已經納入的預測因子(或其交互項)按照Wald值從大到小的順序進行測試,即使用前進法依次納入各個預測因子,通過似然比檢驗確認預測因子的增加是否對模型預測性能有顯著改善,直到新加入的預測因子對模型擬合度改善沒有統計學意義。由此形成的校正后預測模型Model 3表示為:
![]() |
、
分別表示進行回歸系數重估計的預測因子及其重估計回歸系數。該方法中不同預測因子的回歸系數改變不同,因此個體的風險排序可能發生改變,新模型區分度和校準度均可提高。
1.4 重新估計所有參數
這是另外一種模型修正方法,基于新目標人群集重新估計所有系數和截距,適用于目標人群與原始建模人群中預測因子與結局的關聯強度差異較大,或者目標人群樣本規模遠大于原始模型人群的情況。實現方法為:以原有預測因子為模型自變量,在目標人群中重新擬合預測模型并進行參數估計。校正后模型Model 4表示為:
![]() |
采用這種方法校正后的模型區分度、校準度均可提高。不難發現,Model 3實際上是介于Model 2和Model 4之間的模型,當選擇性回歸系數重估計法中預測因子的納入標準設定極為嚴格時,Model 3等同于Model 2;當納入標準非常寬松時,Model 3與Model 4等同。
1.5 模型擴展
模型擴展是指在上述Model 2~4的基礎上納入新預測因子,適用于原始預測模型中未包括一個或多個潛在預測因子,或者需要加入新發現的生物標記物的場景。實現方法為在Model 2~4的基礎上增加其他潛在預測因子,并在新目標人群集中進行擬合,校正后的模型Model 5表示為:
![]() |
、
分別表示新納入的預測因子及其回歸系數。同樣地,擴展后模型的區分度、校準度均可提高。
如果使用上述三大類模型更新方法后仍尚未達到預期改善,可新建預測模型,即直接在新目標人群中完全重建,根據研究實際情況,潛在預測因子可綜合考慮既往模型中納入的預測因子和其他預測因子。但是,在新目標人群樣本規模相對較小的情況下,更推薦使用相對簡單的模型校準與更新方法。
2 基于Cox回歸的模型系數更新
基于Cox回歸的預測模型用于處理生存數據,結局變量為時間-事件類型(time-to-event outcome),生存函數通常可表示為[14]:
![]() |
為基線生存函數,
為預測因子取值為X的個體t時刻結局事件的發生概率,
為預后指數(prognostic index,PI)。基線生存風險可表示為
,其中
為基線累計風險。雖然在使用Cox回歸探索預后因素對生存的影響時,往往不指定基線生存函數,重點關注回歸系數
的估計。然而,基于Cox回歸進行預測時,除需要回歸系數
外,還需要知道基線生存函數或基線累計風險。類似地,基于Cox回歸的模型校準和更新方法也可分為三大類:再校準、修正和擴展。
2.1 基準生存率或生存率更新
與1.1類似,當新人群與原始建模人群的生存率存在系統性差異,而暫無證據認為模型預測因子在兩個人群中對生存率的影響不同,可通過校準基準生存率實現模型再校準。目前應用較多的方法是計算新人群某一時點的基準生存率(預測因子取值為0或均數時的生存率)替代原有基準生存率,如基于中國多省的隊列研究數據對Framingham模型進行校準[15],使用Kaplan-Meier(KM)法估計新人群隊列的平均事件發生率(對應預測因子取均值時的生存率)替代原有基準生存率[16],同時使用新人群隊列各預測因子的均值替代原模型中對應均值[15]。
此外,部分文章中會報告定性的“生存模型”,即風險分層規則:將人群按照一定的規則分組(如根據個體預測因子的取值劃分為不同風險組),并提供各分組特定時間點的生存率數據(如5年生存率),如國際非霍奇金淋巴瘤預后因素項目研究[17-18]。當將該風險分層規則用于新人群時,亦可能需要校準(如校準各分組固定時間點的生存率),可利用KM法估計的新人群中各亞組固定時間點的觀察生存率和預測生存率進行校準,即KM校準法[18-19]:
![]() |
其中是指第g組KM曲線觀察到的生存率,
指該組預測的生存率。若
固定為1則表示接受原始模型中的風險比,即與Logistic風險預測模型的Model 1類似,不改變回歸系數,只改變截距
。校正后各組不同時點生存率為:
![]() |
2.2 回歸系數整體校準
除外基準風險,基于Cox回歸的預測模型研究中,我們還關注新場景下預測因子對生存結局的影響是否改變,即是否改變,這種情況下可通過整體校準回歸系數的方式對原始模型進行驗證與校正,可表示為:
![]() |
其中,指校準后t時刻的瞬時風險,
指校準后的t時刻的基準風險,
指線性預測因子
整體的校準回歸系數。該法類似Logistic預測模型部分校正的Model 2,以PI作為唯一協變量在新人群數據集中擬合Cox回歸模型,即可得到的整體校正回歸系數
,
即為校正后的回歸系數。
擬合Cox回歸模型估算回歸系數時無需指定基準生存函數,故Cox模型被歸為“半參數模型”,上述校準中亦無需指定基準生存函數。若要對模型的基準生存函數和整體回歸系數均進行驗證與校準,則需根據實際情況指定基準風險函數,擬合參數模型,如Weibull模型[18-19],但其在實際研究中應用較少。
2.3 模型回歸系數重估計
當新數據集中預測因子的分布與原始建模數據集存在差異或新場景中某些預測因子的定義發生了改變,導致預測因子對于事件發生風險的影響發生變化時,可在2.2所述PI整體回歸系數校準的基礎上,采用前進法依次納入顯著改善(有統計學意義)模型預測性能的預測因子,從而實現對部分或全部預測因子回歸系數的重估計,該法屬于模型修正,可表示為:
![]() |
表示原始模型中的PI,
為回歸系數整體校準的系數,
則為部分或全部預測因子的重估計回歸系數。
2.4 模型擴展
如果有新的預測因子擬納入,可對原始模型進行擴展,與模型回歸系數重估計類似,在原始模型的基礎上采用前進法依次納入新的預測因子,以避免過擬合問題,用表示新納入的預測因子,則擴展模型可表示為:
![]() |
3 Meta-model法
利用Meta-model法進行模型更新的核心思想是合并既往預測模型和基于最新數據構建的預測模型,以期在更廣泛人群中應用,適用于既往已存在多個針對當前研究結局的預測模型的情況[20]。但一般情況下,難以獲取既往預測模型建立時所使用的個體水平數據,當使用既往預測模型的系數信息構建Meta模型時,則要求所有既往預測模型包含相同的預測因子,如“兩步法”策略[21]:首先基于當前數據集構建預測模型,納入與既往模型相同的預測因子;進一步借助Meta分析技術合并既往模型系數和基于當前數據集構建的預測模型系數,以獲得Meta模型實現模型更新。但在上述場景下,目前尚無合適的方法在Meta模型中加入或剔除預測因子[21]。當既往個體水平數據可獲取時,合并既往和當前個體水平數據后重新擬合模型,該策略通過加入隨機效應項等方法以得到針對不同來源人群的截距項;其局限性是當不同人群預測因子與結局的關聯存在較大異質性時,Meta模型的表現欠佳。若既往預測模型包含的預測因子不一致時,可采用模型平均(model averaging)或疊加回歸(stacked regression)的策略。前者需要首先通過回歸系數更新法更新既往預測模型,模型更新程度決定了最終擬合的Meta模型,但目前尚無統一的標準規定模型更新的程度[22]。后者以每個既往預測模型的風險評分作為預測因子,需估計的參數數量較前者少,但存在多重共線性問題[23]。綜上,Meta-model法適用于存在多個既往預測模型,當各模型納入的預測因子一致時較佳;但該法會受到既往預測模型研究質量的影響,實際應用時存在一定的局限性。
4 動態模型構建
除對基于單一時間截面信息預測結局的靜態模型進行更新外,構建動態預測模型也可作為模型更新的一種方法[24]。動態預測更新法利用來自同一人群多個不同時間點采集的縱向數據(如時依預測因子等),使用不斷收集的新數據實現動態預測和風險實時更新。關于動態預測模型更詳細的方法介紹可參考作者已發表的相關文章[25]。需要注意的是,構建動態預測模型的計算量較大,較大程度上限制了其應用。
5 R語言實現
目前,Meta-model及動態模型構建方式仍不夠成熟,存在較多局限性,預測模型的系數校準仍是當前模型更新的最常用方法。因此,本文以預測模型系數更新為例,介紹模型更新的R語言實現過程。
5.1 Logistic回歸模型系數更新的R實現
以Li等對肝細胞癌風險預測模型ASAP在日常臨床實踐中預測性能的驗證和更新為例,對其校準度和區分度進行展示[8,26]。模型驗證與更新所使用的原始模型為乙型肝炎病毒感染患者肝細胞癌的風險預測模型ASAP,該原始模型通過logistic回歸建立,該模型以患者肝細胞癌是否發生(hcc)為觀察結局,包含了年齡(age)、性別(sex)、甲胎蛋白水平(AFP)及維生素K缺乏誘導的凝血酶原Ⅱ水平(PIVKA-Ⅱ)四個預測因子[27],其中,AFP和PIVKA-Ⅱ水平為偏態分布,取其對數值納入預測模型,定義模型建立數據集為data_derive,在該數據集中擬合原始預測模型,相關R代碼如下[28]:
#原始預測模型的構建
model0 <- glm(hcc ~ age + sex + log(AFP) + log(PIVKA-II), data=data_derive, binomial(link = 'logit')) #定義連接函數為“logit”
summary(model0)
所得原始預測模型Model 0表達式為:?7.57711770+0.04666357[age]?0.57611693[sex]+0.42243533[log(AFP)]+1.10518910[log(PIVKA-II)]。基于2018年5月至2021年1月間在湖北省中醫院收集的病毒性或非病毒性慢性肝炎和肝硬化患者相關數據(對應更新數據集data_update),將原始ASAP模型Model 0應用于更新數據集中data_update,檢驗ASAP模型Model 0在更新數據集data_update人群中的區分度和校準度,相關R代碼如下:
#計算區分度:計算AUC(ROC曲線下面積)及其95%CI
library(pROC)
pr0 <- predict(model0, data_update, type = c(“response”))
roccurve0 <- roc(data_update $hcc ~ pr0)
auc(roccurve0)
ci.auc(data_update $hcc , pr0)
#繪制校準圖
Cal0<-calibrate(model0, method = "boot", B=1000)
plot(cal0,xlim=c(0,1.0),ylim=c(0,1.0),
xlab = " Predicted Riskl", ylab = "Actual risk")
從結果表2中可看出,模型應用于校正數據集時區分度較好[AUC=0.982,95%CI(0.970,0.990)],但校準度欠佳(校準曲線斜率:1.192,截距:?3.243)。

采用1.1~1.4中各模型校準方法對原始模型進行更新,并評估更新后模型的區分度和校準度,結果見表2。1.5模型擴展過程與重新擬合預測模型類似,區分度校準度計算相關R代碼與原始模型類似,在此不作贅述,1.1~1.4模型更新相關R代碼如下:
#將原始預測模型線性部分定義為LP0
lp0 <- 0.04666357[age] ? 0.57611693[sex] +0.42243533[log(AFP)] + 1.10518910[log(PIVKA-II)]
#1.1-截距校正
model1 <- glm(hcc~offset(lp0),data= data_update, binomial(link = 'logit')) #以原始模型LP0為唯一協變量,同時固定其斜率為1,進行模型擬合
summary(model1)
#1.2-截距和回歸系數整體的校正
model2 <- glm(hcc~lp0,data= data_update, binomial(link = 'logit')) #以原始模型LP0為唯一協變量進行模型擬合
summary(model2)
#1.3-選擇性回歸系數重估計(以甲胎蛋白水平為例)
model3 <- glm(hcc~lp0+ log(AFP), data= data_update,, binomial(link = 'logit')) #以原始模型LP0及加入后對模型擬合提升有意義的預測因子甲胎蛋白水平為協變量進行模型擬合
summary(model3)
#1.4-重新估計所有參數
model4 <- glm(hcc~ age + sex + log(AFP) + log(PIVKA-II), data=data_derive, binomial(link = 'logit')) #以原始模型預測因子為協變量重新進行模型擬合
summary(model4)
1.1、1.2、1.4模型更新方法對應的模型預測性能見表2,可看出,截距校正更新得到的模型Model 1、截距和回歸系數整體的校正得到的預測模型Model 2及重新估計所有參數得到的更新后模型Model 4與原始模型Model 0相比校準度均更好。截距校正及截距和回歸系數整體的校正兩種方法本身不影響模型區分度,但可改變模型校準度。從Model 1~Model 4,預測模型殘差不斷減小,也提示預測模型校準度的不斷改善。可注意到,本例中原始模型在新人群中的區分度本身較優,因此后續的Model 4也并未明顯提高其區分度。
5.2 Cox回歸模型校準和更新的R實現
Cox回歸模型建立的R實現與Logistic回歸校正相似,為節省篇幅,此處主要針對2.2~2.4給出Cox回歸模型校準的關鍵語句,2.1中涉及的KM法估計新人群隊列平均事件發生率的過程在此不作贅述。我們使用R軟件survival包中的coxph ()函數建立Cox回歸預測模型[29-31],同時假定data_cox作為原始Cox回歸預測模型的建模數據集,其中time表示生存時間,status表示刪失情況,假定原始模型納入了四個預測因子,分別以X1,X2,X3,X4表示,以PI表示原始預測模型PI,即β1X1+β2X2+β3X3+β4X4,用于模型校準的新數據集以data_coxnew表示,模型擴展中納入的新預測因子表示為X5,X6,則基于Cox回歸構建預測模型并進行模型校準和更新的R關鍵語句如下(模型預測性能測試相關R語言與Logistic相似):
#原始模型:
library("survival”) #調用Cox回歸模型構建所需R包
model0<-coxph(Surv(time,status)~ X1+X2+X3+X4,data=data_cox)#原始Cox回歸模型的構建
summary(model0) #原始Cox回歸模型的展示
#2.2-回歸系數整體校準
Model2<-coxph(Surv(time,status)~PI, data=data_coxnew) #將原始預測模型PI作為整體納入模型進行擬合
#2.3-部分回歸系數重估計(以X2, X3為例)
Model3<-coxph(Surv(time,status)~PI+ X2+X3, data=data_coxnew) #在2.2基礎上加入部分已納入預測因子進行模型擬合
#2.3-全部回歸系數重估計
Model3<-coxph(Surv(time,status)~PI+ X1+X2+X3+X4, data=data_coxnew) #在2.2基礎上加入全部已納入的預測因子進行模型擬合
#2.4-模型擴展
Model4<-coxph(Surv(time,status)~PI+ X5+X6, data=data_coxnew) #在2.2基礎上加入新預測因子進行模型擬合
6 討論
近年來,醫學研究不斷向精準化、個性化發展,臨床預測模型在疾病預防、診療和預后管理等方面的應用也越來越廣泛。然而,由于目標應用人群與原始建模人群特征間存在的諸多差異,預測模型在新目標人群應用的預測性能可能降低,影響其外推性。采用適當的統計方法在新目標人群中對已有預測模型進行校準和更新,可在充分利用先驗信息的基礎上改善臨床預測模型的準確性,提高模型應用價值,減少目前醫學研究中存在的“總是在建立模型、偶爾驗證模型、幾乎從不使用模型”的問題[32]。
目前,在選擇模型更新和校準方法時,依賴對已有人群數據的描述性分析、關聯性分析等,故不能完全“指向”某一單一最佳方法,需要綜合對新舊研究場景的定性比較及相關專業性考慮,使模型達到更理想性能(如更高的區分度和校準度),同時兼顧模型的簡潔性,選擇通過相對更小的更新(簡單的校準/更新方法)獲得較好的性能改善的方法。另一方面,“回歸系數更新”的系列方法也是“嵌套”和遞進的,后續復雜更新方法是以前序方法為基礎的,在這個過程中,也可幫助研究者更好選擇兼顧“簡潔-準確”的更新模型。因此,實際應用時,建議從簡單到復雜方法逐步遞進,直到校準/更新后的模型滿足應用的需求或達到預期目標。
綜上所述,本研究對不同模型更新方法的特點和適用場景進行了總結,重點圍繞目前臨床研究中常見的Logistic回歸預測模型和Cox回歸預測模型,闡述了相應的模型回歸系數更新法,并提供了相應的關鍵R語句,為廣大臨床研究者提供參考,助力預測模型的推廣應用。