Statistical Models Interactive
Bayesian Updating
Combine prior beliefs with new evidence. Start with what you know, update as data arrives. The foundation of rational inference under uncertainty.
๐ Bayes' Theorem
P(ฮธ | data) โ P(data | ฮธ) ร P(ฮธ)
Posterior
Updated belief after data
Likelihood
How likely is data given ฮธ
Prior
Belief before data
Prior Belief
30 70
2 20
Observed Data
30 70
1 50
๐ Posterior
Posterior Mean 57.3
Posterior ฯ 3.02
95% Credible Int. [51.4, 63.2]
Prior Weight 9%
Data Weight 91%
Distribution Evolution
Balanced update: both prior and data contribute to posterior.
Key Properties
Sequential
Today's posterior is tomorrow's prior
Shrinkage
Small samples โ closer to prior
Uncertainty
Posterior width shows remaining uncertainty
๐ Betting Applications
Player Projections
Prior: historical/positional avg. Update with current season.
Win Probability
Prior: preseason. Update in-game as plays unfold.
Sharp Detection
Prior: new user is square. Update with betting patterns.
Odds Setting
Prior: opening line. Update with market action.
R Code Equivalent
# Bayesian update (conjugate normal-normal)
bayesian_update <- function(prior_mean, prior_var, obs_mean, obs_var, n) {
# Posterior variance
post_var <- 1 / (1/prior_var + n/obs_var)
# Posterior mean
post_mean <- post_var * (prior_mean/prior_var + n*obs_mean/obs_var)
list(
mean = post_mean,
sd = sqrt(post_var),
ci_lower = post_mean - 1.96 * sqrt(post_var),
ci_upper = post_mean + 1.96 * sqrt(post_var)
)
}
# Example
prior <- list(mean = 50, var = 10^2)
data <- list(mean = 58, var = 100, n = 10)
posterior <- bayesian_update(prior$mean, prior$var, data$mean, data$var, data$n)
cat(sprintf("Posterior: %.1f (95%% CI: %.1f - %.1f)\n",
posterior$mean, posterior$ci_lower, posterior$ci_upper))โ Key Takeaways
- โข Prior ร Likelihood โ Posterior
- โข More data โ posterior approaches MLE
- โข Less data โ posterior stays near prior
- โข Credible intervals have direct probability interpretation
- โข Perfect for sequential updating
- โข Regularizes naturally via prior