Mục tiêu thể hình
Hãy mô phỏng cách mức độ vận động ảnh hưởng đến việc giảm cân bằng các thiết bị theo dõi sức khỏe hiện đại. Vào những ngày bạn đến phòng gym, bạn đi trung bình khoảng 15k bước, và khoảng 5k bước vào những ngày còn lại. Bạn đến gym 40% thời gian. Hãy mô hình hóa số bước trong một ngày như một biến ngẫu nhiên Poisson với trung bình \(\lambda\) phụ thuộc vào việc bạn có đến gym hay không.
Để đơn giản, giả sử bạn có 80% khả năng giảm 1lb và 20% khả năng tăng 1lb khi đi hơn 10k bước. Xác suất sẽ đảo ngược khi bạn đi ít hơn 8k bước. Còn lại, khả năng tăng hoặc giảm 1lb là như nhau. Với tất cả thông tin này, hãy tìm xác suất giảm cân trong một tháng.
Bài tập này là một phần của khóa học
Mô phỏng Thống kê bằng Python
Hướng dẫn bài tập
- Mô phỏng
stepsnhư một biến ngẫu nhiên Poisson cho một ngày dựa trên giá trịlam. - Gán
problà[0.2, 0.8]nếusteps > 10000hoặc[0.8, 0.2]nếusteps < 8000. Cộng dồn toàn bộ cân nặng tăng hoặc giảm trong một tháng được lưu trongw. - Tính và in ra tỷ lệ mô phỏng mà tổng cân nặng trong một tháng trong
outcomesnhỏ hơn 0. Lưu làweight_loss_outcomes_fracvà dùng giá trị đó để in kết quả của bạn.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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(____))