如何在R中使用样本权重

时间:2014-05-25 15:13:11

标签: r sem r-lavaan

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

我的数据集中已经提供的采样权重。然后我创建了一个变量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编写模型的任何建议?非常感谢!

1 个答案:

答案 0 :(得分:0)

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

手动转换它
r$wreg <- as.numeric(r$wreg)

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