抽样与点估计

Python 抽样

James Chapman

Curriculum Manager, DataCamp

估计法国人口

法国地图。

人口普查会询问每个住户居住人数。

Python 抽样

法国人口很多

带有人物图标的法国地图。

人口普查成本很高!

Python 抽样

抽样住户

带有人物图标且部分高亮的法国地图。

询问少量住户更便宜,再用统计方法估计总体

使用总体的一个子集称为抽样

Python 抽样

总体 vs. 样本

总体是完整的数据集

  • 不一定指人群
  • 通常无法完全知道总体

 

样本是用于计算的数据子集

Python 抽样

咖啡评分数据集

total_cup_points variety country_of_origin aroma flavor aftertaste body balance
90.58 NA Ethiopia 8.67 8.83 8.67 8.50 8.42
89.92 Other Ethiopia 8.75 8.67 8.50 8.42 8.42
... ... ... ... ... ... ... ...
73.75 NA Vietnam 6.75 6.67 6.5 6.92 6.83

 

  • 每行表示1种咖啡
  • 共1338行
  • 在此将其视为总体
Python 抽样

总分 vs. 风味:总体

pts_vs_flavor_pop = coffee_ratings[["total_cup_points", "flavor"]]
      total_cup_points  flavor
0                90.58    8.83
1                89.92    8.67
2                89.75    8.50
3                89.00    8.58
4                88.83    8.50
...                ...     ...
1333             78.75    7.58
1334             78.08    7.67
1335             77.17    7.33
1336             75.08    6.83
1337             73.75    6.67

[1338 rows x 2 columns]
Python 抽样

总分 vs. 风味:10行样本

pts_vs_flavor_samp = pts_vs_flavor_pop.sample(n=10)
      total_cup_points  flavor
1088             80.33    7.17
1157             79.67    7.42
1267             76.17    7.33
506              83.00    7.67
659              82.50    7.42
817              81.92    7.50
1050             80.67    7.42
685              82.42    7.50
1027             80.92    7.25
62               85.58    8.17

[10 rows x 2 columns]
Python 抽样

Series 的 Python 抽样

  • pandas 的 DataFrame 和 Series 上用 .sample()
cup_points_samp = coffee_ratings['total_cup_points'].sample(n=10)
1088    80.33
1157    79.67
1267    76.17
...     ... 
685     82.42
1027    80.92
62      85.58
Name: total_cup_points, dtype: float64
Python 抽样

总体参数与点估计

总体参数是在总体数据集上计算的量

import numpy as np
np.mean(pts_vs_flavor_pop['total_cup_points'])
82.15120328849028

点估计(或样本统计量)是在样本数据集上计算的量

np.mean(cup_points_samp)
81.31800000000001
Python 抽样

用 pandas 做点估计

pts_vs_flavor_pop['flavor'].mean()
7.526046337817639
pts_vs_flavor_samp['flavor'].mean()
7.485000000000001
Python 抽样

让我们来练习!

Python 抽样

Preparing Video For Download...