Ошибка в собственных (сигма, симметричный = ИСТИНА): бесконечные или пропущенные значения в "х" с логистической регрессией Зелига

Поэтому я пытаюсь выполнить сопоставление баллов склонности, а затем использовать 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 или более уровнями.

Другие вопросы по тегам