ComenzarEmpieza gratis

Maximizing Likelihood, Part 2

En la Parte 1, calculaste una única log-verosimilitud para un único mu. En esta Parte 2, aplicarás la función predefinida compute_loglikelihood() para calcular un array de valores de log-verosimilitud, uno por cada elemento en un array de posibles valores de mu.

El objetivo es determinar qué único valor de mu produce el valor máximo del array de log-verosimilitudes.

Para empezar, usa los datos precargados sample_distances, sample_mean, sample_stdev y la función auxiliar compute_loglikelihood().

Este ejercicio forma parte del curso

Introducción al modelado lineal en Python

Ver curso

Instrucciones del ejercicio

  • Construye mu_guesses tomando valores centrados en sample_mean y con una dispersión dada por sample_stdev.
  • Para cada valor de prueba mu_guess en mu_guesses, usa compute_loglikelihood() para todas las sample_distances, manteniendo sigma fija en sample_stdev.
  • Encuentra el valor máximo en el array loglikelihoods y usa su índice para obtener best_mu a partir de nuestros mu_guesses.
  • Imprime best_mu y visualízalo representando loglikelihoods.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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)
Editar y ejecutar código