【问题标题】:How to view weight assigned to each observation in survey package?如何查看分配给调查包中每个观测值的权重?
【发布时间】:2023-01-16 04:47:35
【问题描述】:

我正在尝试使用 survey 包为每个观察创建和查看权重。我有以下形式的数据(简化示例):

# Create data

set.seed(12345)
preYear = c(0:100)
preYear = sample(preYear, 100, replace = TRUE)

income = c(0:100000)
income = sample(income, 100, replace = TRUE)

gender = c("Male", "Female")
gender = sample(gender, 100, replace = TRUE)
gender = as.numeric(factor(gender))

ethnicity = c("White", "African_American", "Mixed_Ethnicity", "Other_Ethnicity")
ethnicity = sample(ethnicity, 100, replace = TRUE)
ethnicity = as.numeric(factor(ethnicity))

postYear = preYear + 10

data = cbind(preYear, income, gender, ethnicity, postYear)
data = as.data.frame(data)

使用我对性别的重视的调查包:

library(survey)
data.svy.unweighted <- svydesign(ids=~1, data=data)

#
gender.dist <- data.frame(gender = c("1", "2"),
                          Freq = nrow(data) * c(0.45, 0.55))

data.svy.rake <- rake(design = data.svy.unweighted,
                      sample.margins = list(~gender),
                      population.margins = list(gender.dist))

data.svy.rake

Independent Sampling design (with replacement)
rake(design = data.svy.unweighted, sample.margins = list(~gender), 
    population.margins = list(gender.dist))

但是,我不知道如何查看权重向量。理想情况下,我想要的是能够返回一个与data 相同的 data.table,但有一个名为 weight 的附加列,它对应于在对性别加权后分配给每个观察的权重。任何帮助,将不胜感激。

【问题讨论】:

  • 您好,您是在寻找运行str(data.svy.rake) 时打印到屏幕上的属性之一(或其逆属性)吗?

标签: r survey


【解决方案1】:

weights() 函数返回调查设计对象的权重。 model.frame() 函数返回变量,因此您可以将两者结合起来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 2019-02-06
    相关资源
    最近更新 更多