1. 程式人生 > >MatLab建模學習筆記12——Logistic迴歸模型

MatLab建模學習筆記12——Logistic迴歸模型

logistic regression屬於概率型非線性迴歸,它是研究二分類觀察結果與一些影響因素之間關係的一種多變數分析方法。例如,在流行病學研究中,經常需要分析疾病與各危險因素之間的定量關係,為了正確說明這種關係,需要排除一些混雜因素的影響。對於線性迴歸分析,由於應變數Y是一個二值變數(通常取值1或0),不滿足應用條件,尤其當各因素都處於低水平或高水平時,預測值Y值可能超出0~1範圍,出現不合理都現象。用logistic迴歸分析則可以較好的解決上述問題。Logistic迴歸模型的基本形式如下:
這裡寫圖片描述

因此,對因變數P按照ln(P/(1-P))的形式進行對數變換,可以將Logistic迴歸問題轉化為線性迴歸問題,在按照多元線性迴歸的方法求解迴歸引數。對於P取值只有0和1的情況,在實際中不是直接對P進行迴歸,而是先定義一個單調連續的概率函式π:
這裡寫圖片描述

此時Logistic模型為:
這裡寫圖片描述

然後只需要對原始資料進行合理的對映處理,就可以用線性迴歸方法得到迴歸係數,最後再根據π和P的對映關係進行反對映得到P的值。
下面是書中的一個例子,評估企業的還款能力,已知前20家企業的評價指標和評價結果,要求對剩餘5家企業進行評估。資料如下:
這裡寫圖片描述

Π到P的對映關係:
這裡寫圖片描述

Π值的確定:
這裡寫圖片描述

Matlab程式碼如下:

clear all
clc
%資料格式
format long
%前20組資料
X0=xlsread('D:\資料庫區\大三上\HUAWEI\MATLAB\11Logistic.xls','E4:G23');
%全部25組資料:驗證和迴歸
XE=xlsread('D:\資料庫區\大三上\HUAWEI\MATLAB\11Logistic.xls','E4:G28'); %前20組評估的資料值:P Y0=xlsread('D:\資料庫區\大三上\HUAWEI\MATLAB\11Logistic.xls','H4:H23'); n=size(Y0,1); %π和P的對映關係 for i=1:n if Y0(i)==0 Y1(i,1)=0.25; else Y1(i,1)=0.75; end end %構建常係數 X1=ones(size(X0,1),1); X=[X1,X0]; Y=log(Y1.
/(1-Y1)); b=regress(Y,X); %模型驗證的應用 for i=1:size(XE,1) pai0=exp(b(1)+b(2)*XE(i,1)+b(3)*XE(i,2)+b(4)*XE(i,3))/(1+exp(b(1)+b(2)*XE(i,1)+b(3)*XE(i,2)+b(4)*XE(i,3))); if(pai0<=0.5) P(i)=0; else P(i)=1; end end %迴歸結果 disp(['迴歸係數:' num2str(b') ' ']); disp(['評估結果:' num2str(P) ' ']);

Matlab執行結果如下:
這裡寫圖片描述

第一行即為該問題中迴歸模型的係數,帶入即可得到迴歸模型,第二行為該模型的評估結果。