Maximalizace věrohodnosti, část 2
V části 1 jsi vypočítal/a jednu hodnotu log-věrohodnosti pro jediné mu. V této části 2 použiješ předdefinovanou funkci compute_loglikelihood() k výpočtu pole hodnot log-věrohodnosti — jedné pro každý prvek pole možných hodnot mu.
Cílem je zjistit, která hodnota mu vede k maximální hodnotě v poli log-věrohodností.
Pracuj s předem načtenými daty sample_distances, sample_mean, sample_stdev a pomocnou funkcí compute_loglikelihood().
Toto cvičení je součástí kurzu
Úvod do lineárního modelování v Pythonu
Pokyny k cvičení
- Sestav
mu_guessestak, aby hodnoty byly vycentrované kolemsample_means rozptylem danýmsample_stdev. - Pro každou odhadovanou hodnotu
mu_guessvmu_guessespoužijcompute_loglikelihood()pro všechnasample_distancess hodnotousigmafixovanou nasample_stdev. - Najdi maximální hodnotu v poli
loglikelihoodsa pomocí jejího indexu určibest_muzmu_guesses. - Vypiš
best_mua vizualizuj výsledek vykreslením hodnotloglikelihoods.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)