r - R调查后分层:与调查功能作斗争
问题描述
我是新来的,也是 R 的新手。我想知道我是否正确使用了 R 调查包来发布我的数据。下面你可以看到我的数据框(df)的数据结构。
utype | 性别 | 年龄 | 注册时间 | 金融 | 斯费尔德 | 索引 |
---|---|---|---|---|---|---|
优先 | 女性 | 23 | 雅 | s | 精氨酸 | 5 |
站长 | 男性 | 23 | 内因 | F | 精氨酸 | -7 |
站长 | 女性 | 21 | 雅 | 精氨酸 | 11 | |
优先 | 男性 | 28 | 雅 | 吨 | 精氨酸 | 1 |
我已经对“性别”变量的女性和“utype”变量的学生进行了过度采样,现在想要调整人口中的分布。我的 n=383 被过采样到 n = 477 我的 n=383 样本的预期分布是:
utype | 男性 | 女性 | 和 |
---|---|---|---|
优先 | 54 | 68 | 122 |
站长 | 128 | 133 | 261 |
和 | 187 | 196 | 383 |
design <- svydesign(id = ~utype+gender, data = df)
警告消息: 在 svydesign.default(id = ~utype + gender, data = df) 中:没有提供权重或概率,假设概率相等
pop.types <- data.frame(utype=c("sta","pri"), Freq=c(261,122))
designp <- postStratify(design, ~utype, pop.types)
postStratify(design, ~utype, pop.types)
svymean(~sindex, design)
意思| 东南
指数 0.48008 | 0.0192
svymean(~sindex, designp)
平均值 | 东南
指数 0.47692 | 0
我现在的问题是下面的代码是否正确,以及如何在我的代码中对变量 utype 和性别进行 postStratify,或者我是否必须运行 postStratify 命令两次。我特别担心我的加权样本中的标准误差为零并且由于警告消息。频率值是否适合我在这里尝试做的事情?
我一直试图弄清楚的最后一件事是如何获得“sindex”的 svymean、svyhist 或 svyboxplot 函数,但仅适用于 utype == pri 的观察,因此基本上是按组进行的。这都应该应用于加权 sindex 值。
我希望我遵守所有规则。提前谢谢了!
解决方案
您不想进行两次后期分层(这会给您带来麻烦)。您想使用一个后层变量进行一次分层,该变量是您的两个变量性别的组合,如您的 2x2 表中。那是,
designp <- update(designp, combined_var = interaction(gender,utype))
您现在为这个新变量的四个级别中的每一个指定一个pop.types=
具有所需频率的参数。
仅使用您列出的四个观察值,您最终会得到零标准误差,因为在任何后期层中都没有任何变化。
推荐阅读
- vue.js - 如何使用 vue js 在 tinymce 编辑器中插入内容?
- ios - 动画第一次工作,但后来
- javascript - 根据选项菜单 1 或 2 中的选择隐藏或显示选项菜单
- powerbi - 在 Power BI 中在线发布的权限
- python - 多处理未运行
- javascript - 在 JavaScript 中根据我的生日获取 REAL_AGE
- apache - ASP.NET Core - Kestrel 在特定设备上的 Apache 反向代理后面找不到静态文件
- python - 创建一个列,其值取决于其他列和创建的列以前的值
- git - 不小心将一个大目录推送到我的 git 存储库
- multithreading - QT 插槽忽略 while 循环