Quanti default possiamo aspettarci?
Supponiamo che una banca abbia concesso 100 mutui. È possibile che da 0 a 100 di questi prestiti vadano in default. Vuoi conoscere la probabilità di ottenere un certo numero di default, dato che la probabilità di default è p = 0.05. Per indagare, eseguirai una simulazione. Effettuerai 100 prove di Bernoulli usando la funzione perform_bernoulli_trials() che hai scritto nell'esercizio precedente e registrerai quanti default otteniamo. Qui, un successo è un default. (Ricorda che la parola "successo" significa semplicemente che la prova di Bernoulli restituisce True, cioè il beneficiario del prestito è andato in default?) Lo farai per altre 100 prove di Bernoulli. E ancora e ancora fino ad averlo provato 1000 volte. Poi, traccerai un istogramma che descrive la probabilità del numero di default.
Questo esercizio fa parte del corso
Pensare in modo statistico con Python (Parte 1)
Istruzioni dell'esercizio
- Imposta il seed del generatore di numeri casuali a 42.
- Inizializza
n_defaults, un array vuoto, usandonp.empty(). Deve contenere 1000 elementi, dato che stiamo facendo 1000 simulazioni. - Scrivi un ciclo
forcon1000iterazioni per calcolare il numero di default ogni 100 prestiti usando la funzioneperform_bernoulli_trials(). Accetta due argomenti: il numero di proven- in questo caso 100 - e la probabilità di successop- in questo caso la probabilità di default, cioè0.05. A ogni iterazione del ciclo memorizza il risultato in una voce din_defaults. - Traccia un istogramma di
n_defaults. Includi l'argomentodensity=Truein modo che l'altezza delle barre dell'istogramma indichi la probabilità. - Mostra il grafico.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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