当前位置: 首页 > 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.gsyq.cn/news/1611597.html

相关文章:

  • 2026 年本地部署的 AI 数字人直播系统到底有多省钱?
  • 从Prompt到Loop,拆解Agent 进化的底层逻辑
  • 北京心商科技发布GEO优化产品 助力企业合规营销
  • 开源模型技术总结-3————FireRed(小红书)开源模型
  • 主流三维光学轮廓仪国产品牌与技术解析
  • 】[SampleVirtualTexture节点]原理解析与实际应用
  • 操作简便吗?8款AI写作辅助网站综合榜,毕业答辩稳了!
  • 2026 在上海如何找一家专业又靠谱的小程序定制开发公司
  • 告别命令行!用JGit在Java项目里优雅地操作Git(附完整API使用示例)
  • 2026最新年版Java八股文,7天背完通过面试
  • 机器人电源方案评审清单:别只看电压电流,还要看这 6 件事
  • 2026年本地部署的AI数字人直播系统 Top5 实测
  • ArkUI 底部操作栏及卡片整体美化布局开发
  • 从“工作记忆”到“资源博弈”:AI Agent 的 Context Window 为何是最核心的工程约束?
  • 垃圾自动分类技术:从AI识别到机械分拣的工程实践与选型指南
  • 20260630 - 看门狗
  • Go语言面试遇到,面试官问什么是协程、什么是协程泄漏和数组跟切片是用该如何回答
  • Agent Skill 学习笔记
  • 基于.NET AgentFramework开发OpenClaw智能体框架
  • GESP2026年6月认证C++三级( 第三部分编程题(1、加密))精讲
  • 深入浅出理解卷积的概念
  • 告别锁竞争:用C++11的concurrentqueue重构你的生产者消费者模型(附完整代码)
  • 一天一个Python库:tomlkit - 轻松解析和操作TOML配置
  • Python基础:三元表达式极简写法与高阶嵌套、场景避坑指南
  • 基于51/STM32单片机分贝仪检测 噪音等级声音采集(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)
  • 终极指南:如何安全备份微信聊天记录的技术方案解析
  • AKShare:金融数据接口的架构哲学与实践反思
  • SPT-AKI Profile Editor:逃离塔科夫离线服务器存档修改终极指南
  • 【VMware网络专家20年压箱底笔记】:多虚拟机通信必须绕开的4个致命陷阱(第3个连vCenter日志都不报错)
  • SSLsplit与OpenSSL深度集成:全面支持RSA、DSA、ECDSA密钥实战指南