項(xiàng)目中一張Table需要基于Logistic回歸模型,輸出某事件發(fā)生的概率靠娱。該模型中沧烈,因變量為二分類資料掠兄,表示事件發(fā)生與否像云;自變量為定量資料。Table中需要輸出蚂夕,當(dāng)自變量為特定值時(shí)迅诬,事件發(fā)生的概率以及對(duì)應(yīng)的可信區(qū)間。
這篇文章簡(jiǎn)單介紹回歸模型婿牍,然后分享Logistic回歸模型預(yù)測(cè)概率的SAS程序?qū)崿F(xiàn)侈贷。
1. 回歸模型簡(jiǎn)介
我們常說(shuō)的自變量(X)與因變量(Y)的關(guān)系是,自變量影響因變量等脂,或者說(shuō)因變量依賴于自變量俏蛮。而回歸模型的作用,就是使得自變量X與因變量Y間的關(guān)系得到量化上遥、準(zhǔn)確的描述搏屑。
常見(jiàn)的回歸模型有線性回歸、Logistic回歸以及Cox回歸粉楚。對(duì)于這3類回歸辣恋,自變量X可以是數(shù)值變量、分類變量以及等級(jí)變量模软;而對(duì)于因變量Y伟骨,線性回歸是數(shù)值變量,Logistic回歸是分類變量燃异,Cox回歸是二分類+時(shí)間變量携狭。
這3類回歸中,線性回歸是基礎(chǔ)回俐。Logistic回歸與Cox回歸是線性回歸的擴(kuò)展逛腿,即通過(guò)特定的變換(logit變換壹瘟、Cox變換),轉(zhuǎn)化為線性回歸進(jìn)行分析鳄逾。
具體的模型介紹稻轨,可以參考相關(guān)的數(shù)理統(tǒng)計(jì)教材。
2. Logistic回歸模型
前面提到Loggistic回歸的因變量是分類變量雕凹,包含3類:二分類變量殴俱、無(wú)序多分類變量、有序多分類變量枚抵。在日常分析中线欲,因變量Y為二分類變量的情況居多,我們這次事件發(fā)生結(jié)果就是二分類變量汽摹。
二分類資料可以計(jì)算出“發(fā)病率”p李丰、“未發(fā)病率”1-p。對(duì)于線性回歸模型來(lái)說(shuō)逼泣,因變量服從正態(tài)分布趴泌。而對(duì)于二分類資料,率的取值在0-1之間拉庶,不服從正態(tài)分布嗜憔,不能直接應(yīng)用線性回歸模型。這時(shí)氏仗,對(duì)率進(jìn)行l(wèi)ogit變換:
loigt P = ln[P/(1-P)]
變換后吉捶,logitP的范圍為 (-∞, +∞),服從正態(tài)分布皆尔,可以構(gòu)建線性回歸模型呐舔。Logistic回歸模型定義為:
由于loigt P = ln[P/(1-P)],上式也可以等價(jià)寫成:
這就是“發(fā)病率”P與自變量X的關(guān)系慷蠕。根據(jù)現(xiàn)有數(shù)據(jù)可以估計(jì)出回歸系數(shù)珊拼,建立回歸方程。然后砌们,將具體的自變量值代入方程杆麸,就可以獲得其對(duì)應(yīng)的事件發(fā)生概率的預(yù)測(cè)值。
3. 二項(xiàng)Logistic回歸模型的SAS實(shí)現(xiàn)
在實(shí)際應(yīng)用中浪感,對(duì)于模型我們并不需要掌握得很深昔头,只需知道如何應(yīng)用就行。
下面進(jìn)行SAS程序演示影兽,選擇SASHelp.class數(shù)據(jù)集作為演示數(shù)據(jù)集揭斧。不考慮實(shí)際意義,以二分類變量Sex作為因變量,Sex = “M”作為結(jié)果事件讹开,數(shù)值變量Height作為自變量盅视。
那么在各個(gè)Height取值下,發(fā)生Sex = “M”這個(gè)事件的預(yù)測(cè)發(fā)生概率以及對(duì)應(yīng)的可信區(qū)間旦万,實(shí)現(xiàn)程序如下:
proc logistic data = sashelp.class noprint;
model sex(event="M") = height;
output out = result predicted = pred lower = lcl upper = ucl;
run;
輸出結(jié)果如下:
以上預(yù)測(cè)的概率值闹击,是原始數(shù)據(jù)集中的各個(gè)Height值發(fā)生目標(biāo)事件的預(yù)測(cè)概率。那么如何獲取特定Height值對(duì)應(yīng)的預(yù)測(cè)概率呢成艘?例如赏半,Height=59、69淆两、79断箫。
因?yàn)閿?shù)據(jù)集中自變量的既有值不一定涵蓋,想要分析的既定值秋冰。比如仲义,當(dāng)前數(shù)據(jù)集中就沒(méi)有Height=79的數(shù)據(jù)。這就需要自己先構(gòu)建自變量特定取值的記錄剑勾,與原始數(shù)據(jù)集拼接埃撵,然后構(gòu)建模型進(jìn)行預(yù)測(cè)。
具體代碼如下:
data tmp_pred;
do height = 59, 69, 79;
output;
end;
run;
data class;
set sashelp.class(in = a) tmp_pred(in = b);
if a then tmp_pred = 0;
if b then tmp_pred = 1;
run;
proc logistic data = class noprint;
model sex(event="M") = height;
output out = result predicted = pred lower = lcl upper = ucl;
run;
模型結(jié)果如下:
這樣就獲取了特定的Heigth值(59甥材、69盯另、79)的預(yù)測(cè)概率,我們可以看到原始數(shù)據(jù)集中也有Height=59洲赵、69的記錄,新增記錄與原始記錄中的預(yù)測(cè)概率是相同的商蕴。
最后叠萍,整理輸出結(jié)果時(shí),只需篩選tmp_pred = 1
的記錄整理到Table中绪商,即獲取特定自變量值得預(yù)測(cè)值苛谷。這樣就完成了自變量的既定取值對(duì)應(yīng)的事件發(fā)生率的概率預(yù)測(cè)。
以上演示代碼只涉及一個(gè)亞組的分析格郁,若涉及多個(gè)亞組,需要使用by語(yǔ)句,例如by trt01pn paramcd;
扇谣。演示模型中攀隔,自變量只納入了一個(gè)數(shù)值變量,如果需要納入數(shù)值變量决采,直接在模型中添加自沧。如果納入的自變量為分類變量,該變量需要在class
語(yǔ)句中進(jìn)行申明树瞭。
對(duì)模型的進(jìn)一步理解拇厢,可以參考SAS官方文檔中的這個(gè)例子爱谁,SAS Help Center: Example 74.2 Logistic Modeling with Categorical Predictors。
總結(jié)
這篇文章簡(jiǎn)單介紹了回歸模型的分類孝偎、二項(xiàng)Logistic回歸模型的構(gòu)建访敌,演示了利用Logistic回歸模型預(yù)測(cè)事件發(fā)生率的SAS程序?qū)崿F(xiàn)。
這里有一點(diǎn)說(shuō)明衣盾,在臨床試驗(yàn)SAS編程工作中捐顷,對(duì)于程序員來(lái)講,模型都是有統(tǒng)計(jì)師確定好的雨效,程序員只需要將結(jié)果輸出展現(xiàn)迅涮。如果對(duì)于構(gòu)建模型感興趣,可以參閱相關(guān)統(tǒng)計(jì)教材徽龟。
感謝閱讀叮姑, 歡迎關(guān)注!
若有疑問(wèn)据悔,歡迎評(píng)論交流传透!