我正在尝试使用包lavaan为R进行潜在变量分析。但是,我收到以下错误消息:
警告讯息: 1:在lav_data_full中(data = data,group = group, cluster = cluster,:lavaan警告:一些观察到的差异是 (至少)比其他因素大1000倍;使用varTable(适合) 去弄清楚 2:在lav_model_vcov中(lavmodel = lavmodel, lavsamplestats = lavsamplestats,:lavaan警告:不能 计算标准错误! lavaan注意:这可能是一种症状 模型未确定。 3:在lav_object_post_check(对象)中:lavaan警告:有人估计 ov差异是负面的 4:在lav_object_post_check(对象)中:
lavaan警告:一些估计的lv差异为负
我的模型结构如下:
model <- "
# regressions
eigenvector.frug ~ Size + Morphology
# latent variables
Size =~ Mass + Forearm
Morphology =~ LMT + BUM
# covariances and variances
Mass ~~ Forearm
LMT ~~ BUM
Mass ~~ Mass
Forearm ~~ Forearm
LMT ~~ LMT
BUM ~~ BUM
"
我正在运行的代码是:
fit <- sem(model, data=data,
orthogonal=TRUE)
我得到以下摘要:
lavaan (0.5-23.1097) converged normally after 141 iterations
Number of observations 41
Estimator ML
Minimum Function Test Statistic 88.676
Degrees of freedom 2
P-value (Chi-square) 0.000
Parameter Estimates:
Information Expected
Standard Errors Standard
Latent Variables:
Estimate Std.Err z-value P(>|z|)
Size =~
Mass 1.000
Forearm 4.941 NA
Morphology =~
LMT 1.000
BUM 1.349 NA
Regressions:
Estimate Std.Err z-value P(>|z|)
eigenvector.frug ~
Size -0.000 NA
Morphology -2.774 NA
Covariances:
Estimate Std.Err z-value P(>|z|)
.Mass ~~
.Forearm 59.805 NA
.LMT ~~
.BUM 2.926 NA
Size ~~
Morphology 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.Mass 272.184 NA
.Forearm -518.752 NA
.LMT 3.283 NA
.BUM 5.871 NA
.eigenvectr.frg 0.344 NA
Size 26.894 NA
Morphology -0.038 NA
由于数据在不同的比例下变化,我尝试使用比例功能对所有变量进行标准化并再次运行模型。
data2 = scale(data)
然后我收到以下错误消息:
警告讯息: 在lav_model_vcov中(lavmodel = lavmodel,lavsamplestats = lavsamplestats,:lavaan警告:无法计算标准错误! lavaan注意:这可能是模型未被识别的症状。
以下摘要:
lavaan (0.5-23.1097) converged normally after 69 iterations
Number of observations 41
Estimator ML
Minimum Function Test Statistic 87.973
Degrees of freedom 2
P-value (Chi-square) 0.000
Parameter Estimates:
Information Expected
Standard Errors Standard
Latent Variables:
Estimate Std.Err z-value P(>|z|)
Size =~
Mass 1.000
Forearm 0.940 NA
Morphology =~
LMT 1.000
BUM 0.181 NA
Regressions:
Estimate Std.Err z-value P(>|z|)
eigenvector.frug ~
Size 0.536 NA
Morphology -0.042 NA
Covariances:
Estimate Std.Err z-value P(>|z|)
.Mass ~~
.Forearm 0.389 NA
.LMT ~~
.BUM 0.541 NA
Size ~~
Morphology 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.Mass 0.404 NA
.Forearm 0.471 NA
.LMT 0.394 NA
.BUM 0.957 NA
.eigenvectr.frg 0.819 NA
Size 0.571 NA
Morphology 0.581 NA
你可以帮我弄清楚出了什么问题吗?非常感谢你。
答案 0 :(得分:2)
我认为问题是同一构造的指标之间的相关残差。您试图以冗余方式解释同一构造上的指标之间的关系。
例如,潜在的构造&#34;尺寸&#34;可以解释指标变量之间的关系&#34; mass&#34;和#34;前臂。&#34;那里的残差将被概念化为由潜在构造解释的 not 指标中的方差。
但接下来你要做的就是让残差相关联,这样可以模拟&#34; mass&#34;之间的共享方差。和&#34;前臂&#34;这不是由潜在因素解释的。
问题在于你的潜在构造只由这两个变量组成。你基本上是在告诉lavaan
:&#34;将这两个指标之间的差异建模为潜在的构造......不要等!同样模拟与残差相同的方差!&#34;所以lavaan
基本上是在告诉你,&#34;这没有意义,我无法做到!&#34;我会试试这段代码:
model2 <- "
# regressions
eigenvector.frug ~ Size + Morphology
# latent variables
Size =~ Mass + Forearm
Morphology =~ LMT + BUM
# covariances and variances
Mass ~~ Mass
Forearm ~~ Forearm
LMT ~~ LMT
BUM ~~ BUM
"
此代码隐式将残差协方差修正为零。
您可能遇到的另一个问题是未识别每个子模型。对于每个潜在变量,您试图从2个指标中估计潜在构造,这两个指标未被识别(即,您有3个与方差相关的元素可以使用,但您估计2个残差,加载和潜在变化) 。为了解决这个问题,您可以将每个潜在因素的负载限制为彼此相等。我们可以通过为因子载荷分配相同的标签(这里,&#34; a&#34;和&#34; b&#34;为每个因素)来做到这一点。
model3 <- "
# regressions
eigenvector.frug ~ Size + Morphology
# latent variables
Size =~ a*Mass + a*Forearm
Morphology =~ b*LMT + b*BUM
# covariances and variances
Mass ~~ Mass
Forearm ~~ Forearm
LMT ~~ LMT
BUM ~~ BUM
"