??專注R語(yǔ)言在??生物醫(yī)學(xué)中的使用 設(shè)為“星標(biāo)”,,精彩不錯(cuò)過(guò) BMJ在2020年發(fā)表了一篇關(guān)于預(yù)測(cè)模型樣本量計(jì)算的文章(10.1136/bmj.m441,,這篇文章是免費(fèi)下載的,記得把補(bǔ)充文件也下載下來(lái)),,算是目前樣本量計(jì)算的指南性文件,。 并且作者還提供了一個(gè)R包( 但是要注意該文獻(xiàn)的樣本量計(jì)算是針對(duì)開(kāi)發(fā)臨床預(yù)測(cè)模型需要的樣本量,,也就是訓(xùn)練集的樣本量,不是外部驗(yàn)證集的樣本量,。如果是驗(yàn)證集的樣本量,,作者專門又寫了3篇文章,分別針對(duì)回歸,、二分類,、生存數(shù)據(jù):
另外,,該文獻(xiàn)的樣本量計(jì)算方法是針對(duì)3大回歸模型的:線性回歸、邏輯回歸,、cox回歸,。如果是一些機(jī)器學(xué)習(xí)方法(比如隨機(jī)森林、支持向量機(jī)等)則需要更多的樣本,。 經(jīng)典方法Harrell老爺子在他的書《Regression Modeling Strategies》中介紹的開(kāi)發(fā)模型的樣本量計(jì)算方法是: 在開(kāi)發(fā)數(shù)據(jù)集(也就是訓(xùn)練集)中,,連續(xù)型結(jié)果的有效樣本量由研究參與者的總數(shù)決定(有多少用多少)。對(duì)于二分類結(jié)果,,有效樣本量通常被認(rèn)為大約等于事件(有結(jié)果的事件)和非事件(沒(méi)有結(jié)果的事件)的最小值; time-to-event數(shù)據(jù)中,,樣本量可以粗略等于陽(yáng)性事件的數(shù)量。 在為二分類或time-to-event數(shù)據(jù)開(kāi)發(fā)預(yù)測(cè)模型時(shí),,所需要的樣本量常用的計(jì)算方法是10EPV法,,即陽(yáng)性事件的數(shù)量至少是預(yù)測(cè)變量個(gè)數(shù)的10倍(10 events per variable,10EPV),。 但是“variable”一詞具有誤導(dǎo)性,,因?yàn)樵谀P椭幸粋€(gè)預(yù)測(cè)變量可能有多個(gè)β(即回歸系數(shù)),例如,,具有三個(gè)類別的分類型預(yù)測(cè)變量就會(huì)有兩個(gè)β(例如腫瘤等級(jí)1,、2、3,,那么就會(huì)有β(2和1比),、β(3和1比),因?yàn)榉诸愖兞吭诨貧w分析中需要進(jìn)行啞變量編碼),。還有就是在建模過(guò)程中使用了多項(xiàng)式轉(zhuǎn)換和樣條變換等也會(huì)使得同一個(gè)變量有多個(gè)β,,如果變量之間有交互項(xiàng)也會(huì)產(chǎn)生同樣的結(jié)果。 由于預(yù)測(cè)模型的參數(shù)(也就是回歸系數(shù)β)通常多于實(shí)際的預(yù)測(cè)變量個(gè)數(shù),,所以最好使用10EPP(10 events per candidate predictor parameter)法,,即陽(yáng)性事件的數(shù)量至少是“候選預(yù)測(cè)變量的參數(shù)”的10倍?!昂蜻x”一詞很重要,,因?yàn)槟P瓦^(guò)擬合的程度與預(yù)測(cè)變量參數(shù)的數(shù)量有關(guān),而不是最終模型方程中的參數(shù)數(shù)量,。 但是10EPP原則目前也有一些爭(zhēng)議,,也有大佬建議5EPP或者15、20,、50EPP,。這些數(shù)量的使用都是和具體的情況有關(guān)的,也沒(méi)個(gè)金標(biāo)準(zhǔn),,不僅取決于相對(duì)于候選預(yù)測(cè)變量參數(shù)數(shù)量的事件數(shù)量,,還取決于參與者總數(shù),、研究人群中的結(jié)果比例(發(fā)生率)以及模型的預(yù)期預(yù)測(cè)性能等。 4步法Van Smeden等和Riley等人最近的工作描述了如何計(jì)算預(yù)測(cè)模型開(kāi)發(fā)所需的樣本量,,使用條件是用戶指定目標(biāo)人群中的總體結(jié)果風(fēng)險(xiǎn)或平均結(jié)果值,、候選預(yù)測(cè)變量參數(shù)的數(shù)量以及總體模型擬合方面的預(yù)期模型性能。具體實(shí)施起來(lái)總結(jié)為4個(gè)步驟:
第一步樣本大小必須讓預(yù)測(cè)模型的截距能被精確估計(jì),,以確保開(kāi)發(fā)的模型可以準(zhǔn)確預(yù)測(cè)平均結(jié)果值(對(duì)應(yīng)連續(xù)型數(shù)據(jù))或總體結(jié)果比例(對(duì)應(yīng)二分類或者生存數(shù)據(jù)),。一個(gè)簡(jiǎn)單的方法是計(jì)算:能夠準(zhǔn)確估計(jì)“沒(méi)有預(yù)測(cè)變量的空模型(null model)的截距”所需要的樣本量。 這里涉及一個(gè)簡(jiǎn)單的數(shù)學(xué)知識(shí),,就是線性模型的截距反映了模型預(yù)測(cè)的平均值,。 這個(gè)“準(zhǔn)確估計(jì)”一般要求誤差在0.05以內(nèi),也就是說(shuō)預(yù)測(cè)值最好不要超過(guò)均值的95%可信區(qū)間,。 下圖是計(jì)算公式和一個(gè)例子。假如一個(gè)二分類數(shù)據(jù),,它的陽(yáng)性事件比例是0.5,,為了控制誤差在0.05以內(nèi),根據(jù)以下公式計(jì)算,,需要的樣本量最少是385個(gè),。 第二步預(yù)測(cè)值和真實(shí)值之間的誤差可以用很多指標(biāo)衡量,比如平均絕對(duì)百分比誤差(Mean Absolute Percentage Error MAPE),,這個(gè)指標(biāo)其實(shí)是衡量回歸模型的常用指標(biāo),,對(duì)于二分類數(shù)據(jù)如果使用的是概率的話也能用這個(gè)指標(biāo)衡量。 下面是計(jì)算公式和一個(gè)例子,。假如一個(gè)二分類數(shù)據(jù),,它的陽(yáng)性事件比例是0.3,預(yù)測(cè)變量有10個(gè),,為了控制誤差(MAPE)在0.05以內(nèi),,根據(jù)以下公式計(jì)算,需要的樣本量最少是461個(gè),。 第三步樣本量越少且預(yù)測(cè)變量數(shù)量越多,,則越容易過(guò)擬合,因此需要足夠的樣本量防止過(guò)擬合,。 建模過(guò)程中通常會(huì)使用收縮法(Shrinkage,,或者被稱為懲罰(penalisation)或正則化(regularisation))來(lái)降低過(guò)擬合的風(fēng)險(xiǎn),。Riley等人建議使用一個(gè)較小的收縮值(≤10%),并計(jì)算此時(shí)所需要的樣本量,。并且還需要指定候選預(yù)測(cè)變量參數(shù)的個(gè)數(shù)以及一個(gè)模型性能指標(biāo),,比如Cox-Snell R2(記為CS-R方,屬于偽R方的一種),。CS-R方可以反應(yīng)信噪比(signal:noise),,從而反應(yīng)模型是否過(guò)擬合。 對(duì)于連續(xù)型數(shù)據(jù)來(lái)說(shuō),,CS-R方就是決定系數(shù),,反應(yīng)模型所能解釋的方差(或者叫變異)百分比,范圍是0到1之間,,越接近1越好,,說(shuō)明模型能夠準(zhǔn)確識(shí)別數(shù)據(jù)內(nèi)部的模式,不會(huì)被噪聲(誤差)干擾,,如果CS-R方接近0則說(shuō)明模型很有可能過(guò)擬合,。 對(duì)于二分類數(shù)據(jù)和生存數(shù)據(jù)來(lái)說(shuō),CS-R方的范圍是0到max(CS-R方),。對(duì)于邏輯回歸模型來(lái)說(shuō),,如果陽(yáng)性事件發(fā)生率為0.5,0.4,,0.3,,0.2,0.1,,0.05,,0.01,那么對(duì)應(yīng)的max(CS-R方)分別是0.75,,0.74,,0.71,0.63,,0.48,,0.33,0.11,。所以即使模型的預(yù)期性能非常好,,這個(gè)CS-R方的值也一般會(huì)選擇比較小的值。 以下是二分類和生存數(shù)據(jù)的樣本量計(jì)算公式和一個(gè)示例,。對(duì)于一個(gè)邏輯回歸模型,,如果有20個(gè)候選預(yù)測(cè)變量參數(shù)(EPP),CS-R方選擇0.1,,那么為了使收縮值保持在10%,,最少的樣本量是1698,。 Cox-Snell R2(也就是CS-R方)的選擇有多種方法,以下是作者比較推薦的幾種:
本文獻(xiàn)的附件5提供了詳細(xì)的公式用于計(jì)算max(CS-R方),,感興趣的自己查看一下吧,。 第四步應(yīng)該有足夠多的樣本量保證模型的表面指標(biāo)和真實(shí)指標(biāo)之間的差異足夠小。 表面指標(biāo)(apparent values),,假如我們用訓(xùn)練集開(kāi)發(fā)了一個(gè)模型,,然后讓這個(gè)模型對(duì)訓(xùn)練集進(jìn)行預(yù)測(cè),這樣得到的指標(biāo)就是表面指標(biāo),,這種計(jì)算模型指標(biāo)的方法叫做重代入法(resubstitution),。真實(shí)指標(biāo)是指模型在其他數(shù)據(jù)中(就是模型開(kāi)發(fā)時(shí)沒(méi)用過(guò)的數(shù)據(jù))得到的更真實(shí)、更接近模型真實(shí)性能的指標(biāo),。 本篇文獻(xiàn)中采用的指標(biāo)是另外一種調(diào)整的R方,,即:Nagelkerke-R方(也是偽R方的一種),Nagelkerke-R方=CS-R方/max(CS-R方),。 下面是二分類和生存數(shù)據(jù)的樣本量計(jì)算公式,。對(duì)于一個(gè)邏輯回歸模型,假設(shè)陽(yáng)性事件的比例是0.05(此時(shí)對(duì)應(yīng)的max(CS-R方)是0.33),,指定CS-R方為0.2,,那么為了使真實(shí)的Nagelkerke-R方和表面Nagelkerke-R方的差異保持在0.05,至少需要的樣本量是1079,。 總結(jié)下面是一個(gè)總結(jié),對(duì)于連續(xù)型數(shù)據(jù),,推薦使用4步法(C1-C4),,對(duì)于二分類數(shù)據(jù)推薦使用4步法(B1-B4),對(duì)于生存數(shù)據(jù)推薦使用3步法(T1-T4),。 除此之外作者專門寫了一個(gè)R包用于計(jì)算臨床預(yù)測(cè)模型的樣本量: R包使用方法下面用3個(gè)實(shí)例演示這個(gè)R包的使用方法,。
二分類數(shù)據(jù)假如我們要根據(jù)妊娠15周時(shí)測(cè)定的各種指標(biāo)預(yù)測(cè)孕婦發(fā)生子癇前期的風(fēng)險(xiǎn),,這是一個(gè)二分類數(shù)據(jù),結(jié)果變量是發(fā)生子癇/不發(fā)生子癇,。 假設(shè)該數(shù)據(jù)中,,發(fā)生子癇的比例是0.05(陽(yáng)性事件的比例),,候選預(yù)測(cè)變量的參數(shù)數(shù)量是30(EPP是30),max(CS-R方)是0.33,。如果我們預(yù)期模型能夠解釋15%的變異,,根據(jù)第3步中介紹的CS-R方的計(jì)算方法,可以得到CS-R方=0.15*0.33=0.05,。 有了這幾個(gè)數(shù)據(jù),,就可以計(jì)算樣本量了:
對(duì)于二分類數(shù)據(jù),使用4步法計(jì)算樣本量,,其中B2這一步不能通過(guò)這個(gè)包計(jì)算,,所以這個(gè)包給出了其他3個(gè)步驟所需要的樣本量,B2這個(gè)步驟算出來(lái)是需要544例,,因?yàn)橐瑫r(shí)滿足4個(gè)步驟的要求,,所以最終需要的樣本量是5249例。 生存數(shù)據(jù)假如我們要預(yù)測(cè)治療停止一段時(shí)間后,,靜脈血栓栓塞復(fù)發(fā)的風(fēng)險(xiǎn),。這是一個(gè)time-to-event類型的數(shù)據(jù),結(jié)局是復(fù)發(fā)/不復(fù)發(fā),,時(shí)間就是治療停止后的時(shí)長(zhǎng),。 假設(shè)該數(shù)據(jù)中,C指數(shù)是0.69,,CS-R方是0.051,,EPP=30,平均隨訪時(shí)間是2.07年,,陽(yáng)性事件發(fā)生比例是0.065,,需要進(jìn)行預(yù)測(cè)的時(shí)間點(diǎn)選擇2年,那么樣本量計(jì)算如下:
生存數(shù)據(jù)的樣本量計(jì)算遵循4步法,,所以結(jié)果中給出了4個(gè)步驟每一步驟所需要的樣本量,,最終需要的樣本量是5143例。 連續(xù)型數(shù)據(jù)假如我們要預(yù)測(cè)青少年的無(wú)脂肪體重,,該任務(wù)很明顯是一個(gè)回歸任務(wù),,結(jié)果變量是數(shù)值型的。 假設(shè)該數(shù)據(jù)中,,CS-R方為0.9,,EPP=20,總體的平均無(wú)脂肪體重是26.7kg(截距的值),,總體的無(wú)脂肪體重的標(biāo)準(zhǔn)差是8.7kg,,那么計(jì)算樣本量的代碼為:
連續(xù)型數(shù)據(jù)的樣本量計(jì)算也遵循4步法,最終所需要的樣本量是254,。
|
|