ÎncepețiÎncepe gratuit

Maximizarea verosimilității, Partea 2

În Partea 1, ai calculat o singură log-verosimilitate pentru un singur mu. În această Parte 2, vei aplica funcția predefinită compute_loglikelihood() pentru a calcula un array de valori de log-verosimilitate – câte una pentru fiecare element dintr-un array de valori posibile pentru mu.

Scopul este să determini care valoare mu estimată conduce la valoarea maximă din array-ul de log-verosimilități.

Pentru început, folosește datele preîncărcate sample_distances, sample_mean, sample_stdev și funcția auxiliară compute_loglikelihood().

Acest exercițiu face parte din cursul

Introducere în modelarea liniară în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Construiește mu_guesses luând valori centrate pe sample_mean și distribuite în funcție de sample_stdev.
  • Pentru fiecare valoare estimată mu_guess din mu_guesses, folosește compute_loglikelihood() pentru toate sample_distances, menținând sigma fix la sample_stdev.
  • Găsește valoarea maximă din array-ul loglikelihoods și folosește indexul acesteia pentru a identifica best_mu din mu_guesses.
  • Afișează best_mu și vizualizează-l reprezentând grafic loglikelihoods.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul