LoslegenKostenlos loslegen

Likelihood maximieren, Teil 2

In Teil 1 hast du eine einzelne Log-Likelihood für ein einzelnes mu berechnet. In diesem Teil 2 wendest du die vordefinierte Funktion compute_loglikelihood() an, um ein Array von Log-Likelihood-Werten zu berechnen—einen für jedes Element in einem Array möglicher mu-Werte.

Ziel ist es dann, herauszufinden, welcher einzelne mu-Wert zum maximalen Wert im Log-Likelihood-Array führt.

Zum Start verwende die vorab geladenen Daten sample_distances, sample_mean, sample_stdev und die Hilfsfunktion compute_loglikelihood().

Diese Übung ist Teil des Kurses

Einführung in lineares Modellieren mit Python

Kurs anzeigen

Anleitung zur Übung

  • Erstelle mu_guesses, indem du Werte um sample_mean zentrierst und mit sample_stdev streust.
  • Verwende für jeden Schätzwert mu_guess in mu_guesses compute_loglikelihood() für alle sample_distances und halte sigma fest auf sample_stdev.
  • Finde den maximalen Wert im Array loglikelihoods und nutze dessen Index, um das best_mu aus unseren mu_guesses zu bestimmen.
  • Drucke best_mu aus und visualisiere es, indem du die loglikelihoods plottest.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)
Code bearbeiten und ausführen