数据文件:/tmp/demo_clpm_vri0177e/data_clpm.csv(用同份数据 + 上述方法可复现结果)
下表为本次分析实际使用的设定(由分析程序自动原样列出,非 AI 转述)。解读数字前请先核对设定与你的研究假设一致——尤其路径方向与变量角色;质量门控只检查统计前提,发现不了「设定对不对」。
| 设定项 | 内容 |
|---|---|
| 自变量 X(波1 → 波2) | FTP条目均分 → FTP_W2 |
| 因变量 Y(波1 → 波2) | SP条目均分 → SP_W2 |
交叉滞后面板模型:检验 FTP条目均分 → SP_W2 与 SP条目均分 → FTP_W2 的双向预测关系(控制自回归路径与 Wave 1 相关)。样本量 n=584。
| 路径 | β | p | 显著性 |
|---|---|---|---|
| FTP条目均分 → SP_W2 | -0.043 | 0.24 | 不显著 |
| SP条目均分 → FTP_W2 | -0.016 | 0.547 | 不显著 |
| FTP条目均分 → FTP_W2 | 0.796 | < .001 *** | 显著 |
| SP条目均分 → SP_W2 | 0.525 | < .001 *** | 显著 |
交叉滞后路径(前两行)显著说明存在跨时间预测关系;双向均显著时结合系数大小判断主导方向。
| 指标 | 值 |
|---|---|
| R²(Y 波2) | 0.292 |
| R²(X 波2) | 0.642 |
| Wave 1 时 X-Y 相关 | -0.329 |
未发现显著交叉滞后效应
水平箭头 = 自回归(稳定性),斜向箭头 = 交叉滞后(跨时间预测),双向箭头 = Wave 1 同期相关;实线显著/虚线不显著,系数为标准化 β。
| 检查项 | 实际值 | 参考标准 | 状态 | 建议 |
|---|---|---|---|---|
| 交叉滞后路径 | 0/2 显著 | 至少一项显著 | ⚠ 提醒 | 未发现跨时间预测关系;检查两波间隔与变量稳定性 |
| 自回归路径 | 2/2 显著 | 至少一项显著 | ✓ 通过 | |
| Wave2 解释率 | 0.292 | ≥0.02 | ✓ 通过 |
# 交叉滞后分析(示例:FTP → 睡眠拖延,模拟第二波)
# 数据来源: /tmp/demo_clpm_vri0177e/data_clpm.csv
# Wave 1: FTP条目均分, SP条目均分
# Wave 2: FTP_W2, SP_W2
library(readr)
library(lavaan)
# 读取数据
data <- read_csv("/tmp/demo_clpm_vri0177e/data_clpm.csv")
# 定义交叉滞后模型
model <- '
# 自回归路径(稳定性)
FTP_W2 ~ FTP条目均分
SP_W2 ~ SP条目均分
# 交叉滞后路径(跨时间预测)
SP_W2 ~ FTP条目均分 # X Wave 1 -> Y Wave 2
FTP_W2 ~ SP条目均分 # Y Wave 1 -> X Wave 2
# Wave 1 相关
FTP条目均分 ~~ SP条目均分
'
# 拟合模型
cat("\n=== 交叉滞后面板模型 ===\n\n")
fit <- sem(model, data = data)
# 模型摘要
cat("\n=== 模型摘要 ===\n")
summary(fit, standardized = TRUE, fit.measures = TRUE)
# 参数估计
cat("\n=== 参数估计 ===\n")
print(parameterEstimates(fit, standardized = TRUE))
# 解释交叉滞后路径
cat("\n=== 交叉滞后路径解释 ===\n")
estimates <- parameterEstimates(fit, standardized = TRUE)
cross_lagged <- estimates[estimates$op == "~" &
((estimates$lhs == "SP_W2" & estimates$rhs == "FTP条目均分") |
(estimates$lhs == "FTP_W2" & estimates$rhs == "SP条目均分")), ]
print(cross_lagged)