Tính toán khả năng khi rất lớn, vậy khả năng trở nên rất nhỏ?


8

Tôi đang cố gắng tính toán phân phối sau này:

(θ|-)= =ΠTôi= =1npTôiyTôi(1-pTôi)1-yTôiΣtất cảθ,pTôi|θΠTôi= =1npTôiyTôi(1-pTôi)1-yTôi

Vấn đề là tử số, là sản phẩm của một loạt các xác suất quá nhỏ. (My n lớn, khoảng 1500).nBernoulli(pTôi,yTôi)n

Do đó, các giá trị sau cho tất cả θ đều được tính bằng 0 (Tôi đang thực hiện tính toán trong R).

Để làm rõ, mỗi có riêng , cùng với các này tạo thành một vectơ gồm phần tử cho 's. Mỗi có vectơ pement riêng của .p i p i n n y θ n p iyTôipTôipTôinn yθnpTôi

EDIT: Thêm một ví dụ sao chép (cho tử số)

p <- sample(seq(0,1,by=0.01), 1500, replace=T)
y <- sample(c(0,1), 1500, replace=T)
dbern(y, p) # 1500-element vector, each element is < 1
prod(dbern(y, p)) # produce 0
exp(sum(log(dbern(y, p)))) # produce 0 since the sum is very negative

Bạn đã thử tính toán tổng số các bản ghi thay thế?
Ansari

1
Có cuộc thảo luận liên quan ở đây . Nó có một số thảo luận bổ sung về một số chi tiết của các tính toán như vậy.
Glen_b -Reinstate Monica

Câu trả lời:


7

Đây là một vấn đề phổ biến với tính toán khả năng cho tất cả các cách thức của các mô hình; các loại điều thường được thực hiện là để làm việc trên các bản ghi và sử dụng một hệ số tỷ lệ chung để đưa các giá trị vào một phạm vi hợp lý hơn.

Trong trường hợp này, tôi đề nghị:

Bước 1: Chọn một "khá điển hình" , . Chia công thức cho cả tử số và mẫu số của thuật ngữ chung cho tử số cho , để có được thứ gì đó sẽ ít bị tràn hơn.θ 0 θ = θ 0θθ0θ= =θ0

Bước 2: làm việc theo thang đo nhật ký, điều này có nghĩa là tử số là một tổng của sự khác biệt của các bản ghi và mẫu số là tổng của các khoản tiền khác nhau của các bản ghi.

Lưu ý: Nếu bất kỳ p nào của bạn là 0 hoặc 1, hãy rút chúng ra một cách riêng biệt và không lấy nhật ký của các điều khoản đó; họ dễ dàng đánh giá như vậy!

[Nói một cách tổng quát hơn, thang đo tỷ lệ và hoạt động trên thang đo log này có thể được xem là lấy một tập hợp các khả năng đăng nhập, và thực hiện điều này: . Một lựa chọn rõ ràng cho là tạo ra số hạng lớn nhất 0, để lại cho chúng tôi: . Lưu ý rằng khi bạn có tử số và mẫu số, bạn có thể sử dụng cùng một cho cả hai, sau đó sẽ hủy. Ở phần trên, điều đó tương ứng với việc lấy với khả năng đăng nhập cao nhất.]tôiTôiđăng nhập(ΣTôietôiTôi)= =c+đăng nhập(ΣTôietôiTôi-c)cc θ 0đăng nhập(ΣTôietôiTôi)= =tối đaTôi(tôiTôi)+đăng nhập(ΣTôietôiTôi-tối đaTôi(tôiTôi))cθ0

Các thuật ngữ thông thường trong tử số sẽ có xu hướng vừa phải hơn về kích thước, và vì vậy trong nhiều tình huống, tử số và mẫu số đều tương đối hợp lý.

Nếu có một phạm vi kích thước trong mẫu số, hãy thêm các kích thước nhỏ hơn trước khi thêm các kích thước lớn hơn.

Nếu chỉ có một vài thuật ngữ chiếm ưu thế lớn, bạn nên tập trung chú ý vào việc tính toán cho những điều tương đối chính xác.


Nhưng với tất cả theta, tử số luôn đi về 0. Làm thế nào để tôi chia số hạng chung cho tử số sau đó? (Bước 1)
Heisenberg

1
Bước 1 là đại số không tính toán máy tính. Mục đích của nó là cung cấp cho bạn một cái gì đó trong Bước 2 để tính toán mà không tràn. Trừ khi bạn nói rằng nó luôn luôn là đại số 0 ... trong trường hợp đó, bạn chắc chắn sẽ làm điều gì đó mà bạn không nên làm.
Glen_b -Reinstate Monica

được rồi - tôi sẽ thử. Tử số không chính xác bằng 0, chỉ rất nhỏ mà R không thể tính được. Cảm ơn!
Heisenberg

3
Lạy Chúa, con đúng! Cảm ơn bạn rất nhiều. Mọi người cứ nói "sử dụng log.likabilities" nhưng chỉ có bạn mới thực sự thấy vấn đề.
Heisenberg

1

Hãy thử viết hoa trên các thuộc tính của việc sử dụng logarit và tính tổng thay vì lấy tích của số thập phân. Sau khi tổng kết, chỉ cần sử dụng chống nhật ký để đưa nó trở lại dạng tự nhiên hơn. Tôi nghĩ rằng một cái gì đó như thế này nên làm

exp(ΣTôin(yTôi*tôiog(pTôi)+(1-yTôi)*tôiog(1-pTôi)))Σgexp(ΣTôinyTôi*tôiog(pTôi)+(1-yTôi)*tôiog(1-pTôi))


Tử số trong đề xuất của bạn vẫn tạo ra 0 vì tổng trong exp () vẫn rất âm (<-1000). Tôi có làm gì sai không? Cảm ơn bạn đã giúp đỡ!
Heisenberg

Chà, nếu bất kỳ giá trị nào trong p thực sự là 0 hoặc 1 thì tự động nhật ký của nó sẽ tạo ra -inf và do đó sẽ đăng nhập (1-p). Mặt khác, tôi nghĩ rằng những con số trở nên quá nhỏ để có thể trở lại dạng ban đầu.
philchalmer

2
Lưu ý rằng bạn có thể cộng và trừ bất kỳ hằng số từ các thuật ngữ bên trong biểu thức mà không thay đổi kết quả. cài đặt bằng âm của giá trị tối đa của cung cấp độ chính xác số tốt nhấtexp ( ) c log ( p ( θ | - ) )cđiểm kinh nghiệm()cđăng nhập(p(θ|-))
xác suất
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.