Ile niespłaconych kredytów możemy się spodziewać?
Załóżmy, że bank udzielił 100 kredytów hipotecznych. Liczba kredytów, które nie zostaną spłacone, może wynosić od 0 do 100. Chcemy poznać prawdopodobieństwo uzyskania danej liczby niespłaconych kredytów, przy założeniu, że prawdopodobieństwo niewywiązania się z kredytu wynosi p = 0.05. Aby to zbadać, przeprowadzisz symulację. Wykonasz 100 prób Bernoulliego za pomocą funkcji perform_bernoulli_trials() napisanej w poprzednim ćwiczeniu i zarejestrujesz, ile razy kredyt nie zostanie spłacony. Tutaj sukcesem jest właśnie brak spłaty. (Pamiętaj, że „sukces" oznacza po prostu, że próba Bernoulliego przyjmuje wartość True, czyli że kredytobiorca nie spłacił zobowiązania.) Powtórzysz to kolejne 100 prób Bernoulliego, i tak dalej – łącznie 1000 razy. Na koniec wykreślisz histogram przedstawiający rozkład prawdopodobieństwa liczby niespłaconych kredytów.
To ćwiczenie jest częścią kursu
Myślenie statystyczne w Pythonie (część 1)
Instrukcje do ćwiczenia
- Ustaw ziarno generatora liczb losowych na 42.
- Zainicjuj
n_defaultsjako pustą tablicę za pomocąnp.empty(). Powinna zawierać 1000 elementów, ponieważ przeprowadzamy 1000 symulacji. - Napisz pętlę
forz1000iteracjami, która oblicza liczbę niespłaconych kredytów na 100 prób, korzystając z funkcjiperform_bernoulli_trials(). Funkcja przyjmuje dwa argumenty: liczbę próbn– w tym przypadku 100 – oraz prawdopodobieństwo sukcesup– w tym przypadku prawdopodobieństwo niespłacenia kredytu, czyli0.05. W każdej iteracji pętli zapisz wynik w odpowiednim elemencie tablicyn_defaults. - Wykreśl histogram
n_defaults. Użyj argumentudensity=True, aby wysokość słupków odzwierciedlała prawdopodobieństwo. - Wyświetl wykres.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Instantiate and seed random number generator
# Initialize the number of defaults: n_defaults
# Compute the number of defaults
for i in ____:
n_defaults[i] = ____
# Plot the histogram with default number of bins; label your axes
_ = plt.hist(____, ____)
_ = plt.xlabel('number of defaults out of 100 loans')
_ = plt.ylabel('probability')
# Show the plot