Chuyển tới nội dung chính

ZIP — Zero-Inflated Poisson

ZIP (Zero-Inflated Poisson) xử lý biến đếm có dư thừa số 0 (excess zeros) vượt mức Poisson dự đoán, khi các số 0 đến từ hai cơ chế khác nhau: nhóm "luôn 0" (structural zeros) và nhóm đếm Poisson (có thể tình cờ bằng 0).

Khi nào dùng

Dùng ZIP khi dữ liệu đếm có rất nhiều số 0 và bạn tin có một nhóm "không bao giờ xảy ra sự kiện" (vd số điếu thuốc/ngày: người không hút luôn = 0).


Cấu trúc hỗn hợp 2 phần

P(Yi=0)=πi+(1πi)eμi,P(Yi=y)=(1πi)eμiμiyy!,  y1P(Y_i = 0) = \pi_i + (1 - \pi_i) e^{-\mu_i}, \qquad P(Y_i = y) = (1 - \pi_i) \frac{e^{-\mu_i}\mu_i^{y}}{y!}, \; y \ge 1

với πi\pi_i (xác suất structural zero) mô hình hóa bằng logit/probit; μi=exp(Xiβ)\mu_i = \exp(X_i\beta).


Thực hiện trong EcoLab

  1. Module Mô hình hóa → họ Dữ liệu đếmZIP.
  2. Khai báo biến cho phần đếm (XX) và phần inflation (biến dự báo "luôn 0").
  3. Chạy; so sánh Vuong test với Poisson; xuất mã tái lập.

Minh họa mã tái lập

* === Zero-Inflated Poisson (ZIP) ===
zip patents rd_spend firm_size, inflate(small_firm) vuong

* inflate(): biến dự báo nhóm "luôn 0"
* vuong: kiểm định Vuong so sánh ZIP vs Poisson chuẩn

* Đọc kết quả:
* - Phần đếm (Poisson): hệ số rd_spend, firm_size
* - Phần inflation (Logit): hệ số small_firm
* - Vuong test: z > 1.96 ⇒ ZIP phù hợp hơn Poisson

Hạn chế

  • Nếu phần đếm vẫn overdispersionZINB.
  • Diễn giải phức tạp hơn (hai phương trình); cần lý thuyết rõ cho cơ chế zero.

Video minh họa

Video Tutorial: Hướng dẫn chạy Zero-Inflated Poisson (ZIP) trong EcoLab

Xem thêm