5

我想使用 R 中的 lavaan 计算潜在变量和观察变量之间的相关性。

这是我正在尝试做的一个简单示例。我们有一些数据和一个熔岩模型。

data(bfi)
names(bfi) <- tolower(names(bfi))
mod <- "
 agree =~ a1 + a2 + a3 + a4 + a5
 consc =~ c1 + c2 + c3 + c4 + c5
 age ~~ agree 
 age ~~ consc
"
lavaan::cfa(mod, bfi)

agree是一个具有 5 个指标的潜变量。年龄是一个观察变量,我想得到观察变量age和潜在变量之间的相关性agree。在 lavaan 中指定协方差的一般方法是~~在变量之间放入。但是,当观察到其中一个变量时,这似乎不起作用。

当我运行上述内容时,我收到以下错误:

Error in lav_model(lavpartable = lavpartable, representation = lavoptions$representation,  : 
  lavaan ERROR: parameter is not defined: agree ~~ age

在其他 SEM 软件中,例如 Amos,您只需在潜在变量和观察变量之间画一个双箭头。

你如何在 lavaan 中包含潜在变量和观察变量之间的相关性?

4

2 回答 2

9

一种似乎有效的解决方法是诱使 lavaan 认为观察到的变量是一个因素:

data(bfi)
names(bfi) <- tolower(names(bfi))
mod <- "
 agree =~ a1 + a2 + a3 + a4 + a5
 consc =~ c1 + c2 + c3 + c4 + c5
 agefac =~ age
 agefac ~~ agree
 agefac ~~ consc
"
lavaan::cfa(mod, bfi)

即,agefac 是年龄的潜在版本,但因为年龄是唯一的指标,并且该指标的系数被限制为 1,所以它与观察到的年龄变量相同。然后,您可以使用此准潜在变量与实际潜在变量相关联。

于 2016-07-25T05:24:56.607 回答
1

如果模型不会改变,您可以在潜在变量上回归观察到的变量。得到的标准化回归系数将等同于@Jeromy 所描述的潜在和“准潜在”之间的相关性。例如:

mod <- "
  agree =~ a1 + a2 + a3 + a4 + a5
  age ~ agree  # regression instead of correlation
"
lavaan::cfa(mod, bfi) %>% summary(standardized = TRUE)

无论您运行此模型还是@Jeromy 描述的模型, ageon的标准化回归系数都是相同的。agree但是请注意,未标准化的系数不会相同。

于 2016-07-25T06:05:38.400 回答