Vấn đề đầu máy với các công ty quy mô khác nhau


9

Tôi đang làm việc thông qua Think Bayes (miễn phí tại đây: http://www.greenteapress.com/thinkbayes/ ) và tôi đang tập thể dục 3.1. Dưới đây là tóm tắt về vấn đề:

"Một đường sắt đánh số đầu máy xe lửa theo thứ tự 1..N. Một ngày nọ, bạn thấy một đầu máy xe lửa với số 60. Ước tính có bao nhiêu đầu máy xe lửa có đường sắt."

Giải pháp này được tìm thấy với hàm khả năng và hàm mũ theo cấp số nhân như vậy:

class Train(Suite):
  def __init__(self, hypos, alpha=1.0):
    # Create an exponential prior
    Pmf.__init__(self)
    for hypo in hypos:
      self.Set(hypo, hypo**(-alpha))
    self.Normalize()
  def Likelihood(self, data, hypo):
    if hypo < data:
      return 0
    else:
      return (1.0/hypo)

Về mặt khái niệm, điều này có nghĩa là, nếu chúng ta thấy số lượng tàu lớn hơn một trong những giả thuyết của chúng ta (1 ... 1000) thì mọi giả thuyết nhỏ hơn đều không có cơ hội đúng. Phần còn lại của các giả thuyết có cơ hội 1 / number_of_trains cho chúng ta thấy một chuyến tàu với con số này.

Trong bài tập tôi đang làm việc với tác giả, sau đó thêm vào một chút. Điều này giả định chỉ có một công ty. Tuy nhiên, trong cuộc sống thực, bạn có sự kết hợp giữa các công ty lớn và nhỏ và các công ty lớn hơn (cả hai đều có khả năng như nhau). Tuy nhiên, điều này có nghĩa là bạn có nhiều khả năng nhìn thấy một chuyến tàu từ một công ty lớn hơn vì họ có nhiều chuyến tàu hơn.

Bây giờ câu hỏi là làm thế nào để phản ánh điều này trong chức năng khả năng?

Đây không phải là Stack Overflow vì vậy tôi không thực sự yêu cầu trợ giúp về mã hóa, mà thay vào đó có lẽ chỉ giúp về cách tôi có thể nghĩ về vấn đề này theo chức năng khả năng.


Vấn đề tương tự là trong 50 vấn đề đầy thách thức về xác suất của Mosteller. Cuốn sách được phổ biến rộng rãi. Tôi không nghĩ rằng vịnh sớm là chính xác.

Mua cuốn sách @Hogan nhưng nó không bao gồm phần về các công ty khác được trộn lẫn mặc dù.
Justin Bozonier

Câu trả lời:


8

Trước tiên tôi phác thảo một cách tiếp cận cho hai công ty một cách chi tiết, việc mở rộng cho nhiều công ty hơn sau đó nên trực quan (ít nhất là khả năng, việc trước có thể khó khăn hơn).

Hãy tưởng tượng có hai công ty AB , nơi Một có đầu máy xe lửa và B có đầu máy xe lửa. Chúng tôi giả sử (bạn luôn có thể chuyển AB để thực hiện việc giữ này). Tổng số cho giả thuyết đầu máy đó là .N B N AN B N t o t = N A + N BNANBNANBNtot=NA+NB

Hãy tưởng tượng bạn nhìn thấy một đầu máy có số . Có ba trường hợp cho khả năng:n

  1. NA<n : Điều này không thể xảy ra, vì vậy khả năng là bằng không.
  2. 1 / N t o tNB<nNA : Đầu máy này phải đến từ công ty A , vì vậy chỉ có một đầu máy có số này. Do đó, khả năng là1/Ntot
  3. 2 / N t o tnNB : Đầu máy này có thể từ A hoặc từ B , vì vậy có hai đầu máy có số này. Khả năng nhìn thấy một trong số họ là .2/Ntot

Khi kiểm tra độ tỉnh táo: Khả năng nhìn thấy bất kỳ số nào là .

i=1L(i)=i=1NB2Ntot+i=NB+1NA1Ntot=2NBNtot+NANBNtot=NA+NBNtot=1

Thông thường, sẽ có (số lượng công ty + 1) trường hợp, một trường hợp cho mỗi khoảng . May mắn thay, chúng ta có thể nhìn vấn đề từ một góc độ khác và thấy rằng những gì chúng ta cần cho khả năng thực sự chỉ là hai số: , tổng số đầu máy xe lửa; và , số lượng đầu máy có số . Nhiều khả năng chúng ta sẽ thấy một trong những đầu máy , trong số đầu máy ? Điều này sẽ xảy ra trong trong mọi trường hợp, vì vậy phân số này là khả năng. Trong Python, bạn có thể tính toán điều này với hai trình tạo tổng (và thậm chí bạn không phải đặt hàng các công ty theo kích thước). Nếu N t o t N n n N n N t o t N nNi<nNi+1NtotNnnNnNtotNnNtotNschứa một danh sách (hoặc tuple) kích thước công ty theo giả thuyết của bạn, sau đó điều này sẽ mang lại khả năng nhìn thấy một đầu máy có số n:

total_number_of_locomotives = sum(N for N in Ns)
number_of_locomotives_with_that_number = sum(1 for N in Ns if n<=N)
likelihood = (number_of_locomotives_with_that_number / total_number_of_locomotives)

Lưu ý rằng trường hợp tầm thường với một công ty cũng được xử lý bởi mã này (tổng đầu tiên sẽ là , tổng thứ hai sẽ là 0 hoặc 1, tùy thuộc vào việc ).n NNnN


Đối với các linh mục, luật của Zipf có thể là điểm khởi đầu tốt cho phân phối thực tế các quy mô công ty.


Đây là một câu trả lời tuyệt vời và bạn nói đúng rằng tôi chắc chắn có thể thấy nó khái quát như thế nào. Cảm ơn bạn đã dành thời gian.
Justin Bozonier

Không có giá trị gì khi hàm khả năng kết quả có cùng giá trị độc lập với giả thuyết. Đó là, Likelihood(data=60, hypo=60)Likelihood(data=60, hypo=1000)đánh giá đến cùng một giá trị. Vì vậy, nếu phân phối trước là đồng nhất thì hậu thế cũng sẽ đồng nhất (trừ các giá trị cho khả năng là 0)
ecerulm

0

Tôi sẽ không phân tích mã, nhưng dưới đây là giải pháp.

Để cho

  • P (loc60) là xác suất để một đầu máy ngẫu nhiên có số 60
  • P (N) là xác suất trước đó có chính xác N đầu máy
  • P (loc60 | N) là xác suất để một đầu máy ngẫu nhiên có số 60, nếu tổng số đầu máy là N,
  • P (N | loc60) là xác suất có chính xác N đầu máy, nếu một đầu máy ngẫu nhiên có số 60

Sau đó

P(N|loc60)=P(loc60|N)P(N)P(loc60)=P(loc60|N)P(N)MP(loc60|M)

P(loc60|N)={1/N if N60 0 otherwise 

N60

P(N|loc60)= =P(N)/NΣM= =60P(M)/M

đăng nhậpN10 2N < 10 3 10 3N < 10 4 N max N max » 60đăng nhậpNtối đa102N<103103N<104Ntối đaNtối đa»60

Phân phối đồng đều của có nghĩa là , trong đó c là hằng số độc lập với N.đăng nhậpN

P(N)= =c(đăng nhập(N+1)-đăng nhậpN)c/N

Thay thế công thức này vào công thức trước đó, chúng ta có:

P(N|loc60)c/N2ΣM= =60Ntối đac/M2

Nhưng

ΣM= =60Ntối đac/M260Ntối đacM2dM= =c60-cNtối đac60

Bây giờ chúng tôi có

P(N|loc60)60/N2

Giá trị trung bình của N là gì? Đặt nó là , sau đóNtrung gian

60Ntrung gian60N2dN= =1/2

60/N-60Ntrung gian= =1/2

Ntrung gian= =120

Nếu những gì chúng ta cần là kỳ vọng toán học chứ không phải trung bình, thì

E(N)= =60Ntối đa60N2NdN= =60đăng nhậpNtối đa60

Từ những gì tôi biết về đường sắt, phải nằm trong khoảng từ đến , vì vậy E (N) nằm trong khoảng từ 170 đến 600.Ntối đa103106


1
Điều này dường như để giải quyết vấn đề đơn giản. Nhưng trường hợp nào khi bạn có thể có các công ty đường sắt khác nhau có quy mô khác nhau?
Justin Bozonier

Điều này giải quyết chính xác trường hợp khi có các công ty đường sắt khác nhau có quy mô khác nhau. " được phân phối đồng đều giữa 0 và một số " là phân phối kích thước. đăng nhậpNđăng nhậpNtối đa
user31264

4
Nếu bạn nói vậy. Thật kỳ lạ khi từ "công ty" không xuất hiện một lần trong câu trả lời của bạn. Xin lỗi, tôi không thấy kết nối.
Justin Bozonier
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.