我正在尝试使用潜在变量的反射和形成规范来构建基于协方差的结构方程模型(SEM)。我使用包中的sem
函数lavaan
进行估计(R 版本 3.1.3,lavaan 版本 0.5-18)。但是估计结果总是为零,这是不合理的。
lavaan 模型语法=~
用于潜在变量的反射规范、潜在变量<~
的形成性规范和~
回归 ( http://www.inside-r.org/packages/cran/lavaan/docs/model.syntax )。这是一个只有反射规范的简单工作示例(它是http://lavaan.ugent.be/tutorial/sem.html和 by提供的示例的简化版本example(sem)
)
library(lavaan)
model <- '
# latent variable definitions
ind60 =~ x1 + x2
dem60 =~ y1 + y2
# regressions
dem60 ~ ind60
'
summary(sem(model, data=PoliticalDemocracy))
现在假设基于先前的理论我会知道 dem60 是由 y1 和 y2 组成的形成结构。因此,我将规范从 更改=~
为<~
并获得以下代码
library(lavaan)
model <- '
# latent variable definitions
ind60 =~ x1 + x2
dem60 <~ y1 + y2
# regressions
dem60 ~ ind60
'
summary(sem(model, data=PoliticalDemocracy))
y1 和 y2 的估计结果都为零。类似地,ind60 对 dem60 的回归效应结果为零。我需要改变什么才能获得有意义的结果?
一些网站和博客建议进行以下修改:
- 修复形成性结构中的一个参数,即
dem60 <~ 1*y1 + y2
. - 允许清单指标的协方差,即
y1 ~~ y2
。 - 修正形成性结构的方差,即
dem60 ~~ 1
。 - 释放形成性结构的方差,即
dem60 ~~ NA*dem60
。
这些都不起作用。再次:我需要改变什么才能获得有意义的结果?