Logistic回歸分析


---------------------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=0x2=0x3=0,表示A型血

        –x=2時:x1=1x2=0x3=0,表示B型血

        –x=3時:x1=0x2=1x3=0,表示AB型血

        –x=4時:x1=0x2=0x3=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
      • 值越大,表示模型越優
  • 模型診斷

    • 多重共線,即自變量之間高度相關
      • 容忍度(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),表示以第一類、最后一類或其中的某一類作為參照組
  • 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;

注定是幸福


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM