P_weather = c(Good = 0.6, Bad = 0.4)
P_fertilizer = c(Yes = 0.7, No = 0.3)
P_yield = c(High = 0.5, Low = 0.5)
likelihoods = list(
High = matrix(c(0.9, 0.7, 0.5, 0.2), nrow = 2, byrow = TRUE,
dimnames = list(c("Good", "Bad"), c("Yes", "No"))),
Low = matrix(c(0.1, 0.3, 0.5, 0.8), nrow = 2, byrow = TRUE,
dimnames = list(c("Good", "Bad"), c("Yes", "No")))
)
weather_obs = "Good"
fertilizer_obs = "Yes"
joint_high = likelihoods$High[weather_obs, fertilizer_obs] * P_yield["High"]
joint_low = likelihoods$Low[weather_obs, fertilizer_obs] * P_yield["Low"]
evidence <- joint_high + joint_low
posterior_high = joint_high / evidence
posterior_low = joint_low / evidence
cat("Posterior probability of High Yield: ", round(posterior_high, 4), "\n")
## Posterior probability of High Yield: 0.9
cat("Posterior probability of Low Yield: ", round(posterior_low, 4), "\n")
## Posterior probability of Low Yield: 0.1