描述性统计量
2.1 均值和平均值
均值的定义
含 个值的样本 ,均值 等于总和除以值的数量
「均值」与「平均值」的区别
- 样本的均值是按上述公式算出的一个汇总统计量
- 平均值是若干种可用于描述样本的典型值或集中趋势(central tendency)的汇总统计量之一
- 苹果的例子:6 个苹果总重 3 磅,每个大约半磅 —— 均值很好地描述了这组数据
南瓜的反例
- 3 个装饰南瓜各 1 磅、2 个制饼南瓜各 3 磅、1 个大西洋巨型南瓜 591 磅
- 均值被巨型南瓜拽到 119.8 磅,但**「典型」的南瓜并不存在**
- 「我种的南瓜的平均重量是 100 磅」这种说法至少是一种误导
2.2 方差
方差描述分散情况,均值描述集中趋势
叫离均差(deviation from the mean),方差是离均差的方均值,这也解释了为什么用 记
方差的平方根 叫标准差
方差本身不好解释,因为单位很奇怪 —— 磅的平方;标准差单位明确,还是磅
注意:这里除数是 。若除以 ,那是「样本方差」,用于通过样本估计总体的方差,第 8 章会再讲
2.3 分布
「汇总统计量简单明了,但风险也大,因为它们很有可能会掩盖数据的真相」
另一种方法是看分布(distribution),它描述各个值出现的频繁程度
最常用的表示方法是直方图(histogram)
- 频数:数据集中一个值出现的次数
- 概率 = 频数 ÷ 样本数量
Python 里算频数最简单的是字典
hist = {}
for x in t:
hist[x] = hist.get(x, 0) + 1归一化(normalization):把频数转成概率
n = float(len(t))
pmf = {}
for x, freq in hist.items():
pmf[x] = freq / n归一化后的直方图叫 PMF(Probability Mass Function,概率质量函数),是值到其概率的映射
把 Python 的字典称为「函数」可能让读者困惑,但数学上函数就是一组值到另一组值的映射,字典本身也是「映射」
2.8 异常值
- 异常值 = 远离集中趋势的值
- 可能来自数据采集和处理过程的错误,也可能是罕见的正确结果
- 活婴怀孕周期的最低十个值:
{0, 4, 9, 13, 17, 17, 18, 19, 20, 21}- 低于 20 周的值肯定是错误的
- 只有高于 30 周的值正确的可能性才比较大
- 介于两者之间的值就很难解释了
- 最高的几个值:43 周 148 次、44 周 46 次、45 周 10 次、46 周 1 次、47 周 1 次、48 周 7 次、50 周 2 次
- 一种处理方法是对一定比例的最高和最低值修剪(trim)
2.9 其他可视化方法
- 直方图和 PMF 在探索性数据分析中很有用
- NSFG 数据中明显的分布差异出现在众数附近,所以有必要放大这一部分
- 图 2-3 是 PMF 在 35-45 周间的差异,乘以 100 表示差异百分比
- 趋势很清晰:第一胎婴儿较少在 39 周出生,通常是在 41 周和 42 周出生
2.10 相对风险
- 分组区间(bin)
- 提前出生:第 37 周或更早
- 准时出生:第 38 到 40 周
- 延后出生:第 41 周或更晚
- 相对风险 = 两个概率的比值
- 第一胎提前出生的概率是 18.2%
- 非第一胎婴儿提前出生的概率是 16.8%
- 相对风险 = 1.08,意味着第一胎比其他几胎更早出生的可能性有 8%
- 分组区间(bin)
2.11 条件概率
- 场景:某人怀孕,现在是第 39 周的开始,宝宝这一周出生的概率是多少?如果是第一胎呢?
- 条件概率就是依赖于某个条件的概率 —— 条件是「已知宝宝没有在前 38 周出生」
- 书里给的方法(模拟法)
- 根据 PMF 生成一个 1000 名孕妇的模拟人群,每个周数 的孕妇人数为
- 删除所有怀孕周数不足 39 的孕妇
- 计算余下怀孕周期的 PMF,这就是一个条件 PMF
- 计算 时条件 PMF 的值
- 更简单的替代方案:将小于 39 的值从分布中删除,然后重新归一化
2.12 汇报结果
- 不同的人需要不同的答案
- 科学家对实际效果更感兴趣,无论多小
- 医生只关注临床上有重要意义的结果,即会影响治疗决策的结果
- 孕妇更关心与自身密切相关的东西,比如条件概率
- 汇报方式取决于具体目的:要证明显著性就选汇总统计量(如相对风险),要说服患者就选能反映特定情况的统计量
- 不同的人需要不同的答案
2.13 术语表
- 区间(bin):将相近数值进行分组的范围
- 集中趋势(central tendency):样本或总体的一种特征,直观上就是最能代表平均水平的值
- 临床上有重要意义(clinically significant):分组间差异等跟实践操作有关的结果
- 条件概率(conditional probability):某些条件成立的情况下计算出的概率
- 分布(distribution):对样本中的各个值及其频数或概率的总结
用 Python 验证
直方图、归一化、相对风险、条件概率:
def MakeHistFromList(xs): |
输出:
相对风险(提前 = 37 周及以前) |
书里的真实数字(18.2% / 16.8% → 相对风险 1.08)算出来确实是「高 8%」。
这章真正的方法论转变
三个层次,缺一不可:
| 层次 | 工具 | 回答什么 |
|---|---|---|
| 汇总 | 均值、方差、中位数 | 大概在什么位置、有多分散 |
| 分布 | 直方图、PMF | 各个值分别出现多少次 |
| 对比 | 相对风险 | 两组之间的差距有多大 |
而第 4 层「这个差距是真的吗」要等到第 7 章的假设检验。
作者在 2.12 节说的那句话是这个方法论的落点:「假设这些结果都是真实的(但要记住,这只是一个假设),我们怎么汇报这些结果?」
探索性数据分析到这一步为止 —— 你已经看到了效应,但还没证明它不是随机波动造成的。这就是为什么书里把「假设检验」放在统计流程的最后一步,而不是开头。