НачатьНачать бесплатно

Максимизация правдоподобия, часть 2

В части 1 вы вычислили единственное значение логарифмического правдоподобия для одного значения mu. В этой части 2 вы примените заранее определённую функцию compute_loglikelihood(), чтобы получить массив значений логарифмического правдоподобия — по одному для каждого элемента массива возможных значений mu.

Цель — определить, при каком значении mu логарифмическое правдоподобие достигает максимума.

Воспользуйтесь предварительно загруженными данными sample_distances, sample_mean, sample_stdev и вспомогательной функцией compute_loglikelihood().

Это упражнение является частью курса

Введение в линейное моделирование на Python

Посмотреть курс

Инструкции к упражнению

  • Постройте массив mu_guesses, центрированный на sample_mean с разбросом, равным sample_stdev.
  • Для каждого значения mu_guess из mu_guesses вычислите compute_loglikelihood() по всем sample_distances, фиксируя sigma равным sample_stdev.
  • Найдите максимальное значение в массиве loglikelihoods и используйте его индекс, чтобы определить best_mu из mu_guesses.
  • Выведите best_mu и визуализируйте результат, построив график loglikelihoods.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Create an array of mu guesses, centered on sample_mean, spread out +/- by sample_stdev
low_guess = sample_mean - 2*sample_stdev
high_guess = sample_mean + 2*sample_stdev
mu_guesses = np.linspace(____, ____, 101)

# Compute the loglikelihood for each model created from each guess value
loglikelihoods = np.zeros(len(mu_guesses))
for n, mu_guess in enumerate(____):
    loglikelihoods[n] = compute_loglikelihood(____, mu=____, sigma=sample_stdev)

# Find the best guess by using logical indexing, the print and plot the result
best_mu = mu_guesses[loglikelihoods==np.max(____)]
print('Maximum loglikelihood found for best mu guess={}'.format(____))
fig = plot_loglikelihoods(mu_guesses, loglikelihoods)
Редактировать и запускать код