Link และ Family: ตัวหนึ่งกำหนดมาตรวัดผล อีกตัวกำหนดค่าคลาดเคลื่อนมาตรฐาน

On this page
Read the English version
บทคัดย่อ
เมื่อ outcome เป็นแบบ binary ให้เลือก effect measure ก่อนเลือก model: risk 10% กับ 20% ให้ risk difference 10% risk ratio 2.0 และ odds ratio 2.25 Link เป็นตัวกำหนดว่า coefficient หมายถึงอะไร logit link ให้ odds ratio และ log link ให้ risk ratio ไม่ว่าจะใช้ family ใด Family เป็นตัวกำหนด variance โดย binary outcome มี variance เท่ากับ p(1 − p) แต่ Poisson สมมติว่าเท่ากับ p ดังนั้น modified Poisson จึงยืมการ fit ของ Poisson มา แล้วเปลี่ยน standard error เป็น robust sandwich standard error Log-binomial regression มี variance ที่ถูกต้อง แต่ต้องรักษา fitted risk ทุกค่า คือ e ยกกำลัง linear predictor ให้ไม่เกิน 1 optimizer ของมันจึงต้องค้นหาชิดกำแพง และอาจไม่ converge Logistic regression ไม่เคยเจอกำแพงนี้ ส่วน modified Poisson เอากำแพงนี้ออก บทความนี้เดินตามทีละขั้นด้วยตัวเลขที่คำนวณให้เห็น ตั้งแต่ linear predictor ไปจนถึงเส้นทางของ optimizer ที่ไล่ไปตามกำแพง
สามคำถามที่ซ่อนอยู่ในคำเดียว
ทีมปริกำเนิด (perinatal team) กำลังวิเคราะห์การเสียชีวิตของทารกแรกเกิด (neonatal death) ใน birth cohort หนึ่ง outcome เป็น 0 หรือ 1 คือทารกเสียชีวิตในช่วง neonatal หรือไม่ exposure คือการฝากครรภ์ (antenatal care, ANC) และแผนการวิเคราะห์ระบุ logistic regression, log-binomial regression, modified Poisson regression และ robust standard error อ่านแล้วเหมือน model สี่ตัวที่แข่งกัน และไม่ชัดว่าทำไมการศึกษาเดียวต้องใช้มากขนาดนี้
ความงงมาจากคำว่า model ซึ่งตรงนี้เอาสามเรื่องมาปนกัน:
- อยากรายงาน effect อะไร
- ใช้ link อะไร
- สมมติ variance แบบไหน
พอแยกสามเรื่องนี้ออกจากกัน ทุกอย่างจะง่ายขึ้นมาก
เลือก effect measure ก่อน
แก่นที่สุดคือ เรามีหลาย model เพราะมันตอบคนละ effect measure หรือใช้คนละวิธีคำนวณ สมมติ outcome ลงรหัส 0 หรือ 1 เช่น neonatal death:
- กลุ่มไม่สัมผัส: risk = 10%
- กลุ่มสัมผัส: risk = 20%
จากข้อมูลเดียวกัน เราตอบได้หลายแบบ
ข้อมูลเดียวกัน สามคำตอบ
| สิ่งที่ถาม | คำตอบ |
|---|---|
| Risk difference | 20% − 10% = 10% |
| Risk ratio | 20% / 10% = 2.0 |
| Odds ratio | (0.20/0.80)/(0.10/0.90) = 2.25 |
Logistic regression ให้ odds ratio
Logistic regression ใช้ logit คือลอการิทึมของ odds:
$$\operatorname{logit}(p) = \log\left(\frac{p}{1-p}\right) = \beta_0 + \beta_1 X$$โดย $p$ คือ risk ของ outcome $X$ คือ exposure (1 ถ้าสัมผัส 0 ถ้าไม่สัมผัส) และ $\beta_0$ กับ $\beta_1$ คือ coefficient ที่ regression ประมาณ ดังนั้น
$$e^{\beta_1} = OR$$นี่คือเหตุผลเดียวเลยว่าทำไม logistic regression ให้ odds ratio มันไม่ได้ผิด แต่ตอบอีกคำถามหนึ่ง
สมมติ logistic model ให้ $OR = 3.9$ ห้ามเขียนว่า risk สูงขึ้น 3.9 เท่า เพราะมันหมายถึง odds สูงขึ้น 3.9 เท่า โดยเฉพาะเมื่อ outcome พบบ่อย odds ratio อาจห่างจาก risk ratio มาก
ถ้าอยากได้ risk ratio โดยตรง
เราต้องการ model ที่เป็น
$$\log(p) = \beta_0 + \beta_1 X$$โดย $\log$ คือลอการิทึมธรรมชาติ ลองไล่ทีละขั้น
-
Exponentiate ทั้งสองข้าง
\[ p = e^{\beta_0 + \beta_1 X} \]
risk คือ exponential ของฝั่งขวา
-
กลุ่มไม่สัมผัส
\[ p_0 = e^{\beta_0} \]
แทน X = 0
-
กลุ่มสัมผัส
\[ p_1 = e^{\beta_0 + \beta_1} \]
แทน X = 1
-
หาร risk สองค่า
\[ \frac{p_1}{p_0} = e^{\beta_1} \]
พจน์ baseline ตัดกันหมด เหลือเพียง coefficient ของ exposure
ผลลัพธ์: $RR = e^{\beta_1}$: ภายใต้ log link, coefficient ที่ exponentiate แล้วคือ risk ratio
ทำไมมีทั้ง log-binomial และ modified Poisson
เพราะทั้งคู่ใช้ log link เหมือนกัน
Log-binomial model สมมติว่า outcome เป็น binomial และใช้ log link [1]:
$$Y \sim \text{Binomial}, \quad \log(p) = X\beta$$โดย $X\beta$ เป็นชื่อย่อของฝั่งขวาทั้งหมด คือ $\beta_0 + \beta_1 X$ บวกพจน์อื่น ๆ ถ้ามี
Modified Poisson regression ใช้ working model เป็น Poisson คือการแจกแจงที่ยืมมาใช้ในการ fit ไม่ใช่สิ่งที่เชื่อว่าเป็นจริง [2]:
$$Y \sim \text{Poisson}$$แต่ยังใช้ $\log(p) = X\beta$ เหมือนเดิม ดังนั้นในทั้งสอง model coefficient จึงตีความแบบเดียวกัน:
$$e^{\beta} = RR$$นี่คือจุดที่ทำให้หลายคนถามว่า ถ้าทั้งคู่ให้ risk ratio แล้วจะสร้างสอง model มาทำไม คำตอบคือ:
Log-binomial ถูกสร้างมาให้เข้ากับ binary outcome โดยตรง แต่คำนวณยากกว่า
Modified Poisson ยอมใช้ variance model ที่ไม่ตรงกับ binary outcome เพื่อให้ fitting ง่ายขึ้น แล้วใช้ robust standard error แก้เรื่อง variance
แยก link กับ family ออกจากกัน
นี่คือ root ของเรื่องนี้เลย ให้คิดว่า model มีสองชิ้น:
$$\boxed{\text{Family}} + \boxed{\text{Link}}$$Link function เชื่อม risk กับฝั่งขวาของสมการ และเป็นตัวกำหนดว่า coefficient หมายถึงอะไร [3, 4]:
- logit link $\log\left(\frac{p}{1-p}\right) = X\beta$ ดังนั้น coefficient ให้ odds ratio
- log link $\log(p) = X\beta$ ดังนั้น coefficient ให้ risk ratio
Family คือการแจกแจงที่สมมติให้ outcome หน้าที่ของมันตรงนี้คือบอกว่า variance ถูกคิดอย่างไร
Family = variance ถูกคิดอย่างไร
Binary outcome จริงมี binomial variance คือ $\operatorname{Var}(Y) = p(1-p)$ แต่ Poisson family สมมติว่า $\operatorname{Var}(Y) = p$ ซึ่งไม่ถูกสำหรับ binary outcome กฎที่ผูก variance ไว้กับค่าเฉลี่ยแบบนี้คือ variance function ของ family ลองดูที่ $p = 0.30$
-
สิ่งที่ binary outcome มีจริง
\[ p(1-p) = 0.3(0.7) = 0.21 \]
variance จริงของ outcome แบบ 0 หรือ 1 ที่มี risk 0.30
-
สิ่งที่ Poisson family สมมติ
\[ \operatorname{Var}(Y) = 0.30 \]
Poisson ให้ variance เท่ากับค่าเฉลี่ย
ผลลัพธ์: Poisson family คิดว่า variance คือ 0.30 ทั้งที่จริงคือ 0.21 ดังนั้น standard error ที่สร้างจาก Poisson variance จึงผิดสำหรับ binary outcome
Robust standard error มีไว้ทำอะไร
แยกให้ออกจาก coefficient ก่อน ค่าประมาณ $\hat\beta$ กับ standard error $SE(\hat\beta)$ เป็นคนละเรื่องกัน
- Coefficient บอก effect เช่น $e^{\beta_1} = 1.89$
- Standard error บอก uncertainty รอบ coefficient และเป็นตัวที่ใช้สร้าง confidence interval กับ P value
ใน modified Poisson, Poisson variance ผิดสำหรับ binary outcome ดังนั้น standard error ธรรมดาก็อาจผิดไปด้วย model จึงใช้
$$\boxed{\text{robust sandwich standard error}}$$เพื่อให้ inference ยังใช้ได้ แม้ variance function ที่สมมติไว้จะผิด Robust (sandwich) standard error ประมาณ variance จาก residual ที่สังเกตได้ แทนที่จะใช้ variance ที่สมมติไว้ [2] มันซ่อมอะไรได้และซ่อมอะไรไม่ได้ เป็นเรื่องของตอนที่ 4 ของชุดบทความนี้
ทำไม log-binomial ไม่ต้อง modified
Binary outcome จริง ๆ ก็คือ binomial ดังนั้น binomial variance $\operatorname{Var}(Y) = p(1-p)$ จึงตรงอยู่แล้ว ในเชิงแนวคิด model นี้เป็นธรรมชาติมาก:
$$\boxed{\text{Binary outcome}} \rightarrow \boxed{\text{Binomial family}} \rightarrow \boxed{\text{log link}} \rightarrow RR$$ปัญหาอยู่ที่ข้อจำกัด $0 \le p \le 1$ เพราะ log-binomial กำหนด
$$p = e^{X\beta}$$ถ้า $X\beta > 0$ ก็จะได้ $e^{X\beta} > 1$ ซึ่งเป็น probability ที่เป็นไปไม่ได้
ขั้นตอนการ fit หรือ optimizer ที่ค้นหา coefficient จึงต้องหาคำตอบภายในพื้นที่แคบ ๆ ที่ทุก observation ต้องมี $p_i \le 1$ และในบาง dataset จึงเกิด convergence failure คือ algorithm ไม่เคยนิ่งอยู่ที่ค่าประมาณที่คงที่ [5]
ทำไม modified Poisson ไม่ติดปัญหานี้
Poisson model ไม่ได้บังคับ fitted mean ให้ไม่เกิน 1 ดังนั้นมันยอมให้มีค่าเช่น
$$\hat p = 1.03$$ซึ่งถ้าตีความเป็น probability จริง ๆ ย่อมเป็นไปไม่ได้ แต่ optimization จะง่ายกว่ามาก นี่คือ trade-off [6]
Log-binomial เทียบกับ modified Poisson
| Log-binomial | Modified Poisson | |
|---|---|---|
| Binary distribution ถูกต้อง | ใช่ | ไม่: เป็น working family |
| Log link | ใช่ | ใช่ |
| ได้ risk ratio | ใช่ | ใช่ |
| Probability ถูกจำกัดไม่ให้เกิน 1 | ใช่ | ไม่ |
| Convergence | อาจมีปัญหา | โดยทั่วไปง่ายกว่า |
| ต้องใช้ robust standard error | โดยหลักไม่จำเป็น | จำเป็น |
ทำไม crude risk ratio ของสองตัวนี้เหมือนกันเป๊ะ
สมมติ covariate มีเพียง exposure แบบ binary ตัวเดียว คือ $X = 0$ หรือ $X = 1$ model จึงมี parameter แค่พอที่จะสร้าง risk สองค่า คือ $p_0$ และ $p_1$ มันจึง fit ทั้งสองกลุ่มได้ตรงกับ observed risk พอดี สมมติว่า
-
Risk ในกลุ่มไม่สัมผัส
\[ p_0 = 0.0067241 \]
ทั้งสอง model ทำซ้ำ observed risk นี้ได้ตรงทุกประการ
-
Risk ในกลุ่มสัมผัส
\[ p_1 = 0.0139787 \]
ทั้งสอง model ทำซ้ำค่านี้ได้เช่นกัน
-
Risk ratio จาก model ใดก็ได้
\[ RR = \frac{0.0139787}{0.0067241} = 2.0789 \]
ไม่ว่าจะ log-binomial หรือ modified Poisson อัตราส่วนก็เท่ากัน
ผลลัพธ์: Crude model นี้ essentially ถามเพียงว่า risk กลุ่ม exposed หารด้วย risk กลุ่ม unexposed เท่าไร ทั้งสอง model จึงไปถึงคำตอบเดียวกัน คือ 2.0789
ทำไม adjusted model อาจไม่เหมือนกันเป๊ะ
พอเพิ่ม covariates:
$$\log(p_i) = \beta_0 + \beta_1 \text{ANC}_i + \beta_2 \text{Age}_i + \beta_3 \text{SES}_i + \cdots$$โดย ANC คือการฝากครรภ์ (antenatal care) และ SES คือสถานะทางเศรษฐกิจและสังคม (socioeconomic status) ตอนนี้แต่ละคน $i$ มี risk $p_i$ ของตัวเองที่ไม่เหมือนกันแล้ว Binomial กับ Poisson family ใช้ variance ต่างกัน จึงใช้ weighting ต่างกันในการ estimate $\beta$ สอง model จึงอาจได้
$$RR = 1.886733 \quad \text{and} \quad RR = 1.886706$$ซึ่งต่างกันเล็กน้อย
ทำไม outcome ที่พบน้อย (rare) ยิ่งทำให้ผลใกล้กัน
Binomial variance คือ $p(1-p)$ และ Poisson variance คือ $p$ ถ้า $p = 0.0088$
-
หนึ่งลบ risk
\[ 1 - p = 0.9912 \]
เกือบเท่ากับ 1 เมื่อ outcome พบน้อย
-
Binomial variance
\[ p(1-p) = 0.0088 \times 0.9912 = 0.00872 \]
แทบไม่ต่างจาก Poisson variance คือ p = 0.0088
ผลลัพธ์: Binomial กับ Poisson family มอง variance คล้ายกันมาก จึงไม่แปลกที่ผลออกมาแทบเหมือนกัน
ผลต่างกันมากไม่ได้แปลว่าเป็น interaction โดยอัตโนมัติ
มีหลักที่พูดกันบ่อยว่า ถ้า adjusted สองวิธีต่างกันชัด ให้สงสัย interaction ประโยคนี้แรงเกินไป interaction เป็นหนึ่งในสาเหตุที่เป็นไปได้ แต่ไม่ใช่สาเหตุเดียว ถ้า log-binomial กับ modified Poisson ต่างกันชัด อาจเกิดจาก model misspecification ได้หลายแบบ เช่น
- มี interaction ที่ไม่ได้ใส่
- continuous covariate ที่จริง ๆ เป็น nonlinear แต่ใส่แบบ linear
- functional form ผิด
- omitted covariates
- model บังคับ common risk ratio ทั้งที่ risk ratio แตกต่างไปตาม covariates
- extreme fitted risks
อีกจุดหนึ่งคือ modified Poisson โดยทั่วไป converge ง่ายมาก แต่ไม่ควรพูดว่ามัน converge ได้ 100% เสมอ
รวมทุกอย่างเป็นต้นไม้เดียว
เวลามี binary outcome ให้เริ่มด้วยคำถามเดียวว่า ฉันอยากรายงานอะไร?
Binary outcome
│
What effect do I want?
│
┌─────────────────┼─────────────────┐
│ │ │
OR RR RD
│ │ │
logit link log link identity link
│ │
Logistic ┌──────┴──────┐
regression │ │
│ │
Log-binomial Modified Poisson
│ │
Binomial Poisson working
family family
│ │
RR = exp(b) RR = exp(b)
│
Robust SEดังนั้นไม่ต้องจำว่ามี model เยอะแยะ จริง ๆ แล้วมีเพียงสองคำถาม:
- ต้องการ effect อะไร: OR, RR หรือ RD?
- ถ้าต้องการ RR จะ estimate อย่างไร: log-binomial หรือ modified Poisson ร่วมกับ robust standard error?
Poisson จริงมี μ ไม่ใช่ p
การเขียน $\log(p) = X\beta$ สำหรับ modified Poisson ดูแปลก เพราะ Poisson regression ปกติไม่ได้มี $p$ Poisson regression ของจริงหน้าตาแบบนี้:
$$Y_i \sim \text{Poisson}(\mu_i)$$และใช้ log link:
$$\boxed{\log(\mu_i) = X_i\beta}, \quad \text{that is} \quad \mu_i = \exp(X_i\beta)$$โดย $\mu_i$ คือ expected count หรือ mean count ไม่ใช่ probability ตัวอย่างเช่น จำนวนครั้งที่ admit โรงพยาบาลในหนึ่งปี $Y_i = 0, 1, 2, 3, \ldots$ กับ model
$$\log(\mu_i) = \beta_0 + \beta_1 \text{Treatment}_i$$ดังนั้น
$$e^{\beta_1} = \frac{\mu_1}{\mu_0}$$คือ count ratio หรือ rate ratio ตามบริบท
เอา binary outcome มาใส่ แล้ว μ กลายเป็น p
Modified Poisson เอา binary outcome $Y_i \in \{0, 1\}$ มาใส่ใน model นั้น binary variable มี property สำคัญ คือค่าเฉลี่ยของมันเท่ากับ probability
-
ค่าเฉลี่ยของตัวแปร 0 หรือ 1
\[ E(Y) = 0(1-p) + 1(p) = p \]
ดังนั้น $E(Y_i) = P(Y_i = 1) = p_i$
-
Poisson mean model
\[ \log(E[Y_i]) = X_i\beta \]
Poisson model ทั่วไปเขียนแบบนี้
-
แทนค่าเฉลี่ยด้วย risk
\[ \log(p_i) = X_i\beta \]
เพราะ binary outcome มี $E[Y_i] = p_i$
ผลลัพธ์: นี่คือเหตุผลที่ modified Poisson ดูเหมือน log-binomial มาก
สาม model วางเทียบกัน
| Model | Distribution | Mean equation | Outcome และ effect |
|---|---|---|---|
| Poisson จริง | $Y \sim \text{Poisson}(\mu)$ | $\log(\mu) = X\beta$ | จำนวนนับ เช่น จำนวน infection |
| Log-binomial | $Y \sim \text{Binomial}(p)$ | $\log(p) = X\beta$ | 0 หรือ 1; $e^{\beta} = RR$ |
| Modified Poisson | “Pretend” ว่า $Y \sim \text{Poisson}(\mu)$ ทั้งที่จริง $Y$ เป็น 0 หรือ 1 | $\log(\mu) = X\beta$; เนื่องจาก $\mu = E(Y) = p$ จึงเท่ากับ $\log(p) = X\beta$ | 0 หรือ 1; $e^{\beta} = RR$ |
ภาพที่สำคัญที่สุด
วาง mean model ไว้บนสุด แล้วทั้งสาม model จะเข้าที่ของมันเอง:
Mean model
│
log(mean)
│
┌─────────────┴─────────────┐
│ │
Count outcome Binary outcome
│ │
E(Y) = μ count E(Y) = p
│ │
log(μ) = Xβ log(p) = Xβ
│ │
Poisson regression ┌────────┴────────┐
│ │
Log-binomial Modified Poisson
│ │
Binomial variance Poisson variance
p(1-p) p
│
wrong variance
│
robust SEดังนั้นประโยคที่แม่นที่สุดคือ:
Poisson regression จริงเขียนว่า $\log(\mu) = X\beta$ ใน modified Poisson เมื่อเอา binary $Y$ มาใช้ เนื่องจาก $E(Y) = p$ $\mu$ จึงเท่ากับ $p$ ใน mean model ทำให้เขียนเป็น $\log(p) = X\beta$ ได้ แม้ Poisson variance assumption จะผิด
และนี่คือเหตุผลที่ modified Poisson ให้ risk ratio ทั้งที่ชื่อว่า Poisson: เราใช้ mean structure ของ Poisson แต่ไม่เชื่อ variance ของ Poisson จึงใช้ robust standard error แทน
Probability ที่เกิน 1 ไม่ได้มาจากข้อมูล
ในความจริง probability ไม่มีทางเกิน 1 ค่า $p > 1$ ไม่ได้มาจากข้อมูลจริง แต่มาจากค่าชั่วคราวที่ model กำลังลองระหว่างการหาค่า $\beta$ ดังนั้นให้แยกข้อมูลจริงกับสมการที่ใช้ประมาณค่าออกจากกันก่อน
ข้อมูลจริงไม่มีปัญหา ในกลุ่มไม่สัมผัส 20/100 คนเกิด outcome ดังนั้น $p_0 = 0.20$ ในกลุ่มสัมผัส 40/100 คนเกิด outcome ดังนั้น $p_1 = 0.40$ ทุกค่าอยู่ระหว่าง 0 ถึง 1 ตามความจริง
Optimizer ลอง coefficient ที่ยังไม่รู้คำตอบ
Regression ไม่ได้รู้คำตอบตั้งแต่แรก เราบอกมันแค่ว่า
$$\log(p) = \beta_0 + \beta_1 X, \quad \text{that is} \quad p = e^{\beta_0 + \beta_1 X}$$จากนั้น computer ต้องค้นหา $\beta_0$ และ $\beta_1$ ที่เหมาะที่สุด ระหว่างทางมันอาจลองค่าหลายชุด ให้ $X = 1$
-
ชุดที่ใช้ได้
\[ \beta_0 = -1.5,\ \beta_1 = 0.7: \quad p = e^{-1.5 + 0.7} = e^{-0.8} = 0.45 \]
risk 0.45 เป็นไปได้
-
ชุดที่ใช้ไม่ได้
\[ \beta_0 = -0.2,\ \beta_1 = 0.5: \quad X\beta = -0.2 + 0.5 = 0.3, \quad p = e^{0.3} = 1.35 \]
probability 135% เป็นไปไม่ได้
-
1.35 หมายถึงอะไร
ไม่ได้แปลว่าข้อมูลบอกว่า risk คือ 135% แต่แปลว่าชุด coefficient ที่ optimizer เพิ่งลองนี้ใช้ไม่ได้
ผลลัพธ์: นี่คือ root ของปัญหา: ค่าที่เกิน 1 เป็นของชุด coefficient ที่ลอง ไม่ใช่ของข้อมูล
ทำไม log link ยอมให้สมการสร้างเลขแบบนั้น
เขียน $\eta = X\beta$ แทนฝั่งขวาทั้งหมดของสมการ เรียกว่า linear predictor (ช่วงท้ายของบทความนี้จะดูมันอย่างละเอียด) ภายใต้ log link
$$p = e^{\eta}$$มี range เป็น
$$0 < e^{\eta} < \infty$$ดูง่าย ๆ:
$$\begin{aligned} \eta = -2 &\Rightarrow p = e^{-2} = 0.135 \\ \eta = -1 &\Rightarrow p = 0.368 \\ \eta = 0 &\Rightarrow p = 1 \end{aligned}$$แต่ถ้า $\eta = 0.1$ ก็ได้ $p = 1.105$ และ $\eta = 1$ ได้ $p = 2.718$
Exponential function เองไม่ได้รู้ว่าเรากำลังใช้มันแทน probability มันรู้แค่ว่า $e^x > 0$ เท่านั้น เพื่อให้มันเป็น probability เราจึงต้องเพิ่ม constraint ว่า
$$\boxed{X_i\beta \le 0 \quad \text{for every person}}$$เพราะถ้า $X_i\beta \le 0$ แล้ว $e^{X_i\beta} \le 1$
นี่แหละทำไม logistic regression fit ง่ายกว่า
ดู inverse ของ logit link:
$$p = \frac{e^{X\beta}}{1 + e^{X\beta}}$$ไม่ว่า $X\beta$ จะเป็นอะไร ผลที่ได้เป็น probability ที่ใช้ได้เสมอ ถ้า $X\beta = -10$ ก็ได้ $p \approx 0$ ถ้า $X\beta = 0$ ได้ $p = 0.5$ ถ้า $X\beta = 10$ ได้ $p \approx 1$ แต่ไม่เคยเกิน 1:
$$\boxed{-\infty < X\beta < \infty \;\Rightarrow\; 0 < p < 1}$$นี่เป็นข้อดีมหาศาลของ logistic link
Log link กับ logit link ทีละค่า
เปรียบเทียบกัน ภายใต้ log-binomial $p = e^{\eta}$:
η = -3 → p = 0.05 valid
η = -1 → p = 0.37 valid
η = 0 → p = 1.00 valid (the edge)
η = 0.2 → p = 1.22 invalid
η = 1 → p = 2.72 invalidจึงต้องบังคับ $\eta \le 0$ ส่วนภายใต้ logistic $p = e^{\eta}/(1 + e^{\eta})$:
η = -3 → p = 0.047
η = -1 → p = 0.269
η = 0 → p = 0.500
η = 1 → p = 0.731
η = 3 → p = 0.953
η = 100 → p ≈ 1valid ทั้งหมด นี่คือความแตกต่างที่ลึกมากระหว่าง log link กับ logit link
Log-binomial ต้องค้นหาอย่างไร
จริง ๆ แล้ว parameter space ของ log-binomial model คือ
$$\boxed{\{\beta : X_i\beta \le 0 \text{ for every } i\}}$$และ computer ต้องหาค่า $\beta$ ภายในพื้นที่นี้เท่านั้น
ปัญหายิ่งหนักเมื่อมี predictors เยอะ เช่น
$$\log(p) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_3 + \cdots$$model ต้องมี $\beta_0 + \beta_1 X_{i1} + \beta_2 X_{i2} + \cdots \le 0$ สำหรับทุก observation คนหนึ่งอาจอายุมาก ได้รับ exposure และป่วยหนัก จน linear predictor ใกล้ศูนย์มาก:
$$X_i\beta = -0.0001, \quad p_i = e^{-0.0001} \approx 0.9999$$optimizer อยากขยับ coefficient อีกนิดเพื่อ fit คนอื่นให้ดีขึ้น แต่ถ้าขยับเป็น $X_i\beta = +0.001$ ก็จะได้ $p_i = 1.001$ ซึ่งห้าม optimizer จึงเหมือนกำลังเดินอยู่ชิดกำแพง:
INVALID
p > 1
│
│ ← the wall, p = 1
───────────────────┤
● │ ← the MLE may sit very close to here
↗ │
optimizer│
↗ │
valid region │
p < 1 │MLE หรือ maximum likelihood estimate คือชุด coefficient ที่การ fit กำลังค้นหา
Modified Poisson แก้ตรงไหน
Modified Poisson บอกว่า ฉันจะไม่บังคับเพดาน $p \le 1$ ระหว่าง optimization มันใช้
$$\log(\mu) = X\beta, \quad \mu = e^{X\beta}$$และ Poisson ยอมให้ $\mu = 0.2,\ 1,\ 2,\ 10,\ \ldots$ เพราะสำหรับ count ค่า mean ที่เกิน 1 ไม่แปลกเลย optimizer จึงวิ่งได้อิสระกว่า และ converge ง่ายกว่า
เมื่อนำมาใช้กับ binary $Y$ จะมี $E(Y) = p$ coefficient จึง estimate risk ratio แต่เพราะเราจงใจใช้ Poisson กับ binary outcome, variance จึงผิด และต้องใช้
$$\boxed{\text{robust standard error}}$$ร่วมด้วย
Poisson ยืดพื้นที่ค้นหา ไม่ได้ยืด probability
จุดที่ต้องเห็นภาพคือ Poisson ไม่ได้ยืด probability มันยืดพื้นที่ที่ optimizer มีสิทธิ์เดินหา coefficient
ให้ $\eta = X\beta$ ทั้ง log-binomial และ Poisson ใช้ $\mu = e^{\eta}$ คือเส้น exponential $y = e^x$ และเส้น $y = 1$ คือเพดานของ probability log-binomial ตีความ $y$ เป็น $p$ จึงใช้ได้เฉพาะด้านซ้าย คือ $\eta \le 0$:
$$\eta = -2 \Rightarrow p = 0.135, \quad \eta = -0.5 \Rightarrow p = 0.607, \quad \eta = 0 \Rightarrow p = 1$$แต่ $\eta = 0.2 \Rightarrow p = 1.22$ ไม่ได้แล้ว log-binomial จึงมีพื้นที่เดินแค่นี้:
η
<-----------------------------|----------------------->
0
VALID | INVALID
p < 1 | p > 1
-3 -2 -1 -0.5 0 +0.5 +1
↓ ↓ ↓ ↓ ↓ ↓ ↓
0.05 0.14 0.37 0.61 1.00 1.65 2.72
↑
the wall
Optimizer เด้งไปเด้งมาที่กำแพงอย่างไร
มาดูว่า computer หา coefficient อย่างไร สมมติเริ่มที่ $\eta = -0.5$ ซึ่งตอนนี้ $p = e^{-0.5} = 0.61$ ข้อมูลบอกว่าขยับ coefficient ขึ้นอีกหน่อยน่าจะ fit ดีขึ้น optimizer จึงอยากเดินแบบนี้
-0.5 → -0.3 → -0.1 → +0.1
-
ก้าวที่ข้ามกำแพง
\[ \eta = +0.1 \;\Rightarrow\; p = e^{0.1} = 1.105 \]
log-binomial ต้องหยุดทันที ก้าวนี้ห้าม
-
ย้อนกลับแล้วลด step
ลอง +0.1: ไม่ได้ ย้อนกลับ ลอง −0.05: ได้ ลอง −0.01: ได้ ลอง +0.005: ไม่ได้ ย้อนกลับ ลอง −0.002: ได้ แล้วก็ทำต่อไปเรื่อย ๆ
ผลลัพธ์: การค้นหาจึงเหมือนคนพยายามหาจุดที่ดีที่สุด แต่ติดกำแพงแล้วเด้งไปเด้งมา นี่แหละคือ convergence problem
แล้ว Poisson ทำอะไรต่างออกไป
Poisson ไม่ได้บอกว่า $\mu$ เป็น probability มันบอกว่า $\mu$ เป็น mean count ดังนั้น $\mu = e^{\eta}$ จะเป็น 0.5, 1, 2, 10 หรือ 100 ก็ได้หมด จึงไม่มีเพดานที่ 1 พื้นที่ของ optimizer จึงเป็น:
η
<------------------------------------------------------>
-3 -2 -1 0 +1 +2
↓ ↓ ↓ ↓ ↓ ↓
0.05 0.14 0.37 1 2.72 7.39
all usable for the Poissonถ้า optimizer เดิน $-0.5 \to -0.3 \to -0.1 \to +0.1 \to +0.2$ แล้วกลับมา $-0.05$ Poisson บอกว่า เดินไปเลย ฉันยังคำนวณ likelihood และ estimating equation ให้ได้ทุกจุด มันสามารถเดินผ่านบริเวณที่ถ้าตีความเป็น probability จะเกิน 1 เพื่อค้นหาว่า coefficient ชุดไหนดีที่สุด
นี่คือความหมายของ “fit ง่ายกว่า” ไม่ใช่ว่า $p > 1$ กลายเป็นของจริง แต่คือ:
$$\boxed{\text{no wall blocks the optimizer during the search}}$$ของจริงมีหลายคน ปัญหาจึงยิ่งชัด
สมมติมี 4 คน โดย
$$\eta_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i}$$log-binomial ต้องให้ $\eta_i \le 0$ สำหรับทุกคน optimizer อยากเพิ่ม $\beta_1$ อีก 0.1 เพื่อ fit คนที่ 1 ถึง 3 ให้ดีขึ้น
คนเดียวก็ขวางทั้ง step ได้
| คน | η ตอนนี้ | η หลังเพิ่ม $\beta_1$ อีก 0.1 |
|---|---|---|
| คนที่ 1 | −1.2 ใช้ได้ | −1.1 ใช้ได้ |
| คนที่ 2 | −0.8 ใช้ได้ | −0.7 ใช้ได้ |
| คนที่ 3 | −0.3 ใช้ได้ | −0.2 ใช้ได้ |
| คนที่ 4 | −0.01 เกือบชนกำแพง | +0.09 ใช้ไม่ได้ |
Modified Poisson เหมือนเอากำแพงออก
สำหรับ log-binomial, coefficient ที่ยอมให้ใช้ได้เป็นพื้นที่ปิด และจุดที่ดีที่สุดอาจอยู่ชิดขอบพอดี:
feasible coefficients
______
/ \
/ \
/ ● | ← the optimum sits at the edge
/ /
/__________/
moving outside = probability > 1 = forbiddenสำหรับ modified Poisson ไม่มีขอบแบบนั้น:
no boundary p ≤ 1
──────────────────────────────────
↗
↗ ●
↗
the optimizer moves freely in every direction
──────────────────────────────────ดังนั้น numerical algorithm เช่น Newton-Raphson หรือ iteratively reweighted least squares (IRLS) ไม่ต้องคอยกังวลว่า step นี้จะทำให้ predicted risk ของใครเกิน 1 หรือเปล่า จึง converge ง่ายกว่ามาก
แล้วทำไมยังใช้กับ binary outcome ได้ เพราะสำหรับ $Y = 0, 1$ มี $E(Y) = p$ Modified Poisson ใช้ mean equation $\log E(Y \mid X) = X\beta$ ซึ่งเท่ากับ $\log p = X\beta$ ดังนั้น $e^{\beta_1} = RR$ สิ่งที่ยืมมาจาก Poisson คือวิธี estimate mean ที่ไม่มี boundary ส่วน Poisson variance $\operatorname{Var}(Y) = \mu$ ผิดสำหรับ binary outcome ซึ่ง variance จริงคือ $\operatorname{Var}(Y) = p(1-p)$ จึงแก้ด้วย robust standard error
η คืออะไร: ชื่อย่อของฝั่งขวา
$\eta$ (อักษรกรีก eta) ไม่ได้เป็นตัวแปรใหม่จากข้อมูล มันเป็นแค่ชื่อย่อของสิ่งที่อยู่ด้านขวาของสมการ regression เช่นเรามี
$$\log(p) = \beta_0 + \beta_1 X$$เพื่อไม่ต้องเขียนยาว ๆ เราตั้งชื่อว่า
$$\boxed{\eta = \beta_0 + \beta_1 X}$$สมการเดิมจึงเขียนสั้นลงเป็น $\log(p) = \eta$ และแก้กลับได้ว่า $p = e^{\eta}$ ตัว $\eta$ เรียกว่า linear predictor
ตัวอย่าง eta ทีละขั้น
สมมติ $\beta_0 = -2$ และ $\beta_1 = 0.7$ และคนนี้มี $X = 1$
-
รวมฝั่งขวา
\[ \eta = \beta_0 + \beta_1 X = -2 + 0.7(1) = -1.3 \]
นี่คือ linear predictor ของคนนี้
-
ใช้ link ของ log-binomial
\[ \log(p) = \eta = -1.3 \]
ภายใต้ log-binomial, eta คือ log ของ risk
-
แปลงกลับเป็น risk
\[ p = e^{-1.3} \approx 0.27 \]
inverse ของ log link ให้ risk
ผลลัพธ์: ลำดับจึงเป็นแบบนี้เสมอ: $X \rightarrow \beta_0 + \beta_1 X \rightarrow \eta \rightarrow \text{link}^{-1} \rightarrow p$
η เป็นเลขอะไรก็ได้ แล้ว link เป็นตัวแปลง
ถ้ามีหลายตัวแปรก็เหมือนเดิม เช่น
$$\eta = \beta_0 + \beta_1(\text{ANC}) + \beta_2(\text{Age}) + \beta_3(\text{SES})$$$\eta$ ก็คือคะแนนรวมที่ regression คำนวณให้แต่ละคน ก่อนแปลงกลับเป็น probability หรือ risk
จุดสำคัญคือ $\eta$ ไม่ใช่ probability มันจะติดลบ บวก หรือเป็นเลขอะไรก็ได้ และlink function ต่างหากที่เอา $\eta$ ไปแปลงเป็นค่าที่เราต้องการ:
- logistic: $\eta = \log\dfrac{p}{1-p}$
- log-binomial: $\eta = \log(p)$
- Poisson: $\eta = \log(\mu)$
ดังนั้น $\eta$ จริง ๆ ก็คือแค่
$$\boxed{\eta = X\beta}$$เป็น shorthand ของ intercept บวก coefficient คูณ predictor แต่ละตัว เท่านั้น
ความเข้าใจผิดที่พบบ่อยและวิธีแก้
-
“Odds ratio 3.9 แปลว่า risk สูงขึ้น 3.9 เท่า”
Logistic regression รายงาน odds ไม่ใช่ risk และเมื่อ outcome พบบ่อย สองค่านี้อาจห่างกันมาก
วิธีแก้: เขียนว่า odds สูงขึ้น 3.9 เท่า ถ้า effect ที่ต้องการคือ risk ratio ให้เลือก model ที่ใช้ log link
-
“Risk ratio มาจาก Poisson family หรือ binomial family”
Log-binomial กับ modified Poisson ใช้ family ต่างกัน แต่ให้ coefficient แบบเดียวกัน
วิธีแก้: Risk ratio มาจาก log link ส่วน family กำหนด variance และด้วยเหตุนั้นจึงกำหนด standard error
-
“ถ้า adjusted log-binomial กับ modified Poisson ต่างกันชัด แปลว่ามี interaction”
Interaction เป็นหนึ่งในสาเหตุที่เป็นไปได้ ท่ามกลาง model misspecification หลายแบบ
วิธีแก้: ตรวจ model specification ก่อน: interaction ที่ขาดไป continuous covariate ที่เป็น nonlinear, functional form, omitted covariates, common risk ratio ที่ถูกบังคับ และ extreme fitted risks
-
“Outcome พบน้อย จึงใช้ modified Poisson”
Modified Poisson ประมาณ risk ratio ได้กับ outcome ที่พบบ่อยด้วย
วิธีแก้: ความพบน้อยสำคัญกับอีกคำถามหนึ่ง คือ odds ratio ใกล้เคียง risk ratio หรือไม่
-
“Modified Poisson converge เสมอ”
โดยทั่วไปมัน converge ง่ายมาก แต่ไม่ใช่ 100% ทุกครั้ง
วิธีแก้: ตรวจ convergence ของ modified Poisson เหมือนการ fit อื่นทุกครั้ง
-
“Fitted value 1.35 แปลว่า risk 135%”
Probability ที่เกิน 1 ไม่ได้มาจากข้อมูลจริง มันเป็นค่าที่ optimizer ลองระหว่างการค้นหา
วิธีแก้: อ่านว่าเป็นชุด coefficient ที่ใช้ไม่ได้ ไม่ใช่ risk
-
“Poisson fit ง่าย จึงเป็น distribution ที่ดีกว่าสำหรับ binary data”
Poisson variance ผิดสำหรับ binary outcome
วิธีแก้: “Fit ง่าย” หมายถึง optimization ง่ายกว่าเพราะไม่มีกำแพง และ variance ที่ผิดคือเหตุผลที่ต้องใช้ robust standard error
อภิธานศัพท์
- linear predictor (ตัวทำนายเชิงเส้น (linear predictor))
- ฝั่งขวาของสมการ regression คือ $\eta = X\beta$ มีค่าเป็นเลขอะไรก็ได้
- link function (ฟังก์ชันเชื่อมโยง (link function))
- ฟังก์ชันที่เชื่อม risk หรือค่าเฉลี่ย กับ linear predictor และกำหนดว่า coefficient หมายถึงอะไร (logit: odds ratio; log: risk ratio)
- family (family (การแจกแจงของผลลัพธ์))
- การแจกแจงที่สมมติให้ outcome เป็นตัวกำหนดว่า variance ถูกคิดอย่างไร และด้วยเหตุนั้นจึงกำหนด standard error
- variance function (ฟังก์ชันความแปรปรวน (variance function))
- variance ขึ้นกับค่าเฉลี่ยอย่างไร: $p(1-p)$ สำหรับ binomial และ $p$ (หรือ $\mu$) สำหรับ Poisson
- log-binomial model (แบบจำลอง log-binomial)
- binomial family ที่ใช้ log link ให้ risk ratio โดยตรง แต่ต้องรักษา $X_i\beta \le 0$ ทุกค่า
- modified Poisson regression (Poisson ดัดแปลง (modified Poisson regression))
- Poisson regression ที่ใช้ log link และ robust standard error ใช้กับ binary outcome เพื่อประมาณ risk ratio
- boundary
- ขอบของ coefficient ที่ log-binomial model ใช้ได้ คือจุดที่ fitted risk ของใครสักคนถึง 1 หรือก็คือกำแพง
- convergence
- จุดที่ค่าประมาณต่อเนื่องของ algorithm การ fit หยุดเปลี่ยนแปลง
- sandwich standard error (ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิช (robust standard error))
- robust standard error ที่ประมาณจาก residual ที่สังเกตได้ ทำให้ inference ยังใช้ได้เมื่อ variance ที่สมมติไว้ผิด
เอกสารอ้างอิง
- Wacholder S. Binomial regression in GLIM: estimating risk ratios and risk differences. Am J Epidemiol. 1986;123(1):174-184. doi:10.1093/oxfordjournals.aje.a114212 https://doi.org/10.1093/oxfordjournals.aje.a114212
- Zou G. A modified Poisson regression approach to prospective studies with binary data. Am J Epidemiol. 2004;159(7):702-706. doi:10.1093/aje/kwh090 https://doi.org/10.1093/aje/kwh090
- Nelder JA, Wedderburn RWM. Generalized linear models. J R Stat Soc Ser A. 1972;135(3):370-384. doi:10.2307/2344614 https://doi.org/10.2307/2344614
- McCullagh P, Nelder JA. Generalized linear models. 2nd ed. London: Chapman and Hall; 1989. doi:10.1007/978-1-4899-3242-6 https://doi.org/10.1007/978-1-4899-3242-6
- Williamson T, Eliasziw M, Fick GH. Log-binomial models: exploring failed convergence. Emerg Themes Epidemiol. 2013;10:14. doi:10.1186/1742-7622-10-14 https://doi.org/10.1186/1742-7622-10-14
- Naimi AI, Whitcomb BW. Estimating risk ratios and risk differences using regression. Am J Epidemiol. 2020;189(6):508-510. doi:10.1093/aje/kwaa044 https://doi.org/10.1093/aje/kwaa044
ประเด็นสำคัญ
- เลือก effect measure ก่อน: risk 10% กับ 20% ให้ risk difference 10% risk ratio 2.0 และ odds ratio 2.25
- Link กำหนดว่า coefficient หมายถึงอะไร (logit: odds ratio; log: risk ratio) และ family กำหนด variance ดังนั้น risk ratio มาจาก log link ไม่ใช่จากคำว่า Poisson หรือ binomial
- Modified Poisson = Poisson regression + log link + robust standard error: ยืมการ fit ของ Poisson มาใช้หา coefficient แต่ไม่ยืม variance ของมัน ซึ่งเป็น p แทนที่จะเป็น p(1 − p) ของ binary outcome
- ภายใต้ log link p = e^η ไม่มีเพดาน log-binomial จึงต้องรักษา η ของทุกคนให้ไม่เกิน 0 คนเดียวที่อยู่ใกล้กำแพงก็ขวางทั้ง step ได้ และการ fit อาจไม่ converge
- Binary outcome: logistic gives OR; log-binomial gives RR directly; if log-binomial has convergence problems, use modified Poisson with robust SE to estimate RR.
อ่านต่อในวิกิ: [[risk-regression-models-epidemiology-th]] [[glm-families-effect-measures]]