In [76]:
import numpy as np
import scipy.stats as sps
import matplotlib.pyplot as plt
from scipy.misc import logsumexp
#%matplotlib qt5
%matplotlib inline
plt.rcParams.update({'figure.figsize': (10.0, 6.0), 'font.size': 18})

Gaussian distribution

  • probability density finction
p(xμ,σ2)=N(xμ,σ2)=12πσ2exp{(xμ)22σ2}
  • Maximum likelihood estimate of Gaussian density paramters
μ=1Nixiσ2=1Nixi2
In [79]:
# Plot gaussian distribution
mu = 0    # mean
sigma = 1 # standard deviation (std)
t = np.linspace(-10,10,1000)
plt.clf()
plt.plot(t, sps.norm.pdf(t, mu, sigma), 'r',lw=3)

# Genereate data from this distribution and plot corresponding ML estimated distribution
# Repeat few times to see different model estimates for the different training data sets
N=10 # number of training observations
for i in range(10):
    x = sps.norm.rvs(mu, sigma, N)
    p=plt.plot(t, sps.norm.pdf(t, np.mean(x), np.std(x)))
    plt.plot(x, np.zeros_like(x), '+', color=p[0].get_color())