CommencezCommencez gratuitement

Maximiser la vraisemblance, partie 2

Dans la partie 1, vous avez calculé une seule log-vraisemblance pour une seule valeur de mu. Dans cette partie 2, vous allez appliquer la fonction prédéfinie compute_loglikelihood() pour calculer un tableau de valeurs de log-vraisemblance, une pour chaque élément d'un tableau de valeurs possibles de mu.

L'objectif est ensuite de déterminer quelle valeur unique de mu proposée mène à la valeur maximale unique du tableau de log-vraisemblances.

Pour commencer, utilisez les données préchargées sample_distances, sample_mean, sample_stdev ainsi que la fonction utilitaire compute_loglikelihood().

Cette activité fait partie du cours

Introduction aux modèles linéaires en Python

Voir le cours

Instructions de l’exercice

  • Construisez mu_guesses en prenant des valeurs centrées sur sample_mean et étalées selon sample_stdev.
  • Pour chaque valeur proposée mu_guess dans mu_guesses, utilisez compute_loglikelihood() pour toutes les sample_distances, en gardant sigma fixé à sample_stdev.
  • Trouvez la valeur maximale dans le tableau loglikelihoods et utilisez son indice pour trouver best_mu à partir de nos mu_guesses.
  • Affichez best_mu et visualisez-le en traçant les loglikelihoods.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code