羅艷虹,胡良平
(1.山西醫(yī)科大學(xué)公共衛(wèi)生學(xué)院衛(wèi)生統(tǒng)計(jì)學(xué)教研室,山西 太原 030001;2.世界中醫(yī)藥學(xué)會(huì)聯(lián)合會(huì)臨床科研統(tǒng)計(jì)學(xué)專業(yè)委員會(huì),北京 100029;3.軍事科學(xué)院研究生院,北京 100850
在回歸分析中,當(dāng)自變量的數(shù)目很多(往往問(wèn)題本身帶有很多自變量,再加上派生變量)時(shí),模型空間就非常大,此時(shí),建模者傾向于選擇非參數(shù)模型取代參數(shù)模型。然而,當(dāng)自變量數(shù)目大到一定程度時(shí),由于自變量水平組合所形成的“試驗(yàn)點(diǎn)”在高維空間中會(huì)顯得非常“稀疏”,從而導(dǎo)致回歸模型的方差迅速增大,以至于回歸建模過(guò)程無(wú)法收斂或回歸分析的結(jié)果失去其應(yīng)有的價(jià)值,這種現(xiàn)象被稱為“維數(shù)災(zāi)難”。
解決“維數(shù)災(zāi)難”問(wèn)題的常用方法有以下兩種:其一,將所研究的問(wèn)題限于“低維空間”;其二,假定建模過(guò)程具有“可加性”,采用“加性模型”[1]。這兩種思維方法都存在一定的局限性,只是部分地或回避式地解決了“維數(shù)災(zāi)難”問(wèn)題。Friedman[2]提出的“多元適應(yīng)性回歸樣條建模技術(shù)”在一定程度上較好地解決了前述提及的難題。多元適應(yīng)性回歸樣條建模技術(shù)被簡(jiǎn)稱為“適應(yīng)性回歸分析方法”,此法由以下兩步組成:第一步,采用“快速更新算法”創(chuàng)建一個(gè)“過(guò)擬合模型”,以下將被稱為“向前選擇”;第二步,采用“后向選擇”修剪已經(jīng)創(chuàng)建的回歸模型。
由多元適應(yīng)性回歸樣條算法產(chǎn)生的回歸模型可用式(1)或式(2)表示:
(1)
(2)
式(1)或式(2)還可以用式(3)表示:
(3)
在式(3)中,第2、3、4項(xiàng)分別代表僅含單個(gè)自變量、含兩個(gè)自變量及其交互作用項(xiàng)和含三個(gè)自變量及其交互作用項(xiàng)所形成的基函數(shù)之和。由此可知,多元適應(yīng)性回歸樣條模型的結(jié)構(gòu)非常復(fù)雜,以擬合復(fù)雜程度不同的數(shù)據(jù)結(jié)構(gòu)并使之達(dá)到所期望的“擬合優(yōu)度界值”。
式(1)到式(3)在本質(zhì)是一樣的,但式(2)和式(3)的形式非常復(fù)雜,而式(1)相對(duì)簡(jiǎn)單。下面用通俗的語(yǔ)言解釋式(1)。
(4)
由此可知:構(gòu)建適應(yīng)性回歸模型的關(guān)鍵在于如何構(gòu)造各個(gè)“基函數(shù)”;模型求解的關(guān)鍵在于如何估計(jì)出式(1)或式(2)或式(3)中的回歸系數(shù)。這個(gè)計(jì)算過(guò)程比較繁瑣,通常需要借助統(tǒng)計(jì)軟件(如SAS/STAT 12.1中的“ADAPTIVEREG”過(guò)程,此模塊已嵌入SAS 9.3及以上版本)來(lái)完成。
在進(jìn)行適應(yīng)性回歸建模過(guò)程中,需要對(duì)變量進(jìn)行變換,而不是直接將原變量代入回歸模型。對(duì)變量進(jìn)行怎樣的變換,取決于變量的類(lèi)型。換言之,對(duì)連續(xù)型變量與分類(lèi)變量將采取不同的變換方法。
對(duì)于連續(xù)型變量,采用線性截?cái)鄡鐦訔l變換,分別見(jiàn)式(5)、式(6):
(5)
(6)
其中t為變量V的結(jié)點(diǎn)值(或稱為分割值),而v為其觀測(cè)值。為了不用測(cè)定變量V的每個(gè)值,通過(guò)假設(shè)底層函數(shù)的平滑度來(lái)使用一系列的最小跨度的結(jié)點(diǎn)值。Friedman[2]使用以下公式來(lái)確定結(jié)點(diǎn)之間的合理數(shù)目(跨度大小)。對(duì)于內(nèi)部結(jié)點(diǎn),跨度大小由以下公式?jīng)Q定,見(jiàn)式(7):
(7)
對(duì)于邊界結(jié)點(diǎn),跨度大小由以下公式?jīng)Q定,見(jiàn)式(8):
(8)
其中,α為決定結(jié)點(diǎn)密度的參數(shù),p為變量數(shù),nm為父基函數(shù)Bm>0的觀察數(shù)目。
對(duì)于分類(lèi)變量,變量通過(guò)指示函數(shù)進(jìn)行轉(zhuǎn)換,分別見(jiàn)式(9)、式(10):
(9)
(10)
其中{c1,…,ct}為變量V類(lèi)別的子集。這種平滑法適用于分類(lèi)變量,它假設(shè)各個(gè)類(lèi)別的子集具有相似的性質(zhì),類(lèi)似于假設(shè)對(duì)連續(xù)變量進(jìn)行局部區(qū)域的預(yù)測(cè)。
如果一個(gè)分類(lèi)變量有k個(gè)不同的分類(lèi),那么共有(2k+1-1)種可能的子集。計(jì)算成本等于回歸中所有子集的選擇,對(duì)于大的k值來(lái)說(shuō)代價(jià)較大。多元自適應(yīng)回歸樣條算法采用逐步選擇的方法選擇分類(lèi),從而形成子集為{c1,…ct}。該方法仍然是貪婪的,但它減少了計(jì)算,并產(chǎn)生合理的最終模型。
多元自適應(yīng)樣條算法的向前選擇過(guò)程如下:
(1)設(shè)定初值B0=1,M=1;
(2)重復(fù)以下步驟,直到基函數(shù)的值達(dá)到最大,最大值為Mmax;或者Bm、v和t三個(gè)參數(shù)的任意組合都不會(huì)使模型性能得到更好的提升。
1)設(shè)置“失擬(即模型不能表達(dá)資料變化的部分)”的界值LOF*=∞;
2)對(duì)于篩選出的基函數(shù)Bm,m∈{0,…,M-1}都對(duì)變量v做以下操作,對(duì)于v?{v(k,m)|1≤k≤Km}者除外。
①對(duì)于滿足v:t∈{v|Bm>0}的變量,每個(gè)結(jié)點(diǎn)值(或類(lèi)別中子集)t建立一個(gè)由當(dāng)前所有選定基函數(shù)組成的模型及兩個(gè)新基函數(shù):BmT1(v,t)和BmT2(v,t);
②計(jì)算新模型LOF欠擬合的界值;
③如果LOF 3)通過(guò)在模型中增加Bm*T1(v*,t*)和Bm*T2(v*,t*),最大程度上更新模型。 4)設(shè)定M=M+2。 每個(gè)條目最重要的部分是發(fā)現(xiàn)Bm、v和t之間的關(guān)系,例如在模型中添加兩個(gè)相關(guān)基函數(shù)。向前選擇的目標(biāo)是建立一種過(guò)擬合數(shù)據(jù)的模型。線性模型的殘差準(zhǔn)則通常是殘差平方和(RSS)。 多元自適應(yīng)回歸樣條算法的向后選擇過(guò)程如下: (1)通過(guò)設(shè)置整體的欠擬合標(biāo)準(zhǔn)來(lái)初始化:LOF*=∞; (2)重復(fù)以下步驟,直到達(dá)到空模型為止。最后一個(gè)模型是在向后篩選過(guò)程中發(fā)現(xiàn)的最佳模型。 1)對(duì)于篩選的基函數(shù)Bm,m∈{0,…,M-1}: ①對(duì)于不包含Bm,計(jì)算欠擬合標(biāo)準(zhǔn)(LOF); ②如果LOF ③從當(dāng)前模型中減去Bm*。 2)設(shè)定M=M-1。 向后選擇的目的是“修剪”過(guò)擬合的模型,找出預(yù)測(cè)性能最好的模型。因此,使用過(guò)擬合界值來(lái)表示模型對(duì)原始數(shù)據(jù)表達(dá)的真實(shí)性是不合理的。相反,多元自適應(yīng)回歸樣條算法使用一個(gè)類(lèi)似于廣義交叉驗(yàn)證界值的數(shù)量。更多信息參見(jiàn)“擬合優(yōu)度界值”一節(jié)。 原始的多變量自適應(yīng)回歸樣條算法計(jì)算代價(jià)較大。為了提高計(jì)算速度,F(xiàn)riedman提出了快速算法??焖偎惴ǖ幕舅枷胧菧p少在向前選擇的每個(gè)步驟中,檢驗(yàn)B、V和t的組合的數(shù)量。 假設(shè)有在第k次迭代之后形成的(2K+1)個(gè)基,其中選擇父基Bm來(lái)構(gòu)造兩個(gè)新的基??紤]一個(gè)以基為元素的隊(duì)列,在隊(duì)列的頂部是B2k和B2k+1兩個(gè)新構(gòu)造的基。隊(duì)列的其余部分根據(jù)每個(gè)基的最小無(wú)匹配條件進(jìn)行排序,排序方法見(jiàn)式(11): (11) 式(11)中,求極小值函數(shù)“min”下部有兩個(gè)條件,其一,“for all eligible V”的含義是“對(duì)于所有合格的變量V”;其二,“for all knott”的含義是“對(duì)于所有的結(jié)點(diǎn)t”。 當(dāng)k不小時(shí),模型中有相對(duì)較多的基,增加基的個(gè)數(shù)不太可能顯著提高擬合優(yōu)度。因此,在相鄰迭代期間,優(yōu)先隊(duì)列中基的排名變化太大。候選的父基可以被限制為第一次迭代隊(duì)列中的前K個(gè)基。第k次迭代之后,頂部基有新的J(Bi)值,而底基的值不變。隊(duì)列根據(jù)J(Bi)值重新排序。這對(duì)應(yīng)于MODEL語(yǔ)句中FAST選項(xiàng)的K=選項(xiàng)值。 為了避免排在最后的候選基被放棄使用,并允許它們重新上升到頂部,一個(gè)自然的“老化”因素被引入到每個(gè)基。通過(guò)定義每個(gè)基函數(shù)的優(yōu)先級(jí)來(lái)實(shí)現(xiàn),見(jiàn)式(12): P(Bi)=R(Bi)+β(kc-kr) (12) 其中R(Bi)為隊(duì)列中第i個(gè)基的秩,kc為當(dāng)前迭代次數(shù),kr為上次計(jì)算J(Bi)值的迭代次數(shù)。然后根據(jù)這個(gè)優(yōu)先級(jí)重新對(duì)前K個(gè)候選基進(jìn)行排序。較大的β值會(huì)導(dǎo)致在以前的迭代中改進(jìn)較小的基以更快的速度上升到列表頂部。這對(duì)應(yīng)于MODEL語(yǔ)句中FAST選項(xiàng)的“BETA=”值。 對(duì)于優(yōu)先級(jí)隊(duì)列頂部的候選基,將重新計(jì)算(k+1)次迭代的所有合格變量V的最小失擬界值J(Bi)。得出的最優(yōu)變量可能與前一次迭代中找到的變量相同。因此,快速多元自適應(yīng)回歸樣條算法引入另一個(gè)因子H以節(jié)省計(jì)算成本。該因子指定J(Bi)應(yīng)該為所有合格變量重新計(jì)算的頻率。如果H=1,在考慮父基時(shí),每次迭代中對(duì)所有變量都進(jìn)行優(yōu)化。如果H=5,經(jīng)過(guò)5次迭代完成視為最優(yōu)。如果小于指定H的迭代計(jì)數(shù),則優(yōu)化只在之前完全的優(yōu)化中找到的最優(yōu)變量進(jìn)行。當(dāng)然,有前三個(gè)候選項(xiàng)例外,B2k+1(這是用于構(gòu)建兩個(gè)新基的父基Bm)和兩個(gè)新基:B2k和B2k+1。在每次迭代中執(zhí)行它們的完整優(yōu)化。這與MODEL語(yǔ)句中FAST選項(xiàng)的“H=”選項(xiàng)值有關(guān)。 與其他非參數(shù)回歸過(guò)程一樣,多元自適應(yīng)回歸樣條算法可以產(chǎn)生復(fù)雜的模型,這些模型包含高階交互作用項(xiàng)并考慮許多結(jié)點(diǎn)值或子集。除了基函數(shù),向前選擇和向后選擇過(guò)程都是高度非線性的??紤]在偏倚與方差之間取其折中,包含多個(gè)參數(shù)的復(fù)雜模型傾向于較低偏倚而較高方差。為了選擇具有良好預(yù)測(cè)性能的模型,Craven等[4]提出了被廣泛使用的廣義交叉驗(yàn)證(GCV)界值,見(jiàn)式(13): (13) (14) 其中d為每個(gè)非線性基函數(shù)所需要的自由度,M為模型中線性無(wú)關(guān)基函數(shù)的總數(shù)。因?yàn)樵诙嘧兞孔赃m應(yīng)回歸樣條算法的每個(gè)步驟中評(píng)估的任何候選模型都是一個(gè)線性模型,所以M實(shí)際上是冒子矩陣的跡。GCV界值和LOF界值的唯一區(qū)別是額外項(xiàng)d(M-1)。相應(yīng)的有效自由度被定義為M+d(M-1)/2。在形成新基函數(shù)時(shí),需要考慮非線性,故引入了d這個(gè)數(shù)量,同時(shí),它也作為一個(gè)平滑參數(shù)而存在。d值越大,函數(shù)估計(jì)越平滑。Friedman[2]認(rèn)為d值一般為“2~4”。對(duì)于結(jié)構(gòu)復(fù)雜的數(shù)據(jù),d值可以更大。用戶也可以使用交叉驗(yàn)證作為擬合優(yōu)度界值,或使用各自的驗(yàn)證數(shù)據(jù)集來(lái)選擇模型和單獨(dú)的測(cè)試數(shù)據(jù)集來(lái)評(píng)估選定的模型。3.2 向后選擇
4 快速算法
5 擬合優(yōu)度界值