有限总体分层抽样的误差投影:Python/R工具问询
分层抽样误差投影的Python & R工具方案
Python 实现工具
- scipy.stats(内置科学计算库):利用其
hypergeom类的interval()方法,直接计算超几何分布下的总体误差数置信区间,自动处理边界情况(不会出现超出0或总体规模的结果)。
示例代码:from scipy.stats import hypergeom # 定义各层参数 strata_params = [ {"name": "A", "N": 100, "n": 20, "x": 1}, {"name": "B", "N": 100, "n": 20, "x": 3}, {"name": "C", "N": 1000, "n": 30, "x": 4} ] confidence_level = 0.95 # 批量计算各层上下限 for param in strata_params: lower, upper = hypergeom.interval(confidence_level, param["N"], param["n"], param["x"]) print(f"{param['name']}层总体误差数上下限: {round(lower)} - {round(upper)}")
R 实现工具
- epiR包:专门用于流行病学统计的第三方包,其中
epi.hyper()函数可直接输入分层抽样参数,输出总体误差数的置信区间,完美适配样本量小、误差率为0%/100%的边界场景。
示例代码:# 安装并加载包 install.packages("epiR") library(epiR) # 定义各层参数 strata_params <- list( A = list(obs = 1, n = 20, N = 100), B = list(obs = 3, n = 20, N = 100), C = list(obs = 4, n = 30, N = 1000) ) conf_level <- 0.95 # 批量计算各层上下限 for (name in names(strata_params)) { res <- epi.hyper(obs = strata_params[[name]]$obs, n = strata_params[[name]]$n, N = strata_params[[name]]$N, conf.level = conf_level) cat(paste0(name, "层总体误差数上下限: ", res$lower, " - ", res$upper, "\n")) } - 若不想安装第三方包,也可使用R内置
stats包的qhyper()函数手动计算置信区间,但步骤相对繁琐。
内容的提问来源于stack exchange,提问作者Omi Slash
相关产品推荐
相关产品推荐

