Aan de slagBegin gratis

Likelihood maximaliseren, deel 1

Eerder kozen we het steekproefgemiddelde mean als een schatting van de populatieparameter mu. Maar hoe weten we dat het steekproefgemiddelde de beste schatter is? Dit is lastig, dus we pakken het in twee delen aan.

In deel 1 gebruik je een computationele aanpak om de log-likelihood van een gegeven schatting te berekenen. In deel 2 zullen we zien dat, wanneer je de log-likelihood voor veel mogelijke gokwaarden van de schatting berekent, één gok zal resulteren in de maximale likelihood.

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Bereken de mean() en std() van de vooraf ingeladen sample_distances als de gegokte waarden van de parameters van het waarschijnlijkheidsmodel.
  • Bereken voor elke distance de kans met gaussian_model(), opgebouwd uit sample_mean en sample_stdev.
  • Bereken de loglikelihood als de sum() van de log() van de kansen probs.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# Compute sample mean and stdev, for use as model parameter value guesses
mu_guess = np.____(sample_distances)
sigma_guess = np.____(sample_distances)

# For each sample distance, compute the probability modeled by the parameter guesses
probs = np.zeros(len(sample_distances))
for n, distance in enumerate(sample_distances):
    probs[n] = gaussian_model(____, mu=____, sigma=____)

# Compute and print the log-likelihood as the sum() of the log() of the probabilities
loglikelihood = np.____(np.____(probs))
print('For guesses mu={:0.2f} and sigma={:0.2f}, the loglikelihood={:0.2f}'.format(mu_guess, sigma_guess, ____))
Code bewerken en uitvoeren