本征误差(Sigma,对称= TRUE):zelig logistic回归中'x'中的值无穷或缺失

时间:2018-08-22 18:10:25

标签: r logistic-regression r-zelig

因此,我尝试进行倾向得分匹配,然后利用Zelig对匹配的数据进行逻辑回归。

以下是我的数据的示例: DATA

因此,我试图根据痴呆症,中风和年龄来匹配患者。然后,我试图查看药物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'

有什么主意我做错了吗?我已经在这里停留了一段时间,决定伸出援手。

先谢谢了。

1 个答案:

答案 0 :(得分:0)

目前,Zelig几年没有更新,并且似乎还有一些未解决的错误。一个问题是sim命令似乎对变量名和数据类型非常敏感。对于遇到此错误的任何人,请尝试以下操作:

  • 变量Drug X具有Zelig可能无法处理的空间。尝试将其重命名为Drug_X

  • 如果由于共线性而从回归模型中删除了一个变量,则需要先将其从模型中完全删除,然后再转到sim()

  • 在运行模型之前,还要检查是否所有字符变量都已转换为因数,否则您可能会遇到以下错误:

    对比错误<-(tmp,值= contr.funs [1 + isOF [nn]]): 对比只能应用于2个或更多级别的因素