如何手动计算拟合值以复制 lavPredict() 生成的值

How to manually compute fitted values to replicate those produced by lavPredict()

我需要在 R 中手动预测增长模型的拟合值...

我知道我可以使用 lavPredict(fit, type="yhat") 但我想 report/explain 我的论文中这些值是如何计算的。增长模型中的哪些参数包含在拟合值的计算中?

感谢您的帮助!

我希望这个问题更适合发布在 CrossValidated 上,它是关于统计而不是一般编程的。

lavPredict(fit, type="yhat")

请注意,这些不是生长因子分数,它们是由 lavPredict(fit, type="lv") 返回的 MLM 中的随机效应。这些是每个单独主题的期望值(条件期望,给定因子分数)。这些是指标截距($\nu$,在 LGCM 中固定为零)、因子得分($\eta_i$)和因子载荷($\Lambda$)的函数;期望值的残差被省略,但回归方程看起来是一样的。

$$ \hat{y}_i = \nu + eta_i 拉姆达 $$

请注意,如果有什么可以预测增长因素,那么这些因素也有一个可以代入上述等式的回归模型:

$$ \eta_i = \alpha + X_i B $$

其中 B 是“Beta”路径,$\alpha$ 是因子截距向量,$X_i$ 是主题 i 的预测变量值(实际上,它们也包含在 $eta$ 中;甚至观察到的预测因子也会在内部“提升”为单一指标因素)。

或者,lavInspect(fit, "mean.ov") 为您提供观察变量的边际 均值(预期值),解释为具有平均因子得分(平均潜在风险)的人的预期值截距和斜率)。这就是你想要的吗?

any SEM 的边际均值是指标截距($\nu$,在 LGCM 中固定为零)、因子截距($\alpha$)的函数)、因子载荷 ($\Lambda$) 和潜在回归(Beta,如果有的话)。如果任何观察到的变量预测增长因素,请将它们视为单一指标因素(这就是 lavaan 在背景中对待它们的方式)。您可以使用

保存参数矩阵集

EST <- lavInspect(fit, "est")

它是一个列表,因此您可以使用 EST$lambda 等提取每个矩阵

然后使用以下公式计算模型隐含边际均值:

$$\mu = \nu + \Lambda (I - B)^{-1} \alpha$$

其中 $I$ 是与 Beta 具有相同维度的单位矩阵。

这些估计值也可用于计算条件均值,但您必须选择一种可用的方法来估计因子得分,并将它们保存在 lavPredict()