피트니스 목표
현대 피트니스 트래커를 사용해 활동 수준이 체중 감량에 어떤 영향을 주는지 모델링해 봅시다. 헬스장에 가는 날에는 평균 약 1만 5천 보, 가지 않는 날에는 약 5천 보를 걷는다고 가정해요. 헬스장에 갈 확률은 40%입니다. 하루 걸음 수는 헬스장에 갔는지 여부에 따라 평균 $\lambda$가 달라지는 Poisson 확률변수로 모델링하겠습니다.
단순화를 위해, 1만 보를 초과하면 1lb를 감량할 확률이 80%, 1lb를 증량할 확률이 20%라고 합시다. 8천 보 미만이면 이 확률이 반대로 바뀝니다. 그 외의 경우에는 1lb 감량과 증량이 반반의 확률입니다. 이 정보를 바탕으로, 한 달 동안 체중이 감소할 확률을 구하세요.
이 연습은 강의의 일부입니다
Python으로 하는 통계 시뮬레이션
연습 안내
- 주어진
lam값에 따라 하루의steps를 Poisson 확률변수로 시뮬레이션하세요. steps > 10000이면prob을[0.2, 0.8]로,steps < 8000이면[0.8, 0.2]로 설정하세요. 한 달 동안의 감량/증량을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(____))