File size: 738 Bytes
798602c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# stats/inference/likelihood.py

import numpy as np


def relative_log_likelihood(

    *,

    data,

    mu,

    sigma,

    sigma_hat,

):
    """

    Relative log-likelihood for Normal model.



    ℓ(μ,σ) − ℓ(μ̂,σ̂)

    """
    n = len(data)
    xbar = np.mean(data)

    return n * (
        np.log(sigma_hat / sigma)
        + 0.5 * (
            1
            - (np.mean(data**2) - 2 * mu * xbar + mu**2) / sigma**2
        )
    )


def relative_likelihood(

    *,

    data,

    mu,

    sigma,

    sigma_hat,

):
    return np.exp(
        relative_log_likelihood(
            data=data,
            mu=mu,
            sigma=sigma,
            sigma_hat=sigma_hat,
        )
    )