Menu
CoddyTech

回顾:对一个城镇进行民意调查

本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 23 课,共 64 课。

challenge icon

挑战

中等

该对这个城镇的居民进行调查,看看他们是否支持新建公园了。民意调查会报告支持者的比例,并给出一个误差范围:调查结果的 .std() 乘以 2,再除以样本量的平方根。误差范围能包含真实比例吗?下面是另一个城镇的 25 次民意调查:

25 次民意调查以横条显示,每条表示一个比例及其误差范围。虚线标出真实支持率 0.52,点线标出 0.5 的界线。24 条横条覆盖了真实支持率;未覆盖的那条是第 5 次调查,显示为橙色,并标注为第 5 次调查未覆盖

voters 中,支持者对应 1,其余人对应 0;程序会读取调查样本量。

  1. 打印真实支持率。
  2. 对不同的选民进行 400 次调查;打印第一次调查的比例和误差范围。
  3. 打印有多少个误差范围包含真实支持率,以及有多少次调查结果为 0.5 或更低。

比例和误差范围都保留 3 位小数。对于另一个城镇,样本量为 200 时:

True support: 0.52
First poll: 0.525, give or take 0.071
Margins that caught the truth: 384 of 400
Polls calling it wrong: 127

亲手试试

import numpy as np

size = int(input())

# 不要修改下面的代码:支持建公园的选民对应 1,其他选民对应 0
voters = np.concatenate([np.ones(10800), np.zeros(9200)])
rng = np.random.default_rng(23)

# 在下面编写你的代码

机器学习统计学中的所有课

自己练习: Python 在线编译器