ข้อมูลแบบไบนารีและการถดถอยโลจิสติก

Generalized Linear Models ใน Python

Ita Cirovic Donev

Data Science Consultant

ข้อมูลตอบสนองแบบไบนารี

  • ตัวแปรตอบสนอง 2 ค่า $\rightarrow \large{\texttt{\color{#079EA1}{0},\color{#ED715F}{1}}}$

ตัวอย่าง:

  • การให้คะแนนเครดิต $\rightarrow \texttt{\color{#ED715F}{"Default"}/\color{#079EA1}{"Non-Default"}}$
  • การสอบผ่าน $\rightarrow \texttt{\color{#079EA1}{"Pass"}/\color{#ED715F}{"Fail"}}$
  • การตรวจจับการฉ้อโกง $\rightarrow \texttt{\color{#ED715F}{"Fraud"}/\color{#079EA1}{"No-Fraud"}}$
  • การเลือกสินค้า $\rightarrow \texttt{\color{#2485F2}{"Product ABC"}/\color{#F2AC30}{"Product XYZ"}}$
Generalized Linear Models ใน Python

ข้อมูลแบบไบนารี

UNGROUPED

  • เหตุการณ์เดียว
  • โยนเหรียญหนึ่งครั้ง
  • ผลลัพธ์ที่เป็นไปได้สองแบบ: 0/1
  • $Bernoulli(p)$ หรือ
  • $Binomial(n=1,p)$

GROUPED

  • หลายเหตุการณ์
  • โยนเหรียญหลายครั้ง
  • จำนวนครั้งที่สำเร็จใน $n$ การทดลอง
  • $Binomial(n,p)$
Generalized Linear Models ใน Python

ฟังก์ชันโลจิสติก

กราฟกระจายของชั่วโมงการเรียนและผลการสอบ ผ่านหรือไม่ผ่าน (0/1)

Generalized Linear Models ใน Python

ฟังก์ชันโลจิสติก

กราฟกระจายของชั่วโมงการเรียนและผลการสอบ ผ่านหรือไม่ผ่าน (0/1)

  • ผลการสอบ: $PASS=1$ หรือ $FAIL=0$

  • ต้องการสร้างโมเดล

$P(y=1)=\beta_0 + \beta_1x_1$

$P(\text{Pass})=\beta_0 + \beta_1 \times \text{Hours of study}$

Generalized Linear Models ใน Python

ฟังก์ชันโลจิสติก

การ fit โลจิสติกกับข้อมูลชั่วโมงการเรียนและผลการสอบ ผ่านหรือไม่ผ่าน (0/1)

  • ผลการสอบ: $PASS=1$ หรือ $FAIL=0$

  • ต้องการสร้างโมเดล

$P(y=1)=\beta_0 + \beta_1x_1$

$P(\text{Pass})=\beta_0 + \beta_1 \times \text{Hours of study}$

  • ใช้ฟังก์ชันโลจิสติก

$f(z) = \frac{1}{(1+\exp(-z))}$

Generalized Linear Models ใน Python

อัตราต่อรองและอัตราส่วนอัตราต่อรอง

       

$$ ODDS = \frac{\text{event occuring}}{\text{event NOT occuring}} $$

       

$$ \text{ODDS RATIO} = \frac{odds 1}{odds 2} $$

Generalized Linear Models ใน Python

ตัวอย่างอัตราต่อรอง

  • 4 เกม ชนะ 3 ครั้งและแพ้ 1 ครั้งแสดงเป็นลำดับ

  • อัตราต่อรองคือ 3 ต่อ 1 การคำนวณอัตราต่อรองด้วยภาพ โดยมีกล่องชนะ 3 กล่องในตัวเศษและกล่องแพ้ 1 กล่องในตัวส่วน

Generalized Linear Models ใน Python

อัตราต่อรองและความน่าจะเป็น

  $$ \text{odds} \neq \text{probability} $$

  $$ \text{odds} = \frac{\text{probability}}{1-\text{probability}} $$

  $$ \text{probability} = \frac{\text{odds}}{1+\text{odds}} $$

Generalized Linear Models ใน Python

จากโมเดลความน่าจะเป็นสู่การถดถอยโลจิสติก

 

ขั้นที่ 1. โมเดลความน่าจะเป็น

$E(y)=\mu=P(y=1)=\beta_0 + \beta_1x_1$

 

ขั้นที่ 2. ฟังก์ชันโลจิสติก

$f(z) = \large{\frac{1}{(1+\exp(-z))}}$

 

ขั้นที่ 3. ใช้ฟังก์ชันโลจิสติก $\rightarrow$ INVERSE-LOGIT

$\mu = \large{\frac{1}{1+\exp(-(\beta_0+\beta_1x_1))}} = \large{\frac{\exp(\beta_0+\beta_1x_1)}{1+\exp(\beta_0+\beta_1x_1)}}$

$1-\mu = \large{\frac{1}{1+\exp(\beta_0+\beta_1x_1)}}$

Generalized Linear Models ใน Python

จากโมเดลความน่าจะเป็นสู่การถดถอยโลจิสติก

 

  • ความน่าจะเป็น $\rightarrow$ อัตราต่อรอง $$ ODDS=\frac{\mu}{1-\mu} = exp{(\beta_0+\beta_1x_1)} $$  
  • การแปลงลอการิทึม $\rightarrow \color{#CF5383}{\text{LOGISTIC REGRESSION}}$

  $$ LOGIT(\mu)=log(\frac{\mu}{1-\mu}) = \beta_0+\beta_1x_1 $$

Generalized Linear Models ใน Python

การถดถอยโลจิสติกใน Python

ฟังก์ชัน - glm()

model_GLM = glm(formula = 'y ~ x',                        
                data = my_data, 
                family = sm.families.Binomial()).fit

อินพุต

y = [0,1,1,0,...]
y = ['No','Yes','Yes',...]
y = ['Fail','Pass','Pass',...]
Generalized Linear Models ใน Python

มาฝึกกันเถอะ!

Generalized Linear Models ใน Python

Preparing Video For Download...