Logistic回歸屬於概率型的非線性回歸,分為二分類和多分類的回歸模型。這里只講二分類。
對於二分類的Logistic回歸,因變量y只有“是、否”兩個取值,記為1和0。這種值為0/1的二值品質型變量,我們稱其為二分類變量。
假設在自變量$x_{1}, x_{2}, \cdots, x_{p}$作用下,y取“是”的概率是p,則取“否”的概率是1-p,研究的是當y取“是”發生的模率p與自變量$x_{1}, x_{2}, \cdots, x_{p}$的關系。
Logistic回歸模型
①Logit變換
Logit 變換以前用於人口學領域,1970年被Cox引入來解決曲線直線化問題。
通常把某種結果出現的概率與不出現的概率之比稱為稱為事件的優勢比odds,即假設在p個獨立自變量$x_{1}, x_{2}, \cdots, x_{p}$作用下,記y取1的概率是$p=P(y=1 | X)$,取0概率是$1-p$,取1和取0的概率之比為$\frac{p}{1-p}$。Logit變換即取對數:$$\lambda = \ln ({\rm{ odds }}) = \ln \frac{p}{{1 - p}}$$
②Logistic函數
Logistic中文意思為“邏輯”,但是這里,並不是邏輯的意思,而是通過logit變換來命名的。
二元logistic回歸是指因變量為二分類變量的回歸分析,目標概率的取值會在0~1之間,但是回歸方程的因變量取值卻落在實數集當中,這個是不能夠接受的,所以,可以先將目標概率做Logit變換,這樣它的取值區間變成了整個實數集,采用這種處理方法的回歸分析,就是Logistic回歸。Logistic函數為:
$$\operatorname{Logit}(p)=\ln \left(\frac{p}{1-p}\right)=Z,p=\frac{1}{1+\mathrm{e}^{-2}}$$

