Ошибка в собственных (сигма, симметричный = ИСТИНА): бесконечные или пропущенные значения в "х" с логистической регрессией Зелига
Поэтому я пытаюсь выполнить сопоставление баллов склонности, а затем использовать Zelig для выполнения логистической регрессии сопоставленных данных.
Вот пример того, как выглядят мои данные: ДАННЫЕ
Поэтому я стараюсь подбирать пациентов по деменции, инсульту и возрасту. Затем я пытаюсь выяснить, связан ли препарат X с повышенным риском падения после подбора пациентов. Затем я хотел бы пройти один и тот же процесс для лекарств Y и лекарств Z, чтобы увидеть, есть ли у каждого отдельного лекарственного средства ассоциация.
Вот код, который я использовал до сих пор для выполнения сопоставления и анализа логистической регрессии:
data <- read_csv("Desktop/data.csv")
View(data)
attach(data)
data[1:10,]
m.out = matchit(Fall ~ Dementia + Stroke + Age, method = "exact", data = data)
m.data = match.data(m.out)
library(Zelig)
z.out = zelig(Fall ~ Drug X + Dementia + Stroke + Age, model = "logit", data = m.data)
x.out0 <- setx(z.out, Drug X = 0)
x1.out0 <- setx(z.out, Drug X = 1)
s.out0 <- sim(z.out, x = x.out0, x1 = x1.out0)
Кажется, что все идет гладко до этой последней строчки. Вот сообщение об ошибке, которое я продолжаю получать.
Error in eigen(Sigma, symmetric = TRUE) :
infinite or missing values in 'x'
Есть идеи, что я делаю не так? Я застрял здесь на некоторое время и решил обратиться за помощью.
Заранее спасибо.
0 ответов
В настоящее время Zelig не обновлялся в течение нескольких лет и, похоже, имеет некоторые не исправленные ошибки. Одна из проблем заключается в том, что команда sim кажется очень чувствительной к именам переменных и типам данных. Для тех, кто получает эту ошибку, попробуйте следующее:
переменная
Drug X
есть пространство, с которым Зелиг, вероятно, не справится. Попробуйте переименовать его во что-то вродеDrug_X
Если есть переменная, которая удаляется из регрессионной модели из-за коллинеарности, ее необходимо полностью исключить из модели, прежде чем переходить к
sim()
Перед запуском модели также убедитесь, что все символьные переменные преобразованы в коэффициенты, иначе вы можете получить следующую ошибку:
Ошибка контрастов<-(tmp, value = contr.funs[1 + isOF[nn]]): контрасты могут применяться только к факторам с 2 или более уровнями.