使用R包lcsm拟合双变量潜变量变化分数模型时遇错求助
解决lcsm包双变量潜变量变化分数模型的提取错误
错误原因
你遇到的问题核心是:specify_bi_lcsm()函数仅生成lavaan格式的模型语法字符串,而非拟合完成的模型对象。直接对这个字符串调用extract_fit()和extract_param(),就会触发"没有对应字符类的glance/tidy方法"的错误——因为这两个函数需要的是已经拟合好的lavaan模型结果,不是纯文本语法。
修正步骤
需要在生成模型语法后,用lavaan包的拟合函数(比如sem())完成模型拟合,再用提取函数处理拟合后的对象:
修正后的代码
# 1. 生成双变量LCSM的模型语法 bi_lcsm_model <- specify_bi_lcsm( df_wide, timepoints = 2, var_x = c("srpf_ses1","srpf_ses2"), model_x = list(alpha_constant = TRUE, beta = TRUE, phi = TRUE), var_y = c("avg_hippocampus1","avg_hippocampus2"), model_y = list(alpha_constant = TRUE, beta = TRUE, phi = TRUE), coupling = list(delta_lag_xy = TRUE, delta_lag_yx = TRUE) ) # 2. 用lavaan的sem()函数拟合模型 lavaan_bi_lcsm_fit <- sem(bi_lcsm_model, data = df_wide) # 3. 提取拟合统计量和参数估计 extract_fit(lavaan_bi_lcsm_fit) extract_param(lavaan_bi_lcsm_fit)
额外说明
- 如果你的模型偏向验证性因子分析结构,也可以用
cfa()替代sem(),但对于潜变量变化分数模型,sem()的适配性更强。 - 拟合前可以先打印
bi_lcsm_model查看生成的语法,提前排查变量名、模型结构是否符合预期。
内容的提问来源于stack exchange,提问作者Hannah Loso
相关产品推荐
相关产品推荐

