IniziaInizia gratis

Massimizzare la verosimiglianza, Parte 2

Nella Parte 1 hai calcolato una singola log-verosimiglianza per un singolo mu. In questa Parte 2 applicherai la funzione predefinita compute_loglikelihood() per calcolare un array di valori di log-verosimiglianza, uno per ciascun elemento in un array di possibili valori di mu.

L'obiettivo è capire quale singolo valore ipotizzato di mu porta al massimo valore dell'array di log-verosimiglianza.

Per iniziare, usa i dati già caricati sample_distances, sample_mean, sample_stdev e la funzione di supporto compute_loglikelihood().

Questo esercizio fa parte del corso

Introduzione alla modellazione lineare in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Costruisci mu_guesses prendendo valori centrati su sample_mean e dispersi di sample_stdev.
  • Per ciascun valore ipotizzato mu_guess in mu_guesses, usa compute_loglikelihood() su tutte le sample_distances, mantenendo sigma fisso a sample_stdev.
  • Trova il valore massimo nell'array loglikelihoods e usa il suo indice per ricavare best_mu dai nostri mu_guesses.
  • Stampa best_mu e visualizzalo tracciando i loglikelihoods.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)
Modifica ed esegui il codice