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

Фитнес-цели

Давайте смоделируем, как уровень активности влияет на снижение веса, используя данные современных фитнес-трекеров. В дни, когда вы ходите в спортзал, вы делаете в среднем около 15 тысяч шагов, а в остальные дни — около 5 тысяч. В спортзал вы ходите 40% дней. Смоделируем количество шагов за день как случайную величину с распределением Пуассона со средним \(\lambda\), которое зависит от того, идёте вы в спортзал или нет.

Для простоты предположим: если вы делаете более 10 тысяч шагов, то с вероятностью 80% теряете 1 фунт и с вероятностью 20% набираете 1 фунт. При менее 8 тысяч шагов вероятности меняются местами. В остальных случаях шансы на потерю или набор 1 фунта одинаковы. Используя эту информацию, вычислите вероятность снижения веса за месяц.

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

Статистическое моделирование на Python

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

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

  • Смоделируйте переменную steps как случайную величину с распределением Пуассона для заданного дня, используя значение lam.
  • Установите prob равным [0.2, 0.8], если steps > 10000, или [0.8, 0.2], если steps < 8000. Просуммируйте весь потерянный или набранный за месяц вес в переменной w.
  • Вычислите и выведите долю симуляций, в которых итоговый вес за месяц в outcomes оказался меньше 0. Сохраните результат в переменную weight_loss_outcomes_frac и используйте её для вывода результатов.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Simulate steps & choose prob 
for _ in range(sims):
    w = []
    for i in range(days):
        lam = np.random.choice([5000, 15000], p=[0.6, 0.4], size=1)
        ____ = np.random.poisson(____)
        if steps > 10000: 
            prob = ____
        elif steps < 8000: 
            prob = ____
        else:
            prob = [0.5, 0.5]
        w.append(np.random.choice([1, -1], p=prob))
    outcomes.append(sum(w))

# Calculate fraction of outcomes where there was a weight loss
weight_loss_outcomes_frac = ____
print("Probability of Weight Loss = {}".format(____))
Редактировать и запускать код