我们可能会看到多少次违约?
假设某银行发放了 100 笔按揭贷款。实际违约的数量可能在 0 到 100 之间。已知单笔贷款违约的概率为 p = 0.05,您想知道观察到某个违约数量的概率。为此,您将进行一次模拟。您将使用上一练习中编写的 perform_bernoulli_trials() 函数执行 100 次伯努利试验,并记录出现了多少次违约。这里,"成功"指的是一次违约。(请记住,"success" 仅表示伯努利试验结果为 True,也就是借款人是否违约。)然后,您会再进行 100 次伯努利试验。如此反复,直到我们累计进行了 1000 次。最后,绘制一个直方图,展示不同违约次数对应的概率。
本练习是课程的一部分
Python 中的统计思维(第 1 部分)
练习说明
- 将随机数生成器的种子设为 42。
- 使用
np.empty()初始化空数组n_defaults。它应包含 1000 个元素,因为我们要做 1000 次模拟。 - 编写一个
for循环,迭代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