НачатьНачать бесплатно

Сколько дефолтов можно ожидать?

Предположим, банк выдал 100 ипотечных кредитов. Количество невозвратов может составить от 0 до 100. Вы хотите узнать вероятность того или иного числа дефолтов при условии, что вероятность дефолта по каждому кредиту равна p = 0.05. Для исследования этого вопроса проведём симуляцию. Вы выполните 100 испытаний Бернулли с помощью функции perform_bernoulli_trials(), написанной в предыдущем упражнении, и зафиксируете количество дефолтов. Здесь успех — это дефолт. (Напомним, что «успех» означает лишь то, что испытание Бернулли возвращает True, то есть заёмщик допустил дефолт.) Затем вы повторите эти 100 испытаний снова и снова — всего 1000 раз. По результатам симуляций вы построите гистограмму вероятностей числа дефолтов.

Это упражнение является частью курса

Статистическое мышление на Python (часть 1)

Посмотреть курс

Инструкции к упражнению

  • Установите зерно генератора случайных чисел равным 42.
  • Инициализируйте n_defaults как пустой массив с помощью np.empty(). Он должен содержать 1000 элементов, так как мы проводим 1000 симуляций.
  • Напишите цикл for с 1000 итерациями, чтобы вычислить количество дефолтов на каждые 100 кредитов с помощью функции perform_bernoulli_trials(). Она принимает два аргумента: количество испытаний 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
Редактировать и запускать код