当前位置: 首页 > news >正文

整群随机抽样

整群随机抽样是将总体划分为若干个互不重叠的“群”,然后随机抽取其中的若干个群,对抽中的群里的所有单位进行调查。

它的典型应用场景是:

  • 城市居民健康调查:将城市划分为若干个社区(群),随机抽取几个社区,然后对这几个社区的所有居民进行健康调查。
  • 全国多所学校的学生视力普查:将全国的学校作为“群”,随机抽取几十所学校,然后对这些学校的所有学生进行视力检查。

下面是Python实现的一个整群随机抽样示例。

# 创建模拟的群组数据:假设客户按地区分组 regions = ['北京', '上海', '广州', '深圳', '杭州', '成都', '武汉', '西安'] customer_data['region'] = np.random.choice(regions, len(customer_data)) print("各地区客户数量:") print(customer_data['region'].value_counts()) # 整群随机抽样:随机选择3个地区,调查这些地区的所有客户 selected_regions = np.random.choice(regions, size=3, replace=False) cluster_sample = customer_data[customer_data['region'].isin(selected_regions)] print(f"\n抽中的地区:{selected_regions}") print("整群随机抽样结果:") print(f"样本量:{len(cluster_sample)}") print(f"样本平均收入:{cluster_sample['income'].mean():.2f}") print(f"总体平均收入:{customer_data['income'].mean():.2f}") # 运行结果: ''' 各地区客户数量: region 武汉 141 广州 133 成都 132 杭州 124 北京 120 上海 118 深圳 116 西安 116 Name: count, dtype: int64 抽中的地区:['杭州' '深圳' '武汉'] 整群随机抽样结果: 样本量:381 样本平均收入:50319.75 总体平均收入:50863.12 '''

整群随机抽样得到的平均收入与总体数据的比较如下图:它们的值非常接近。

4. 随机抽样综合比较

为了更直观地感受不同抽样方法带来的差异,我们从同一个数据集中,使用不同的方法抽取大约相同规模的样本,来比较各种抽样方法。

# 创建更复杂的数据集来演示各种抽样方法 np.random.seed(42) company_data = pd.DataFrame( { "employee_id": range(1, 1001), "department": np.random.choice( ["技术", "销售", "市场", "人事", "财务"], 1000, p=[0.3, 0.25, 0.2, 0.15, 0.1], ), "salary": np.random.normal(80000, 20000, 1000).astype(int), "experience": np.random.exponential(5, 1000).astype(int) + 1, } ) # 修正可能的负工资 company_data["salary"] = company_data["salary"].clip(lower=30000) print("公司员工数据概况:") print(f"总员工数:{len(company_data)}") print(f"平均工资:{company_data['salary'].mean():.2f}") print("\n各部门人数:") print(company_data["department"].value_counts()) # 应用不同抽样方法 samples = { "简单随机抽样": company_data.sample(n=100, random_state=42), "分层随机抽样": company_data.groupby("department") .apply(lambda x: x.sample(frac=0.1, random_state=42), include_groups=False) .reset_index(), "系统随机抽样": systematic_sampling(company_data, 10), "整群随机抽样": company_data[ company_data["department"].isin( np.random.choice(company_data["department"].unique(), 2, replace=False) ) ], } # 比较结果 comparison = pd.DataFrame( { "方法": ["总体"] + list(samples.keys()), "样本量": [len(company_data)] + [len(sample) for sample in samples.values()], "平均工资": [company_data["salary"].mean()] + [sample["salary"].mean() for sample in samples.values()], "工资误差": [0] + [ abs(sample["salary"].mean() - company_data["salary"].mean()) for sample in samples.values() ], } ) print("\n各种抽样方法比较:") print(comparison) # 运行结果: ''' 公司员工数据概况: 总员工数:1000 平均工资:82015.16 各部门人数: department 技术 319 销售 240 市场 198 人事 143 财务 100 Name: count, dtype: int64 '''

http://www.jsqmd.com/news/1099634/

相关文章:

  • 可视化学科发展脉络浅梳(学习笔记)
  • 京东开源实时视频视觉语言交互模型:全栈方案解析与落地实践
  • sdfsfds
  • 2026 年本地部署的 AI 数字人直播系统到底有多省钱?
  • 开源模型技术总结-3————FireRed(小红书)开源模型
  • 北京心商科技发布GEO优化产品 助力企业合规营销
  • 从Prompt到Loop,拆解Agent 进化的底层逻辑
  • Agent推理快到API成瓶颈:Responses API WebSocket如何提速40%
  • 51单片机数码管电压表
  • 大模型评测与AI产品质量保障:第3篇 用 Python 调用 模型API
  • OpenAI SDK 环境搭建教程
  • Xshell+Xftp使用教程
  • 主流三维光学轮廓仪国产品牌与技术解析
  • 操作简便吗?8款AI写作辅助网站综合榜,毕业答辩稳了!
  • TactiX实测:星际2战术训练神器,支持离线REP解析与MOD扩展
  • 2026 在上海如何找一家专业又靠谱的小程序定制开发公司
  • 告别命令行!用JGit在Java项目里优雅地操作Git(附完整API使用示例)
  • SpringBoot(springboot的类加载和传统的双亲委派有什么区别、如何按顺序实例化Bean)
  • 】[SampleVirtualTexture节点]原理解析与实际应用
  • 只看光明的一面:当机器学习失去“反面教材“时 | Positive-Only Learning深度解读
  • MySQL8-Windows安装教程
  • 【第 8 篇:数据接口管理——从模拟到真实与企业级接口治理】
  • 2026最新年版Java八股文,7天背完通过面试
  • 2026亚太EMBA QS排名客观测评与科学择校指南
  • 机器人电源方案评审清单:别只看电压电流,还要看这 6 件事
  • 3步掌握Windows安卓应用安装:APK Installer跨平台革命
  • Three.js 轨道控制器教程
  • 量子态制备的哈密顿量框架与硬件优化实践
  • MH Markets将亮相2026香港Wiki Finance Expo,深化全球金融行业交流
  • 单链表反转:Python/Java/C++三解