Я экспериментирую с гауссовым распределением и его вероятностью.Чтобы определить максимальную вероятность, я различаю вероятность по mu (ожидание) и сигме (среднее), которые равны data.mean () и data.std () соответственно
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math
from scipy.stats import norm
def calculate_likelihood(x, mu, sigma):
n = len(x)
likelihood = n/2.0 * np.log(2 * np.pi) + n/2.0 * math.log(sigma **2 ) + 1/(2*sigma**2) * sum([(x_i - mu)**2 for x_i in x ])
return likelihood
def estimate_gaussian_parameters_from_data(data):
return data.mean(), data.std()
def main():
mu = 0
sigma = 2
x_values = np.linspace(mu - 3*sigma, mu + 3*sigma, 1000)
y_values_1 = mlab.normpdf(x_values, mu, sigma)
estimated_mu, estimated_sigma = estimate_gaussian_parameters_from_data(y_values_1)
if (__name__ == "__main__"):
main()
Я ожидал, что оценка_му и оценка_игма приблизительно должны быть равны му и сигма , но это не так.Вместо 0 и 2 я получаю 0,083 и 0,069.Я понимаю что-то не так?