---------------------Logistic回歸分析及SAS程序的實現------------------------
logistic知識點補充
-
logistics中OR值與β的關系:
- ORx1 =eβ1
-
啞變量
-
當自變量為分類變量時,由於無序多分類變量的表示仍然為1,2,3,4....這與等級變量無法區分開來,因此此時需要借助啞變量進行分析。
-
例如:血型變量x為A、B、AB、O四個值,在logistic回歸分析時,需將變量x轉換為3個虛擬變量
-
若以A型血為參照組,3個虛擬變量分別為x1、x2、x3,則取值為:
–x=1時:x1=0,x2=0,x3=0,表示A型血
–x=2時:x1=1,x2=0,x3=0,表示B型血
–x=3時:x1=0,x2=1,x3=0,表示AB型血
–x=4時:x1=0,x2=0,x3=1,表示O型血
將3個虛擬變量x1、x2、x3同時納入logistic回歸模型,可得3個回歸系數β1、β2、β**3
-
-
SAS程序的分析思路
-
分析前准備
-
–連續變量:考慮轉化為分類變量,便於解釋
–二分類變量:可直接進入模型分析
–多分類變量:
-
logit p**與自變量之間符合線性關系時,直接納入
-
logit p**與自變量之間不符合線性關系時,考慮用啞變量形式納入*
-
-
-
正式分析
- 首先進行單因素分析,對自變量進行初篩
- 進行多因素分析,理清各個自變量之間的關系
-
正式分析
- 參數估計:最大似然法
-
初步建立模型
-
模型評價(擬合優度檢驗),此時H0:模型很好的擬合了實際,我們希望卡方值越小越好,即P值越大越好
- Pearson χ2 ——比較預測值和觀測值的差別
- χ2值越小越好
- Deviance —— 比較飽和模型和現有模型的差別
- Deviance值越小,現有模型與飽和模型的偏差越小,擬合效果越好
- HL指標 ——用於模型中含有連續自變量的情形
- 如果模型中自變量非常多,尤其是納入連續自變量時,變量組合數會急劇增加,此時pearson χ2和Deviance不再適用於模型評價,可采用HL統計量評價
- χ2檢驗不顯著表示擬合較好,反之表示擬合不好
- AIC、SC ——用於多個模型之間的擬合優度比較
- 值越小表示模型擬合越好
- 廣義確定系數R2 ——自變量對因變量的解釋能力
- 值越大,表示自變量對因變量的解釋能力越強
- 校正決定系數R2adj
- 值越大,表示模型越優
- Pearson χ2 ——比較預測值和觀測值的差別
-
模型診斷
- 多重共線,即自變量之間高度相關
- 容忍度(Tol):小於0.1時,可能存在共線性
- 方差擴大因子(VIF):大於10時,可能存在共線性,其為Tol的倒數
- 條件指數(collin):大於10存在共線性,大於30存在嚴重的共線性
- 異常點診斷(當數據較多時,直接看圖)
- 離群點的診斷
- Pearson殘差、Deviance殘差、Student殘差:絕對值大於2
- 高杠桿點的診斷
- 杠桿值hii:大於2(k+1)/n:k為自變量個數
- 強影響點的診斷(待考究,一般不常用,大部分直接看圖形找其離趨勢點)
- DFFITS
- Cook‘D
- 離群點的診斷
- 多重共線,即自變量之間高度相關
-
建立最終模型
- 根據自變量的類型,解釋 βi 的實際含義
- OR=eβ,反映了暴露與非暴露相比結局發生的風險有多高
SAS程序的實現
- 基本程序框架
proc logistic <選項>;
class 自變量 </選項>;
model 因變量=自變量 </選項>;
exact “標簽”<截距><自變量></選項>;
freq 變量;
run;
-
logistic語句的常用選項
-
proc logistic 選項
-
descending(可縮寫為desc),將默認的較小值與較大值的比較改為較大值與較小值的比較,注:只要是把所關心的發病情況定為1的就得使用desc進行翻轉
- E.g. 患病y=1,未患病y=0,則需要這一選項
-
plots(only)= 繪制圖形
■=all:輸出所有的圖
■=effect:多分類自變量與概率P是否為線性關系,
■=(effect(link)):多分類自變量與logit(P)的關系,自己試了試感覺和effect沒什么區別,不知道教材為什么要這樣寫·
- link后加 join=yes:將生成的散點圖用直線進行連接
-
class選項(主要用於無序分類變量)
- 通過 param= 和 ref= 兩個選項產生虛擬變量,並根據 ref= 指定參照組
- param= 指定分類變量的參數估計方法,一般指定 param=reference
- ref= 可指定 ref=first、ref=last或 ref=“某類別賦值”(如0/1),表示以第一類、最后一類或其中的某一類作為參照組
- 通過 param= 和 ref= 兩個選項產生虛擬變量,並根據 ref= 指定參照組
-
-
-
model 語句的常用選項
-
模型評價
- lackfit:輸出 HL 擬合優度指標
- scale語句
- 可用於過離散的校正
- 注:過離散主要表現為估計方差大於名義方差,如何判斷其為過離散:在pearson的擬合優度檢驗中其值/自由度>1,便可認為其過度離散
- 可通過scale=pearson或scale=deviance進行調整。通常情況下,如果沒有過度離散,直接選擇scale=none即可
- aggregate:與scale= 語句合用,可輸出Pearson χ2和Deviance值
- 可用於過離散的校正
-
模型診斷
- influence
- iplots
- 輸出各診斷指標的診斷圖,以便更直觀地發現異常點
案例
/*評價乳腺增生(y,二分類)的影響因素:年齡(age)、出產年齡(chage)、妊娠次數(rs)、流產次數(lc)、是否母乳喂養(mr)*/
data fh;
input y age chage rs lc mr;
cards;
.......
.......
;
proc logistic plots(only)=effect;,
class rs(param=ref ref='1');
model y(event='1') = rs;
run;
proc logistic plots(only)=effect(link join=yes);
class lc(param=ref ref='0');
model y(event='1') = lc;
run;
proc logistic plots(only)=effect;
class lc(param=ref ref='0');
model y(event='1') = lc;
run;
/*單因素分析*/
PROC LOGISTIC desc; /*desc改變默認的求解順序,對y=1求解*/
MODEL y=age;
PROC LOGISTIC desc;
MODEL y=chage;
PROC LOGISTIC desc;
CLASS rs(param=reference ref=first);
MODEL y=rs;
PROC LOGISTIC desc;
MODEL y=lc;
PROC LOGISTIC desc;
MODEL y=mr;
RUN;
/*多因素分析*/
PROC LOGISTIC desc;
CLASS rs(param=reference ref=first);
MODEL y=chage rs lc mr; /*去掉年齡*/
RUN;
/*模型評價*/
PROC LOGISTIC desc;
CLASS rs(param=reference ref=first);
MODEL y=chage rs lc mr /aggregate;
RUN;
/*異常點檢查*/
PROC LOGISTIC desc;
CLASS rs(param=reference ref=first);
MODEL y=chage rs lc mr/influence iplots;
/*選項influence對各種異常點進行診斷分析,iplots輸出相應的診斷圖*/
RUN;
/*共線性檢查*/
Proc reg;
model y=chage rs lc mr /tol vif ;
/*選項tol和vif輸出容忍度和方差擴大因子*/
run;
/*重新多因素分析*/
PROC LOGISTIC desc;
MODEL y=chage lc mr /aggregate scale=none;
/*選項aggregate和scale輸出Pearson χ2和Deviance值*/
RUN;
/*過離散校正*/
PROC LOGISTIC desc;
MODEL y=chage lc mr /aggregate scale=pearson;
/*選項aggregate和scale輸出Pearson χ2和Deviance值,scale=pearson表示用Pearson χ2統計量對過離散現象進行調整*/
RUN;
/*交互作用分析*/
PROC LOGISTIC desc;
MODEL y=chage lc mr chage*mr/aggregate scale=pearson expb;
/*logistic回歸中的交互作用直接以“*”將兩個或多個變量連接起來,當作自變量分析即可。Expb輸出OR值,scale=pearson表示采用pearsonχ2統計量對過離散進行調整*/
RUN;
注定是幸福