整群抽样

使用 Python 分析调查数据

EbunOluwa Andrew

Data Scientist

什么是整群抽样?

  • 将总体划分为若干子群

    • 子群特征与总体相似
  • 总体 -> 群集

  • 不抽个体,随机选择整个子群

由人组成的饼图

使用 Python 分析调查数据

整群抽样的重要性

  • 并非总能从整个总体收集数据
  • 人数庞大时可降低误差

人口过多

使用 Python 分析调查数据

整群抽样的步骤

  • 第一步:将总体划分为群集
  • 第二步:随机选择这些群集

人群群集

使用 Python 分析调查数据

示例数据集

print(mh_survey)
| gender | sought_treatment | country_work             |
|--------|------------------|--------------------------|
| Male   |                0 | United Kingdom           |
| Male   |                1 | United States of America |
| Male   |                1 | United Kingdom           |
| Male   |                1 | United Kingdom           |
| Female |                1 | United States of America |
| Male   |                1 | United Kingdom           |
| Male   |                0 | United States of America |
...
使用 Python 分析调查数据

示例数据与图表

mh_survey.groupby('country_work')[
  'gender'].count()
groups = mh_survey.groupby(
  'country_work')['gender'].count(
).reset_index()
groups.columns=['country_work','count']

groups.plot.bar(x='country_work',
                y='count')

技术从业者工作国家的柱状图

1 _因空间限制,仅显示部分数据_
使用 Python 分析调查数据

选择群集

unique_countries = list(set(mh_survey.country_work))

random_clusters = np.random.choice(unique_countries, size = 10, replace = False)

print(random_clusters)
array(['Finland', 'Australia', 'Sweden', 'South Africa', 'Pakistan',
       'France', 'Ecuador', 'United Arab Emirates', 'United Kingdom',
       'Bangladesh'], dtype='<U24')
使用 Python 分析调查数据

创建整群样本

cluster_sample = mh_survey[mh_survey.country_work.isin(random_clusters)]
print(cluster_sample.head())
| gender | sought_treatment | US_state_live        |
|--------|------------------|----------------------|
| Male   |                1 |             Pakistan |
| Male   |                1 |             Pakistan |
| Male   |                1 | United Arab Emirates |
| Male   |                1 |             Pakistan |
| Female |                0 |           Bangladesh |
使用 Python 分析调查数据

绘制整群样本

treatment_pie = cluster_sample.sought_treatment.value_counts(normalize = True)
treatment_pie.plot.pie()

是否寻求治疗的饼图

使用 Python 分析调查数据

绘制整群样本

array(['Bangladesh', 'South Africa', 'Other', 'Norway', 'Poland',
       'Romania', 'New Zealand', 'France', 'United States of America',
       'Bulgaria'], dtype='<U24')

是否寻求治疗的饼图

使用 Python 分析调查数据

让我们来练习!

使用 Python 分析调查数据

Preparing Video For Download...