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 utiliser 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 donne la valeur maximale du tableau de log-vraisemblance.
Pour commencer, utilisez les données préchargées sample_distances, sample_mean, sample_stdev ainsi que la fonction utilitaire compute_loglikelihood().
Cet exercice fait partie du cours
Introduction à la modélisation linéaire en Python
Instructions
- Construisez
mu_guessesen prenant des valeurs centrées sursample_meanet étalées selonsample_stdev. - Pour chaque valeur candidate
mu_guessdansmu_guesses, utilisezcompute_loglikelihood()pour toutes lessample_distances, en gardantsigmafixé àsample_stdev. - Trouvez la valeur maximale dans le tableau
loglikelihoodset utilisez son indice pour obtenirbest_muà partir demu_guesses. - Affichez
best_muet visualisez-le en traçantloglikelihoods.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)