使用 Lavaan 的 SEM 模型中隐含相关性的显着性值

问题描述 投票:0回答:1

我刚开始使用 R 和 Lavaan,但已经成功建立了我的 SEM 模型来获得结果。我正在尝试获取与模型隐含相关性相关的 p 值。 lavInspect(fit,"cor.all") 但发现没有与每个二元隐含相关性相关的 p 值。有没有简单的方法可以做到这一点?

我已经在其他线程中看到了建议的引导,但未能成功获取输出。我试过这个 引导相关性 <- bootstrapLavaan(fit, R=100,FUN=lavInspect, what="cor.all") without luck

如果不是 p 值,有人可以具体解释如何获取模型隐含相关性的自举 CI 吗?

感谢您的任何想法!

r correlation r-lavaan
1个回答
0
投票

您可以按照以下方法执行此操作。事实上,这是我无数次给学生做的练习。所选的样本数据是 HolzingerSwineford1939: 经典的 Holzinger 和 Swineford (1939) 数据集包含来自两所不同学校(Pasteur 和 Grant-White)的七年级和八年级儿童的心理能力测试成绩。在原始数据集(MBESS 包中提供)中,有 26 个测试的分数。然而,包含 9 个变量的较小子集在文献中使用得更广泛(例如 Joreskog 1969 年的论文,该论文也仅使用了 Grant-White 学派的 145 个科目)。



library(lavaan)
library(boot)

data <- HolzingerSwineford1939

model <- '
  visual =~ x1 + x2 + x3
  textual =~ x4 + x5 + x6
  speed =~ x7 + x8 + x9
'

fit <- sem(model, data = data)

get_model_cor <- function(fit) {
  cor(fitted(fit)$cov)
}

bootstrapLavaanCor <- function(data, model, R = 1000) {
  fit_fun <- function(data, indices) {
    fit <- sem(model, data = data[indices, ])
    c(get_model_cor(fit))
  }
  
  boot_out <- boot(data, fit_fun, R = R)
  
  boot_out
}

set.seed(123)
boot_results <- bootstrapLavaanCor(data, model, R = 1000)

implied_cor <- get_model_cor(fit)
num_vars <- ncol(implied_cor)

calc_p_values <- function(boot_results, implied_cor, num_vars) {
  p_values <- matrix(NA, num_vars, num_vars)
  for (i in 1:num_vars) {
    for (j in i:num_vars) {
      bootstrap_samples <- boot_results$t[, (i - 1) * num_vars + j]
      observed_value <- implied_cor[i, j]
      p_value <- mean(abs(bootstrap_samples) >= abs(observed_value))
      p_values[i, j] <- p_value
      p_values[j, i] <- p_value 
    }
  }
  return(p_values)
}

p_values <- calc_p_values(boot_results, implied_cor, num_vars)

print(p_values)
print(implied_cor)

implied_cor

给出
            x1          x2          x3          x4          x5          x6         x7
x1  1.00000000  0.17571229  0.42864804 -0.02909431 -0.01553962 -0.03998217 -0.2957268
x2  0.17571229  1.00000000  0.06358578 -0.23566653 -0.22227990 -0.24405596 -0.3418594
x3  0.42864804  0.06358578  1.00000000 -0.14202754 -0.12865838 -0.15162292 -0.3217766
x4 -0.02909431 -0.23566653 -0.14202754  1.00000000  0.91345202  0.91206696 -0.4567183
x5 -0.01553962 -0.22227990 -0.12865838  0.91345202  1.00000000  0.90999014 -0.4366246
x6 -0.03998217 -0.24405596 -0.15162292  0.91206696  0.90999014  1.00000000 -0.4676668
x7 -0.29572676 -0.34185941 -0.32177663 -0.45671832 -0.43662456 -0.46766681  1.0000000
x8 -0.24652846 -0.35674401 -0.30459369 -0.47186076 -0.44881341 -0.48497324  0.4152746
x9 -0.27315815 -0.35946855 -0.31924241 -0.47659989 -0.45416070 -0.48916312  0.3627651
           x8         x9
x1 -0.2465285 -0.2731582
x2 -0.3567440 -0.3594686
x3 -0.3045937 -0.3192424
x4 -0.4718608 -0.4765999
x5 -0.4488134 -0.4541607
x6 -0.4849732 -0.4891631
x7  0.4152746  0.3627651
x8  1.0000000  0.5315998
x9  0.5315998  1.0000000

以及与它们相关的

p-values

      [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]  [,9]
 [1,] 1.000 0.520 0.561 0.867 0.918 0.819 0.473 0.445 0.458
 [2,] 0.520 1.000 0.621 0.524 0.531 0.520 0.475 0.474 0.481
 [3,] 0.561 0.621 1.000 0.479 0.487 0.484 0.465 0.458 0.455
 [4,] 0.867 0.524 0.479 1.000 0.517 0.522 0.429 0.412 0.448
 [5,] 0.918 0.531 0.487 0.517 1.000 0.518 0.438 0.418 0.442
 [6,] 0.819 0.520 0.484 0.522 0.518 1.000 0.437 0.415 0.443
 [7,] 0.473 0.475 0.465 0.429 0.438 0.437 1.000 0.505 0.440
 [8,] 0.445 0.474 0.458 0.412 0.418 0.415 0.505 1.000 0.492
 [9,] 0.458 0.481 0.455 0.448 0.442 0.443 0.440 0.492 1.000
© www.soinside.com 2019 - 2024. All rights reserved.