我們可能會看到多少違約?
假設某銀行發放了 100 筆房貸。最終可能有 0 到 100 筆發生違約。你想知道在單筆貸款違約機率為 p = 0.05 的前提下,出現特定違約筆數的機率。為了研究這件事,你將進行模擬。你會使用上一個練習中寫好的 perform_bernoulli_trials() 函式,先進行 100 次 Bernoulli 試驗,並記錄我們得到的違約數量。此處所謂的成功就是違約。(請記得,「成功」只代表該次 Bernoulli 試驗為 True,也就是這位借款人是否違約。)接著你會再做另一組 100 次 Bernoulli 試驗,如此反覆,直到一共做了 1000 次。最後,你會繪製一張直方圖,描述不同違約筆數的機率。
本練習屬於課程
Statistical Thinking in Python (Part 1)
練習說明
- 將隨機數產生器種子設為 42。
- 使用
np.empty()初始化空陣列n_defaults。因為我們要做 1000 次模擬,所以它應該包含 1000 個元素。 - 撰寫一個迴圈,執行
1000次迭代,利用perform_bernoulli_trials()計算每 100 筆貸款的違約數量。該函式接受兩個引數:試驗次數n(此處為 100)與成功機率p(此處為違約機率0.05)。每次迭代都將結果存入n_defaults的對應位置。 - 繪製
n_defaults的直方圖。加入關鍵字引數density=True,讓柱狀高度表示機率。 - 顯示你的圖表。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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