Logistic回歸模型中的因變量只有1和0(如是和否、發生和不發生)兩種取值。對odds取自然對數即得Logistic變換$\operatorname{Logit}(p)=\ln \left(\frac{p}{1-p}\right) A$。
當p在(0,1)之間變化時,odds的取值范圍是(0,+oo),則Logistic函數的取值范圍是(-oo,+oo)。
③Logistic回歸模型
Logistic 回歸模型是建立$\ln \left(\frac{p}{1-p}\right)$與自然變量的線性回歸模型。
Logistic 回歸模型的公式為:$$\ln \left(\frac{p}{1-p}\right)=\beta_{0}+\beta_{1} x_{1}+\cdots+\beta_{p} x_{p}+\varepsilon$$
因為$\ln \left(\frac{p}{1-p}\right)$的取值范圍是(-oo,+oo),這樣,自變量$x_{1}, x_{2}, \cdots, x_{p}$可在任意范圍內取值。
記$g(x)=\beta_{0}+\beta_{1} x_{1}+\dots+\beta_{p} x_{p}$,得到:$$\begin{array}{c}{p=P(y=1 | X)=\frac{1}{1+e^{-\mathrm{g}(x)}}} \\ {1-p=P(y=0 | X)=1-\frac{1}{1+e^{-\mathrm{g}(x)}}=\frac{1}{1+e^{\mathrm{g}(\mathrm{x})}}}\end{array}$$
解釋:$$\frac{p}{1-p}=e^{\beta_{0}+\beta_{1}x_{1}+\ldots+\beta_\mathrm{p}x_{p} +\varepsilon}$$
其中,$\beta_{0}$為在沒有自變量,即$x_{1}, x_{2}, \cdots, x_{p}$全部取0,y=1與y=0發生概率之比的自然對數。
$\beta_{i}$為某自變量x變化時,即x=1與x=0相比,y=1優勢比的對數值。
和列聯表、最小二乘法的區別
和列聯表區別
對於分類資料的分析,當要考察的影響因素較少,且也為分類變量時,分析者常用列聯表的形式對這種資料進行整理,並使用卡方檢驗來進行分析。
局限性:
①無法描述其作用大小及方向,更不能考察各因素間是否存在交互作用;
②該方法對樣本含量的要求較大,當控制的分層因素較多時,單元格被划分的越來越細,列聯表的格子中頻數可能很小,將導致檢驗結果的不可靠。
③卡方檢驗無法對連續性自變量的影響進行分析,而這將大大限制其應用范圍。
和最小二乘法區別
①取值區間:上述模型進行預報的范圍為整個實數集,而模型左邊的取值范圍為0≤Ps1,二者並不相符。模型本身不能保證在自變量的各種組合下,因變量的估計值仍限制在0~1內。
②曲線關聯:根據大量的觀察,反應變量P與自變量的關系通常不是直線關系,而是S型曲線關系。顯然,線性關聯是線性回歸中至關重要的一個前提假設,而在上述模型中這一假設是明顯無法滿足的。
建模步驟與MATLAB實現
步驟:
①根據挖掘的目的設置指標變量:$y, x_{1}, x_{2}, \cdots, x_{p}$。
②列出回歸方程:$$\ln \left(\frac{p}{1-p}\right)=\beta_{0}+\beta_{1} x_{1}+\cdots+\beta_{p} x_{p}+\varepsilon$$
③用$\ln \left(\frac{p}{1-p}\right)$和自變量列出線性回歸方程,估計回歸系數。
④模型檢驗——F檢驗,應用方差分析表對模型進行F檢驗。
根據輸出的方差分析表中的F值和p值來檢驗該回歸方程是否顯著,如果p值小於顯著性水平a則模型通過檢驗,可以進行下一步回歸系數的檢驗;否則要重新選擇指標變量,重新建立回歸方程。
⑤回歸系數檢驗——t檢驗,應用參數估計表對回歸系數進行t檢驗。
在多元線性回歸中,回歸方程顯著並不意味着每個自變量對y的影響都顯著,為了從回歸方程中剔除那些次要的、可有可無的變量,重新建立更為簡單有效的回歸方程,需要對每個自變量進行顯著性檢驗,檢驗結果由參數估計表得到,采用逐步回歸法,首先剔除掉最不顯著的因變量,重新構造回歸方程,一直到模型和參與的回歸系數都通過檢驗;
⑥預測控制。

利用MATLAB對銀行貸款拖欠率數據進行邏輯回歸分析,分別采用逐步尋優(逐步剔除掉最不顯著的因變量)和使用MATLAB自帶的逐步向前、向后回歸函數進行建模。
%% 邏輯回歸 自動建模 clear; % 參數初始化 filename = '../data/bankloan.xls' ; %% 讀取數據 [num,txt] = xlsread(filename); X = num(:,1:end-1); Y = num(:,end); %% 遞歸建模 flag =1; mdl = fitglm(X,Y,'linear','distr','binomial','Link','logit'); while flag ==1 disp(mdl); % 打印model pValue = mdl.Coefficients.pValue; pValue_gt05 =pValue>0.05 ; if sum(pValue_gt05)==0 % 沒有pValue值大於0.05的值 flag =0; break; end % 移除pValue中大於0.05的變量最大的變量 fprintf('\n移除變量:'); [t,index]= max(pValue,[],1); fprintf('%s\t',mdl.CoefficientNames{1,index}); fprintf('\n模型如下:'); if index-1~=0 removeVariance =mdl.CoefficientNames{1,index}; else removeVariance ='1'; end % 從模型中移除變量 mdl = removeTerms(mdl,removeVariance); end %% 自動建模 ,添加變量 disp('添加變量,自動建模中...'); mdl2 = stepwiseglm(X,Y,'constant','Distribution','binomial','Link','logit'); disp('添加變量,自動建模模型如下:') disp(mdl2); %% 自動建模 , 移除變量 disp('移除變量,自動建模中...'); mdl3 =stepwiseglm(X,Y,'linear','Distribution','binomial','Link','logit'); disp('移除變量,自動建模模型如下:') disp(mdl3);
