Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Sestav mu_guesses tak, aby hodnoty byly vycentrované kolem sample_mean s rozptylem daným sample_stdev.
  • Pro každou odhadovanou hodnotu mu_guess v mu_guesses použij compute_loglikelihood() pro všechna sample_distances s hodnotou sigma fixovanou na sample_stdev.
  • Najdi maximální hodnotu v poli loglikelihoods a pomocí jejího indexu urči best_mu z mu_guesses.
  • Vypiš best_mu a vizualizuj výsledek vykreslením hodnot loglikelihoods.

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)
Upravit a spustit kód