Basic Logistic Regression Menggunakan StatsModel

[latexpage]

Pada lesson basic logistic regression menggunakan StatsModel, kita akan menggunakan python membuat model logistic regression yang akan menghitung kemungkinan seorang siswa diterima diperguruan tinggi berdasarkan nilai SAT.

import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

raw_data = pd.read_csv('BasicLogReg.csv')
data = raw_data.copy()
data['Admitted'] = data['Admitted'].map({'Yes': 1, 'No': 0})

y = data['Admitted']
x1 = data['SAT']
x = sm.add_constant(x1)

reg_log = sm.Logit(y,x)
results_log = reg_log.fit()
results_log.summary()

Program diatas sangat mirip dengan program linear regression pada lesson sebelumnya. Perbedaan hanya pada bagian penggunaan model logit, bukan OLS.

Pada sisi data, karena data menggunakan kategorikal data (yes dan no), maka perlu dikonversi menjadi 1 dan 0.

data['Admitted'] = data['Admitted'].map({'Yes': 1, 'No': 0})

Logit Regression Table

Jika pada linear regression table OLS, maka pada logistic regression adalah logit regression results. Ada beberapa istilah baru yang perlu diperhatikan.

Basic Logistic Regression Table

MLE (Maximum Likelihood Estimation), bertujuan memaksimalkan likelihood function. Likelihood function adalah fungsi yang untuk mengestimasi model untuk menjelaskan relasi antara variable. Makin besar nilai likelihood function, makin tinggi probablitas model yang dibuat benar.

Log-Likelihood, biasanya bernilai negative. Makin besar nilainya makin baik.

LL-Null (log likelihood null), adalah Log-Likelihood dari model yang tidak menggunakan independent variable. Nilai LL-Null dan Log-Likelihood akan digunakan untuk menghitung LLR-p-value.

LLR-p-value, digunakan untuk menentukan apakah model yang dibuat significant atau tidak. Makin kecil nilai dari LLR-p-value, makin baik.

Pseudo-R-Squared, digunakan untuk membandingkan variasi dari model yang sama. menggunakan term McFadden’s R-Squared, dimana disebutkan nilai range dari 0.2 – 0.4 adalah nilai Pseudo-R-Squared yang baik.

Interprestasi Dari Nilai Koefiesien

Untuk menjelaskannya, kita gunakan pendekatan matematis. Logit model dari table diatas adalah

$log(odds) = -69.91 + 0.042 * SAT$

Kita memiliki nilai SAT1 dan SAT2. Masukan pada model diatas maka akan didapatkan persamaan berikut

$log(odds_2) = -69.91 + 0.042 * SAT_2$
$log(odds_1) = -69.91 + 0.042 * SAT_1$

Kurangkan kedua persamaan diatas, hasilnya adalah

$log(odds_2) – log(odds_1) = 0.042 (SAT_2 – SAT_1)$

$log( \frac{odds_2}{odds_1}) = 0.042(SAT_2 – SAT_1)$

Mari kita tentukan perbedaan SAT2 dan SAT1 adalah 1, maka persamaan yang diperoleh adalah:

$log( \frac{odds_2}{odds_1}) = 0.042$

Kita dapat sederhanakan lagi dengan menambahkan exponential pada kedua sisi, hasilnya menjadi

$e ^{log(\frac{odds_2}{odds_1})} = e^{0.042}$

Maka persamaannya menjadi

$\frac{odds_2}{odds_1} = e^{0.042} $

$odds_2 = e^{0.042} * odds_1$

Persamaan diatas dapat dikatakan, peluang dari siswa dengan nilai SAT2 adalah e^0.042 * peluang dari siswa dengan nilai SAT1. Dimana SAT2 lebih besar 1 unit dibanding SAT1.

Jadi general rule yang dapat dibuat adalah setiap kenaikan k unit nilai SAT peluangnya adalah sama dengan nilai exponensial dari koefisien dikalikan k, atau dapat ditulis dengan persamaan:

$\Delta odds= e^{koefisienSAT * k}$

  • Jika delta10 unit, maka peluangnya adalah 152%
  • Jika delta 100 unit, maka peluangnya adalah 6668%
Sharing is caring: