domenico-loia-364221-unsplash
 程式與統計統計模型

Logistic Regression 羅吉斯迴歸 | part1 – 資料探勘與處理 | 統計 R語言

Logistic Regression, 羅吉斯回歸模型,適用於預測二元類別目標變數的發生機率(p),和線性回歸模型類似,與線性回歸主要不同之處在於:(1) 目標變數是目標事件發生機率P經過log函數轉換成log odds值才進行線性預測,且(2)羅吉斯回歸的各項參數是透過最大概似法(MLE)進行估計的。

Logistic Regression 羅吉斯回歸模型簡介

線性迴歸模型是用來預測連續型變數,而羅吉斯回歸則是用來預測類別型變數。
羅吉斯回歸和線性回歸模型類似,只不過預測類別目標變數是經過log函數轉換才投入線性模型中的。羅吉斯回歸方程式將類別目標變數轉換為事件的log odds值,也就是\(\log\lgroup\frac{P_{i}}{1-P_{i}}\rgroup\),來預測Z與預測變數間(X1~Xn)的線性關係。

羅吉斯回歸方程式:

$$Z_{i}=\log\lgroup\frac{P_{i}}{1-P_{i}}\rgroup=\beta_{0}+\beta_{1}*x_{1}+…+\beta_{n}*x_{n}$$

其中:

(1) \(P_{i}\)為事件發生的機率值。

(2) \(\lgroup\frac{P_{i}}{1-P_{i}}\rgroup\)為勝算比(Odds Ratio)。

在R語言中,上述模型可透過glm()函式,將參數設定為family=”binomial”來執行

但因為我們真正關心的是模型預測的事件發生機率值Pi。所以,預測結果則透過plogis()函數將事件的log odds轉換為Pi。轉換公式如下:

$$P_{i}=1-\lgroup\frac{1}{1+e_{i}^z}\rgroup$$

羅吉斯回歸透過log函數轉換,產生了一個臨界遞增的S型函數,適用於分析機率模型
而不同於線性迴歸,羅吉斯回歸分析的各項參數係數,是透過最大概似法(MLE)進行估計。

分析資料與問題

Problem: 預測薪資大於50K(ABOVE50K)的影響特徵因素有哪些?

Data: adult dataset (snapshot)

目標變數(1):ABOVE50K

預測變數(13):AGE, WORKCLASS, EDUCATION, EDUCATIONNUM, MARITALSTATUS, OCCUPATION, RELATIONSHIP, RACE, SEX, CAPITALGAIN, CAPITALLOSS, HOURSPERWEEK, NATIVECOUNTRY

分析步驟

(part 1 篇會說明步驟1~5的部分)

  1. 資料載入與檢視
  2. 資料探勘
  3. 資料前處理
  4. 產生訓練資料集與測試資料集
  5. 計算特徵變數IV值(Information Value),篩選變數
  6. 訓練模型與預測
  7. 模型診斷與調整
  8.  模型比較(v.s. Machine Learning Methods)



1. 資料載入與檢視

由於我們的目標變數目前是數值0,1,為了後續分析,我們決定(1)ABOVE50K轉變成(<=50K, >50K)的factor變數,並(2)另外新增ABOVE50K_y(0,1)的factor變數。

最後再確認一次資料集所有變數型態。

幾個光看變數名稱不足以了解的變數說明如下:
(1) fnlwgt : 代表final weight,即該代表個體在母體所佔比例
(2) educatoin_num:代表受教育的時間(年份)
為了簡化分析,我們將忽略fnlwgt每個代表個體在母體中所佔比重。

2. 資料探勘(Exploratory Data Analysis)

2-1. Age

查看年齡變數(AGE)各區間次數分佈與每區間薪資水準組成比例。

可以發現薪資水平高於50K的年齡偏高,平均數約落在40-50歲,而薪資水平小於等於50K的族群偏年輕。

logistic regression

2-2. Workclass

查看workclass各類別次數分佈。

logistic regression

查看workclass各類別薪資水準組成比例。

logistic regression




2-3. Education

基礎敘述統計

次數分配圖

logistic regression

各類別水準值中目標變數分佈圖

logistic regression

2-4. Educationnum (教育年份)

基礎敘述統計

次數分配圖

logistic regression

各類別水準值中目標變數分佈圖

logistic regression

2-5. MaritalStatus

基礎敘述統計

次數分配圖

logistic regression

各類別水準值中目標變數分佈圖

logistic regression

