Probability Basics

easy · probability, bayes, distributions

Probability Basics

Implement fundamental probability calculations including conditional probability and Bayes' theorem.

Functions to implement

1. joint_probability(p_a, p_b)

Compute P(A and B) assuming A and B are independent.

  • Input: P(A) and P(B)
  • Output: P(A) * P(B)

2. conditional_probability(p_a_and_b, p_b)

Compute P(A|B) = P(A and B) / P(B).

  • Input: P(A and B), P(B)
  • Output: Conditional probability

3. bayes_theorem(p_b_given_a, p_a, p_b)

Compute P(A|B) using Bayes' theorem.

  • Input: P(B|A), P(A), P(B)
  • Output: P(A|B)

4. total_probability(p_b_given_a, p_a, p_b_given_not_a)

Compute P(B) using the law of total probability.

  • Input: P(B|A), P(A), P(B|not A)
  • Output: P(B)

5. bayesian_update(prior, likelihood, evidence)

Perform a Bayesian update to compute posterior.

  • Input: Prior P(H), Likelihood P(E|H), Evidence P(E)
  • Output: Posterior P(H|E)

Examples

# Independent events
joint_probability(0.5, 0.3)  # 0.15

# Conditional probability
conditional_probability(0.15, 0.3)  # 0.5

# Bayes theorem
bayes_theorem(0.8, 0.1, 0.14)  # ~0.571

# Classic disease example
# P(disease) = 0.01
# P(positive | disease) = 0.95
# P(positive | no disease) = 0.05
p_b = total_probability(0.95, 0.01, 0.05)  # 0.059
p_disease_given_positive = bayes_theorem(0.95, 0.01, p_b)  # ~0.161

Input domain and boundary policy

All arguments are consistent probabilities in [0,1]. joint_probability assumes independence; it cannot infer it. For conditional_probability, bayes_theorem, and bayesian_update, a zero denominator returns 0.0 by exercise policy. Mathematically the elementary conditional ratio is undefined there. No additional validation of inconsistent inputs is required.

Run tests to see results
No issues detected
    Join Discord