Làm thế nào để bạn sử dụng thuật toán EM để tính toán MLE cho một công thức biến tiềm ẩn của mô hình Poisson bằng không?


10

Mô hình hồi quy Poisson bằng 0 được xác định cho một mẫu bởi và giả sử thêm rằng các tham số và thỏa mãn(y1,,yn)

Yi={0with probability pi+(1pi)eλikwith probability (1pi)eλiλik/k!
λ=(λ1,,λn)p=(p1,,pn)

log(λ)=Bβlogit(p)=log(p/(1p))=Gγ.

Khả năng ghi nhật ký tương ứng của mô hình hồi quy Poisson bằng 0 là

L(γ,β;y)=yi=0log(eGiγ+exp(eBiβ))+yi>0(yiBiβeBiβ)i=1nlog(1+eGiγ)yi>0log(yi!)

Ở đây, và là các ma trận thiết kế. Các ma trận này có thể giống nhau, tùy thuộc vào các tính năng mà một người mong muốn sử dụng cho hai quy trình tạo. Họ có cùng số lượng hàng, tuy nhiên.BG

Giả sử rằng chúng ta có thể quan sát khi ở trạng thái hoàn hảo, không và khi từ trạng thái Poisson, khả năng đăng nhập sẽ làZi=1YiZi=0Yi

L(γ,β;y,z)=i=1nlog(f(zi|γ))+i=1nlog(f(yi|zi,β))

=i=1nzi(Giγlog(1+eGiγ))+i=1n(1zi)log(1+eGiγ)+i=1n(1zi)[yiBiβeBiβlog(yi!)]
Hai thuật ngữ đầu tiên là mất trong hồi quy logistic để tách từ . Thuật ngữ thứ hai là một hồi quy cho các điểm được tạo ra bởi quá trình Poisson.zi=0zi=1

Nhưng các biến tiềm ẩn không quan sát được? Mục đích là để tối đa hóa khả năng đăng nhập đầu tiên. Nhưng chúng tôi phải giới thiệu các biến tiềm ẩn và rút ra một khả năng đăng nhập mới. Sau đó, sử dụng thuật toán EM, chúng ta có thể tối đa hóa khả năng đăng nhập thứ hai. Nhưng điều này giả định rằng chúng ta biết rằng hoặc ?Zi=0Zi=1


là gì Ngoài ra, phần lớn của câu hỏi này dường như bị cắt và dán phần lớn từ một câu hỏi trước đó, khác nhau của @Rulk. Có phải bạn không f
Macro

@Macro: Macro có đó là tôi. Tôi không chắc chắn là gì . Tờ báo không bao giờ nói. f
Damien

Câu trả lời:


11

Nguồn gốc của khó khăn bạn đang gặp phải trong câu:

Sau đó, sử dụng thuật toán EM, chúng ta có thể tối đa hóa khả năng đăng nhập thứ hai.

Như bạn đã quan sát, bạn không thể. Thay vào đó, những gì bạn tối đa hóa là giá trị mong đợi của khả năng nhật ký thứ hai (được gọi là "khả năng nhật ký dữ liệu hoàn chỉnh"), trong đó giá trị mong đợi được lấy qua . zi

Điều này dẫn đến một quy trình lặp, trong đó tại lặp bạn tính toán các giá trị dự kiến ​​của với các ước tính tham số từ lần lặp ( (đây được gọi là "Bước E ",) sau đó thay thế chúng vào khả năng ghi nhật ký dữ liệu hoàn chỉnh (xem EDIT bên dưới để biết lý do tại sao chúng ta có thể làm điều này trong trường hợp này) và tối đa hóa điều đó liên quan đến các tham số để có được ước tính cho lần lặp hiện tại (" bước M " .)kthzi(k1)th

Khả năng ghi nhật ký dữ liệu hoàn chỉnh cho Poisson bằng 0 trong trường hợp đơn giản nhất - hai tham số, giả sử và - cho phép đơn giản hóa đáng kể khi đến bước M và điều này mang đến một mức độ nào đó cho biểu mẫu của bạn. Tôi sẽ chỉ cho bạn cách nó hoạt động trong trường hợp đơn giản thông qua một số mã R, để bạn có thể thấy bản chất của nó. Tôi sẽ không đơn giản hóa càng nhiều càng tốt, vì điều đó có thể gây ra sự mất đi sự rõ ràng khi bạn nghĩ về vấn đề của mình:λp

# Generate data
# Lambda = 1,  p(zero) = 0.1
x <- rpois(10000,1)
x[1:1000] <- 0

# Sufficient statistic for the ZIP
sum.x <- sum(x)

# (Poor) starting values for parameter estimates
phat <- 0.5
lhat <- 2.0

zhat <- rep(0,length(x))
for (i in 1:100) {
  # zhat[x>0] <- 0 always, so no need to make the assignment at every iteration
  zhat[x==0] <- phat/(phat +  (1-phat)*exp(-lhat))

  lhat <- sum.x/sum(1-zhat) # in effect, removing E(# zeroes due to z=1)
  phat <- mean(zhat)   

  cat("Iteration: ",i, "  lhat: ",lhat, "  phat: ", phat,"\n")
}

Iteration:  1   lhat:  1.443948   phat:  0.3792712 
Iteration:  2   lhat:  1.300164   phat:  0.3106252 
Iteration:  3   lhat:  1.225007   phat:  0.268331 
...
Iteration:  99   lhat:  0.9883329   phat:  0.09311933 
Iteration:  100   lhat:  0.9883194   phat:  0.09310694 

Trong trường hợp của bạn, ở mỗi bước, bạn sẽ thực hiện hồi quy Poisson có trọng số trong đó các trọng số là 1-zhatđể có được ước tính của và do đó , sau đó tối đa hóa:βλi

(Ezilogpi+(1Ezi)log(1pi))

đối với vectơ hệ số của ma trận để lấy ước tính của . Các giá trị mong đợi , một lần nữa được tính toán ở mỗi lần lặp.GpiEzi=pi/(pi+(1pi)exp(λi))

Nếu bạn muốn làm điều này cho dữ liệu thực, trái ngược với việc chỉ hiểu thuật toán, các gói R đã tồn tại; đây là một ví dụ http://www.ats.ucla.edu/stat/r/dae/zipoisson.htm bằng psclthư viện.

EDIT: Tôi nên nhấn mạnh rằng những gì chúng tôi đang làm là tối đa hóa giá trị mong đợi của khả năng ghi nhật ký dữ liệu hoàn chỉnh, KHÔNG tối đa hóa khả năng nhật ký dữ liệu hoàn chỉnh với các giá trị dự kiến ​​của các biến dữ liệu / biến tiềm ẩn bị thiếu. khả năng ghi nhật ký dữ liệu hoàn chỉnh là tuyến tính trong dữ liệu bị thiếu, vì ở đây, hai cách tiếp cận là như nhau, nhưng nếu không, chúng không có.


@Cokes, bạn nên thêm thông tin này dưới dạng câu trả lời bổ sung của riêng bạn, không thay đổi câu trả lời hiện có. Chỉnh sửa này không nên được phê duyệt.
gung - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.