Skip to content
DeepForgeby svx
All problems
EasyTime Seriests-138

Bayesian Updating Normal-Normal

Problem

Update a normal prior with n normal observations of known variance: posterior precision = 1/prior_var + n/data_var and posterior mean = post_var * (prior_mean/prior_var + n * xbar/data_var).

Return [posterior_mean, posterior_variance]; return the prior unchanged for empty data or non-positive variances.

Hint

Precisions add: prior precision plus one data precision per observation.

Test cases

case 1
in: [0,1,[1,2,3],1]
expected: [1.5,0.25]
case 2
in: [10,4,[12],2]
expected: [11.333333333333332,1.3333333333333333]
case 3
in: [5,1,[],2]
expected: [5,1]
case 4
in: [0,1,[1,1],1]
expected: [0.6666666666666666,0.3333333333333333]
Starter codePython
def bayesian_normal_update(prior_mean, prior_var, data, data_var):
    # Your code here
    pass

4 test cases · run your code against them in the editor