আপনি বিভাজন মার্কোভ চেইনের ক্ষেত্রে আপনার ডেটা সম্পর্কে ভাবতে পারেন। আপনার দুটি পৃথক ভেরিয়েবল রয়েছেএক্স মহিলাদের জন্য এবং ওয়াই পুরুষদের জন্য, যা পরিবর্তনের স্টোকাস্টিক প্রক্রিয়া বর্ণনা করে এক্স এবং ওয়াই এ সময় টিচারটি বিভিন্ন রাজ্যের একটিতে। এর দ্বারা চিহ্নিত করা যাকএক্সt - 1 , i→এক্সt , j জন্য রূপান্তর এক্স থেকে টি - 1 প্রতি টি সময়, থেকে আমি- থেকে ঞ-পরিস্থিতি। এই ক্ষেত্রে, সময়ের সাথে অন্য রাজ্যে স্থানান্তর পূর্ববর্তী রাজ্যে শর্তযুক্তএক্স এবং ভিতরেওয়াই:
জনসংযোগ (এক্সt - 1 , i→এক্সt , j) = Pr (এক্সt , j|এক্সt - 1 , i,ওয়াইটি - 1 , কে)জনসংযোগ (ওয়াইt - 1 , h→ওয়াইটি , কে) = Pr (ওয়াইt , h|ওয়াইটি - 1 , কে,এক্সt - 1 , i)
রূপান্তর সম্ভাবনাগুলি সহজেই রূপান্তর ইতিহাসের গণনা করে এবং পরে সম্ভাব্যতাগুলি সাধারণ করে গণনা করা যায়:
states <- c("absent", "present", "attack", "threat")
# data is stored in 3-dimensional array, initialized with
# a very small "default" non-zero count to avoid zeros.
female_counts <- male_counts <- array(1e-16, c(4,4,4), list(states, states, states))
n <- length(male_seq)
for (i in 1:n) {
male_counts[female_seq[i-1], male_seq[i-1], male_seq[i]] <- male_counts[female_seq[i-1], male_seq[i-1], male_seq[i]] + 1
female_counts[male_seq[i-1], female_seq[i-1], female_seq[i]] <- female_counts[male_seq[i-1], female_seq[i-1], female_seq[i]] + 1
}
male_counts/sum(male_counts)
female_counts/sum(female_counts)
প্রান্তিক সম্ভাবনাগুলি ব্যবহার করে এটি সহজেই অনুকরণ করা যায়:
male_sim <- female_sim <- "absent"
for (i in 2:nsim) {
male_sim[i] <- sample(states, 1, prob = male_counts[female_sim[i-1], male_sim[i-1], ])
female_sim[i] <- sample(states, 1, prob = female_counts[male_sim[i-1], female_sim[i-1], ])
}
এই জাতীয় সিমুলেশন ফলাফল নীচে প্লট করা হয়।
তদুপরি, এটি এক-ধাপে এগিয়ে ভবিষ্যদ্বাণী করতে ব্যবহার করা যেতে পারে:
male_pred <- female_pred <- NULL
for (i in 2:n) {
curr_m <- male_counts[female_seq[i-1], male_seq[i-1], ]
curr_f <- female_counts[male_seq[i-1], female_seq[i-1], ]
male_pred[i] <- sample(names(curr_m)[curr_m == max(curr_m)], 1)
female_pred[i] <- sample(names(curr_f)[curr_f == max(curr_f)], 1)
}
আপনি যে ডেটা সরবরাহ করেছেন তাতে 69-86% নির্ভুলতার সাথে:
> mean(male_seq == male_pred, na.rm = TRUE)
[1] 0.8611111
> mean(female_seq == female_pred, na.rm = TRUE)
[1] 0.6944444
যদি রূপান্তরগুলি এলোমেলোভাবে ঘটে থাকে, তবে সংক্রমণের সম্ভাবনাগুলি আলাদা ইউনিফর্ম বিতরণ অনুসরণ করবে। এটি প্রমাণ নয় , তবে একটি সাধারণ মডেল ব্যবহার করে আপনার ডেটা সম্পর্কে চিন্তাভাবনা করার উপায় হিসাবে কাজ করতে পারে।