如果想要同一張圖y軸可以看到frequency,stacked bar可以看到目標類別水平的比例分佈,可以使用下面方法繪製。

logistic regression

2-6. Occupation職業

基礎敘述統計

可以發現類別水準值滿複雜的。

次數分配圖

logistic regression

各類別水準值中目標變數分佈圖

logistic regression

如果想要同一張圖y軸可以看到frequency,stacked bar可以看到目標類別水平的比例分佈,可以使用下面方法繪製。

logistic regression

2-7. Relationship

基礎敘述統計

次數分配圖

logistic regression

各類別水準值中目標變數分佈圖

logistic regression

繪製同時一張圖呈現frequency與stacked bar目標類別水平的比例分佈圖。

logistic regression

2-8. Race種族

基礎敘述統計

次數分配圖

logistic regression

各類別水準值中目標變數分佈圖

logistic regression

繪製同時一張圖呈現frequency與stacked bar目標類別水平的比例分佈圖。

logistic regression

2-9. Sex 性別

基礎敘述統計

次數分配圖

logistic regression

各類別水準值中目標變數分佈圖

logistic regression

繪製同時一張圖呈現frequency與stacked bar目標類別水平的比例分佈圖。

 

logistic regression

2-10. CapitalGain 資本獲利

基礎敘述統計

可以發現資料很右偏,至少有75%(第三個四分位數)的資料都是0。

次數分配圖

我們可以觀察到,視覺化的資料極右偏,幾乎所有資料都是0

logistic regression

看一下capitalgain資料是0的比例:

2-11. Capital Loss 資本失利

基礎敘述統計

次數分配圖

logistic regression

看一下CAPITALLOSS資料是0的比例:

2-12. HOURSPERWEEK

基礎敘述統計

次數分配圖

logistic regression

2-13. NATIVECOUNTRY 國籍

次數分配圖

logistic regression

可以發現資料超偏,都集中在美國,因此不適合投入模型




3. 資料前處理

3- 1. 類別水準值簡化

OCCUPATION的部分,因為水平值偏多,且沒有替代變數欄位,故我們考慮將此變數水平值簡化。我們將之簡化為以下幾群:
Blue-Collar, Professional, Sales, Service, and White-Collar, Other/Unknown。

3-2. (optional)產生類別變數的WOE值(本分析不會執行此段程式碼)

4. 產生訓練資料集與測試資料集

5. 計算IV值,篩選變數

關於IV Table的部分,我們可以得出以下資訊:

  1. 根據經驗,IV>=0.3即表示該預測變數與目標變數有較強的關係。
  2. 類別變數IV=0表示類別水準值過多。
    • EDUCATION: 可以使用IV值較高的EDUCATIONNUM代替。
    • NATIVECOUNTRY:如我們一開始在資料探勘時所見,絕大多數資料皆為United States,因此不予進一步討論。
  3. 連續變數IV=0表示沒有顯著的切點存在。
    • FNLWGT:一開始為簡化分析,即不考慮納入模型分析。
    • CAPITALLOSS: 因為該特徵資料分佈極偏,故不納入進一步模型分析。
  4. 從IV表數值,我們決定初步篩選出變數RELATIONSHIP, MARITALSTATUS, AGE, EDUCATIONNUM, CAPITALGAIN, OCCUPATION_rep進行模型分析。

Logistic Regression Modeling 羅吉斯回歸建模 part2 的部分請參考: 羅吉斯回歸 – part2 模型建置、診斷與比較





更多模型建置筆記連結:

  1. Logistic Regression 羅吉斯迴歸 | part2 – 模型建置、診斷與比較 | R語言
  2. Linear Regression | 線性迴歸模型 | using AirQuality Dataset
  3. Regularized Regression | 正規化迴歸 – Ridge, Lasso, Elastic Net | R語言
  4. Decision Tree 決策樹 | CART, Conditional Inference Tree, Random Forest
  5. Regression Tree | 迴歸樹, Bagging, Bootstrap Aggregation | R語言
  6. Random Forests 隨機森林 | randomForest, ranger, h2o | R語言
  7. Gradient Boosting Machines GBM | gbm, xgboost, h2o | R語言
  8. Hierarchical Clustering 階層式分群 | Clustering 資料分群 | R統計
  9. Partitional Clustering | 切割式分群 | Kmeans, Kmedoid | Clustering 資料分群
  10. Principal Components Analysis (PCA) | 主成份分析 | R 統計

參考:

  1. 歐萊禮  R資料科學