Как исправить код для ввода ковариационной матрицы с использованием пакета lavaan - PullRequest
0 голосов
/ 18 февраля 2019

Я получаю следующее сообщение об ошибке при вводе ковариационной матрицы с использованием lavaan:

Ошибка в lav_matrix_lower2full (c (0,77, 0,38, 0,65, 0,39, 0,39, 0,62, -0,25,: p== round (p, 0) не TRUE

Я использовал следующий код без проблем.

Full.cor<-lav_matrix_lower2full(c(.77,.38,.65,.39,.39,.62,-.25,-.32,-.27,6.09,.31,.29,.26,-.36,7.67,.24,.25,.19,-.18,.51,1.69,-3.16,-3.56,-2,63,6.09,-3.12,-4.58,204.79,-.92,-.88,-.72,.88,-1.49,-1.41,16.53,7.24))

Есть идеи, где я ошибся?

1 Ответ

0 голосов
/ 18 февраля 2019

С ?lav_matrix_lower2full (жирный шрифт):

'lav_matrix_vechr_reverse' (псевдоним: 'lav_matrix_vechu_reverse' и 'lav_matrix_lower2full') создает симметричную матрицу, только для нижнеготреугольные элементы , строка за строкой.Если диагональ = ЛОЖЬ, добавляется диагональ с нулевыми элементами.

Для любой симметричной n × n матрицы имеется n(n+1)/2 нижних треугольных элементов (включая диагональ).

ошибка возникает из-за того, что вы не указали правильное количество «неупакованных» элементов матрицы.

Например, для матрицы 3 × 3 нам нужно предоставить 6 элементов

lav_matrix_lower2full(c(0, 1, 2, 3, 4, 5))
#     [,1] [,2] [,3]
#[1,]    0    1    3
#[2,]    1    2    4
#[3,]    3    4    5

Если мы сделаем это вместо

lav_matrix_lower2full(c(0, 1, 2, 3, 4))

мы получаем ошибку

Ошибка в lav_matrix_lower2full (c (0, 1, 2, 3, 4)): p == round (p, 0) неTRUE

В вашем случае у вас есть 37 элементов, что говорит о том, что либо

  • у вас есть дополнительный ошибочный элемент для потенциальной ковариационной матрицы 8 × 8, требующий 36 элементов, или
  • вам не хватает 8 дополнительных элементов для потенциальной 9 × 9 ковариационной матрицы, требующей 45 элементов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...