【问题标题】:How to use sample weights in R如何在 R 中使用样本权重
【发布时间】:2014-05-25 15:13:10
【问题描述】:

我计划对道德问题的观点进行多组验证性因素分析。我将比较比利时瓦隆和佛兰德地区的人。我的两个样本需要加权,以便在年龄、性别、教育和政党选择方面代表他们的人口。

我的数据集中已提供的采样权重。然后,我创建了一个变量 wreg,结合了来自瓦隆和佛兰德斯的受访者的权重。

我是 R 新手,阅读有关 lavaan.surveysvydesign 的文档以了解代码。但是,我还没有成功地写出正确的东西。我总是收到有关重量部分的错误消息。显然程序无法正确读取采样权重变量。

这是我使用的代码:

library(lavaan.survey)

f <- "C:/.../bges07_small.csv"
s <- read.csv(f,sep=";")

r <- s[is.na(s$flawal),]

rDesign <- svydesign(ids=~1, data=r, weights=~wreg)

model.1 <- 'ethic =~ q96_1+ q96_2 +q96_3'

fit <- cfa(model.1, data=r,ordered=c("q96_1","q96_2","q96_3"))

summary(fit, fit.measures=TRUE, modindices=FALSE,standardized=FALSE)

这是我收到的错误消息:

Erreur dans 1/as.matrix(weights) : 
  argument non numérique pour un opérateur binaire

关于如何使用 R 编写模型有什么建议吗?非常感谢!

【问题讨论】:

  • names(s) 返回什么?还有summary(s$wreg)?
  • @MrFlick: names(r) 像往常一样报告我的数据集中所有变量的列表。 summary(r$wreg) 不报告通常的汇总统计信息。反过来,我得到了一长串数字列表,我向您展示了一个提取物:摘要(R $ WREG)1,331392514077839,367815228990771,83180 0 0 0,828950 0 0 0,828950 0 0 0,828950 0 0 0,828950 0 0 0,831003396162137,831003396162137,831003396162137,83100339616213711319191919137115,831003396976998913913913913199990791J13171199961J89898950 0 0 0
  • @Lucie 我知道names() 命令是如何工作的。我希望你能编辑你的问题以发布确切的结果。这对调试很有用。

标签: r r-lavaan structural-equation-model


【解决方案1】:

summary(r$wreg) 的结果来看,您的权重列似乎是一个因素,而不是一个数字向量。确保您已正确读取数据,并且该列不包含任何类似字符的值。你可以手动转换它

r$wreg <- as.numeric(r$wreg)

在运行模型之前。此外,这些看起来像非常大的重量值。你确定它们是正确的吗?

【讨论】:

    猜你喜欢
    • 2014-08-28
    • 2020-09-09
    • 2021-06-22
    • 2015-08-11
    • 2017-10-14
    • 2019-12-24
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    相关资源
    最近更新 更多