【发布时间】:2022-01-02 01:07:09
【问题描述】:
我正在使用 R 中的 t 检验来测试在使用 FGT 贫困衡量指标(我使用传送包中的 svyfgt 函数。我通过为每个调查设计创建向量来运行 t 检验,其中包括均值、标准差和样本量,因此,我需要获得 svyfgt 均值的标准差。
在调查包中,有一个 svysd 函数,用于在应用复杂调查设计时计算标准差。这个值与简单地将SE乘以sqrt(n)得到的值有很大的不同,如下图:
library(survey)
wel <- c(68008.19, 128504.61, 21347.69,
33272.95, 61828.96, 32764.44,
92545.62, 58431.89, 95596.82,
117734.27)
rmul <- c(16, 16, 16, 16, 16, 16, 16,
20, 20, 20)
splin <- c(23149.64, 23149.64, 23149.64, 23149.64, 23149.64,
21322.23, 21322.23, 21322.23, 21322.23, 21322.23)
survey.data <- data.frame(wel, rmul, splin)
survey_weighted <- svydesign(data = survey.data,
ids = ~wel,
weights = ~rmul,
nest = TRUE)
svymean(~wel, survey_weighted)
svysd(~wel, survey_weighted)
11498*sqrt(10)
在传送包中,没有等效的“svyfgtsd”函数,简单地将 SE 乘以 sqrt(n) 似乎会产生错误的答案(基于之前显示的 svysd 和该表达式之间的结果差异)。因此,我不确定如何获得 FGT_0_weighted 的标准偏差。是否有我不知道的功能,或者可能对我有帮助的统计概念?
library(convey)
fgtsurvey_weighted <- convey_prep(survey_weighted)
FGT_0_weighted <- svyfgt(~wel,
fgtsurvey_weighted,
g=0,
abs_thresh = survey.data$splin)
FGT_0_weighted
作为参考,我将像这样在 t-tests 中使用 sd 值(忽略 sd 值):
FGT_0_unweighted_vector <- c(rnorm(9710, mean = 0.28919, sd = sd_FGT_0))
FGT_0_cluster_vector <- c(rnorm(9710, mean = 0.33259, sd = sd_FGT_0_cluster))
t.test(FGT_0_cluster_vector, FGT_0_unweighted_vector, var.equal = FALSE)
【问题讨论】:
标签: r survey standard-deviation standard-error