Я пытаюсь сделать случайную матричную корреляцию по 183 переменным, чтобы вычислить разложение Холецкого и сопоставить 183 случайные нормали. Для создания матрицы корреляции я использую следующий воспроизводимый код:
Сначала я устанавливаю начальное число
set.seed(2)
Затем я генерирую случайные числа в диапазоне от 0,6 до 0,8
corr <- matrix(runif(183*183, min = 0.6, max = 0.8), 183, 183)
Следующий шаг - это превращение диагонали в единицы
for (i in 1:183) {
for (j in 1:183) {
if (i == j) {
corr[i,j] <- 1
}
}
}
Последний шаг - симметрия c
for (i in 1:183) {
for (j in 1:183) {
if (i < j) {
corr[i,j] <- corr[j,i]
}
}
}
Проблема, с которой я сталкиваюсь, возникает, когда я попытаться выполнить разложение по Холецкому
cholesky <- chol(corr)
Я получаю следующую ошибку:
Ошибка в chol.default (corr): старший минор порядка 14 не является положительно определенным
Как сделать корреляционную матрицу полуопределенной положительной?