Есть ли решение для системы вычислительно сингулярного: обратное условие число = ... в R? - PullRequest
1 голос
/ 16 апреля 2020

Использовал R-код и получил матричную ошибку

library(eRm)
data <- na.omit(Main_data[,51:72])
model <- RSM(data)

получил ошибку, такую ​​как

Ошибка в solve.default (parest $ hessian): система в вычислительном отношении единственное число: число взаимных условий = 5.82277e-23

Я удалил все пропущенные значения. Я попытался с пакетом pcIRT с кодом MPRM () получил некоторую ошибку формата таблицы. Я также попытался преобразовать данные в виде матрицы и получил ту же ошибку.

1 Ответ

0 голосов
/ 16 апреля 2020

Метод RSM - это обертка вокруг lm в базовом пакете R. Одна из неявных потребностей метода lm заключается в том, что матрица, к которой он применяется, должна быть обратимой. Это приводит к ситуации, когда сильно коррелированные данные (значения корреляции, значительно превышающие 0 и приближающиеся к 1), могут привести к выбоинам в вашей матрице, что сделает ее локально необратимой .... тогда вы получите эту ошибку.

Это не Независимо от того, как вы структурируете данные (фрейм данных, матрица, список списков) при передаче их в метод, он выдаст ошибку, поскольку значения в данных дестабилизируют матрицу и делают использование этого метода невозможным в текущем состоянии.

Лучшим решением было бы использовать корреляционную матрицу, чтобы выяснить, можете ли вы выделить некоторые из высококоррелированных переменных, чтобы сделать матрицу обратимой.

Даже если вы смогли заставить модель если все будет работать, вы получите проблемы со стабильностью результатов, которые могут поставить под угрозу безопасное использование модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...