如何解决R中的调查软件包:如何设置fpc参数有限总体校正
我已使用与大小成正比的概率(PPS)计划从采样帧中采样了一些数据,因此我在两个变量:6
和gender
的组合下对pre
层次进行了采样比例:
pre
gender High Low Medium
F 0.155 0.155 0.195
M 0.155 0.155 0.185
现在,我想使用R包"survey"中的svydesign
指定采样数据的设计。我想知道如何定义fpc
(有限人口校正)参数?
文档说:
对于不进行替换的PPS采样,必须使用
fpc
参数指定每个采样阶段的概率,并且不应给出总权重参数。
library(survey)
out <- read.csv('https://raw.githubusercontent.com/rnorouzian/d/master/out.csv')
dstrat <- svydesign(id=~1,strata=~gender+pre,data=out,pps = "brewer",fpc = ????)
解决方法
如果要添加比例列,则将“性别”,“ pre”分组,然后将计数除以计数的sum
和left_join
out1 <- out %>%
group_by(gender,pre) %>%
summarise(n = n(),.groups = 'drop') %>%
mutate(fpc = n/sum(n)) %>%
right_join(out)
或使用adorn_percentages
中的janitor
library(janitor)
library(tidyr)
out1 <- out %>%
tabyl(gender,pre) %>%
adorn_percentages(denominator = "all") %>%
pivot_longer(cols = -gender,names_to = 'pre',values_to = 'fpc') %>%
right_join(out)
如果我们需要一个功能
f1 <- function(dat,grp_cols) {
dat %>%
group_by(across(all_of(grp_cols))) %>%
summarise(n = n(),.groups = 'drop') %>%
mutate(fpc = n/sum(n)) %>%
right_join(dat)
}
f1(out,c("gender","pre"))
#Joining,by = c("gender","pre")
# A tibble: 200 x 11
# gender pre n fpc no. fake.name sector pretest state email phone
# <chr> <chr> <int> <dbl> <int> <chr> <chr> <int> <chr> <chr> <chr>
# 1 F High 31 0.155 1 Pont Private 1352 NY Pont@...com xxx-xx-6216
# 2 F High 31 0.155 2 Street NGO 1438 CA Street@...com xxx-xx-6405
# 3 F High 31 0.155 3 Galvan Private 1389 NY Galvan@...com xxx-xx-9195
# 4 F High 31 0.155 4 Gorman NGO 1375 CA Gorman@...com xxx-xx-1845
# 5 F High 31 0.155 5 Jacinto Private 1386 CA Jacinto@...com xxx-xx-6237
# 6 F High 31 0.155 6 Shah Public 1384 CA Shah@...com xxx-xx-5723
# 7 F High 31 0.155 7 Randon Private 1360 TX Randon@...com xxx-xx-7542
# 8 F High 31 0.155 8 Koucherik NGO 1439 NY Koucherik@...com xxx-xx-9137
# 9 F High 31 0.155 9 Waters Industry 1414 TX Waters@...com xxx-xx-7560
#10 F High 31 0.155 10 David Industry 1396 CA David@...com xxx-xx-6498
# … with 190 more rows
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。