গরবান কেমন আছে?
সমস্যাটি হ'ল আমরা জানি না কয়টি শূন্য গণনা পালন করা হয়। আমাদের এটি অনুমান করতে হবে। এ জাতীয় পরিস্থিতিতে প্রত্যাশা-ম্যাক্সিমাইজেশন অ্যালগরিদম হিসাবে একটি সর্বোত্তম পরিসংখ্যান পদ্ধতি procedure
একটি সহজ উদাহরণ:
ধরা যাক আমরা 0.2 এর পয়সন ধ্রুবক সহ অজানা জনসংখ্যার (1,000,000) থেকে আঁকছি।
counts <- rpois(1000000, 0.2)
table(counts)
0 1 2 3 4 5
818501 164042 16281 1111 62 3
তবে আমরা শূন্য সংখ্যা গণনা করি না। পরিবর্তে আমরা এটি পর্যবেক্ষণ:
table <- c("0"=0, table(counts)[2:6])
table
0 1 2 3 4 5
0 164042 16281 1111 62 3
সম্ভাব্য ফ্রিকোয়েন্সি পর্যবেক্ষণ করা হয়েছে
k <- c("0"=0, "1"=1, "2"=2, "3"=3, "4"=4, "5"=5)
পয়সন বিতরণের শুরুটি করুন - কেবল একটি অনুমান করুন (আমরা জানি এটি এখানে 0.2)।
lambda <- 1
প্রত্যাশা - পোয়েসন বিতরণ
P_k <- lambda^k*exp(-lambda)/factorial(k)
P_k
0 1 2 3 4 5
0.367879441 0.367879441 0.183939721 0.061313240 0.015328310 0.003065662
n0 <- sum(table[2:6])/(1 - P_k[1]) - sum(table[2:6])
n0
0
105628.2
table[1] <- 105628.2
বৃহদায়ন
lambda_MLE <- (1/sum(table))*(sum(table*k))
lambda_MLE
[1] 0.697252
lambda <- lambda_MLE
দ্বিতীয় পুনরাবৃত্তি
P_k <- lambda^k*exp(-lambda)/factorial(k)
n0 <- sum(table[2:6])/(1 - P_k[1]) - sum(table[2:6])
table[1] <- n0
lambda <- (1/sum(table))*(sum(table*k))
population lambda_MLE
[1,] 361517.1 0.5537774
একীকরণ পর্যন্ত পুনরাবৃত্তি:
for (i in 1:200) {
P_k <- lambda^k*exp(-lambda)/factorial(k)
n0 <- sum(table[2:6])/(1 - P_k[1]) - sum(table[2:6])
table[1] <- n0
lambda <- (1/sum(table))*(sum(table*k))
}
cbind( population = sum(table), lambda_MLE)
population lambda_MLE
[1,] 1003774 0.1994473
আমাদের জনসংখ্যার প্রাক্কলন 1003774 এবং আমাদের পিসন রেটটি 0.1994473 অনুমান করা হয় - এটি নমুনাযুক্ত জনসংখ্যার আনুমানিক অনুপাত। আপনি যে সাধারণ জৈবিক সমস্যাগুলির সাথে মোকাবিলা করছেন তার মধ্যে প্রধান সমস্যাটি হ'ল অনুমান করা যায় যে পোয়েসন হারটি একটি ধ্রুবক।
দীর্ঘায়িত পোস্টের জন্য দুঃখিত - এই উইকিটি আর কোডের জন্য সত্যিই উপযুক্ত নয়।