为 R 中总体百分比的标准误差创建一个函数

Create a function for standard error of a population percentage in R

我希望在 R 中创建一个公式,我可以用它来计算各种人口因素的人口百分比的标准误差估计值。我的样本中有 1,045 人。我的数据框称为 NHIS1,例如,我想计算白人或西班牙裔人口比例的标准误差。我为 WHITE 和 HISP 设置的变量是带有 0 或 1 指示符的二进制变量。我用这段代码计算了人口百分比:

#sum(NHIS1$WHITE)=637,nrow(NHIS1)=1045, and sum(NHIS1$HISP)=408 (sum(NHIS1$WHITE)/nrow(NHIS1))*100, (sum(NHIS1$HISP)/nrow(NHIS1))*100

我认为我的公式设置可能类似于下面的内容,但我不确定是否有更好的方法来设置这一切,这样 R 就可以参考上面的这些人口比例,而无需我手动插入它。

perc_SE=function(p){sqrt((p*(1–p))/1045)}

谢谢!

您可以尝试使用每列的 prop.test 或 table,这会为您提供比例和 95% 的置信区间。只需将这些乘以 100 即可得到百分比:

prop.test(table(NIHS$WHITE))
#> 
#>  1-sample proportions test with continuity correction
#> 
#> data:  table(NIHS$WHITE), null probability 0.5
#> X-squared = 3.6431, df = 1, p-value = 0.0563
#> alternative hypothesis: true p is not equal to 0.5
#> 95 percent confidence interval:
#>  0.4993011 0.5533346
#> sample estimates:
#>         p 
#> 0.5263941 

如果你想要一个简单的函数来获取百分比,你可以这样做:

proportions <- function(x)
{
 a <- prop.test(table(x))
 data.frame(Proportion = 100 * a$estimate, 
            Lower_CI = 100 * a$conf.int[1], 
            Upper_CI = 100 * a$conf.int[2])
}

所以现在你可以这样做:

proportions(NIHS$WHITE)
#>   Proportion Lower_CI Upper_CI
#> p   52.63941 49.93011 55.33346