ATM*_*hew 33 statistics r r-zelig
所以这是一个非常简单的问题,似乎无法弄明白.
我正在使用glm函数运行logit,但不断收到与自变量相关的警告消息.它们被存储为因素,我已将它们更改为数字,但没有运气.我也将它们编码为0/1,但这也没有用.
请帮忙!
> mod2 <- glm(winorlose1 ~ bid1, family="binomial")
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
Run Code Online (Sandbox Code Playgroud)
我也在Zelig尝试过,但类似的错误:
> mod2 = zelig(factor(winorlose1) ~ bid1, data=dat, model="logit")
How to cite this model in Zelig:
Kosuke Imai, Gary King, and Oliva Lau. 2008. "logit: Logistic Regression for Dichotomous Dependent Variables" in Kosuke Imai, Gary King, and Olivia Lau, "Zelig: Everyone's Statistical Software," http://gking.harvard.edu/zelig
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
Run Code Online (Sandbox Code Playgroud)
编辑:
> str(dat)
'data.frame': 3493 obs. of 3 variables:
$ winorlose1: int 2 2 2 2 2 2 2 2 2 2 ...
$ bid1 : int 700 300 700 300 500 300 300 700 300 300 ...
$ home : int 1 0 1 0 0 0 0 1 0 0 ...
- attr(*, "na.action")=Class 'omit' Named int [1:63021] 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 ...
.. ..- attr(*, "names")= chr [1:63021] "3494" "3495" "3496" "3497" ...
Run Code Online (Sandbox Code Playgroud)
jor*_*ran 36
如果您查看?glm(甚至在Google上搜索第二条警告消息),您可能会从文档中发现这一点:
对于二项式GLM中关于"拟合概率数值0或1发生"的警告信息的背景,参见Venables&Ripley(2002,pp.197-8).
现在,不是每个人都有那本书.但是假设这对我来说是犹太人,这是相关的段落:
存在一种相当普遍的情况,即收敛问题和Hauck-Donner现象都可能发生.这是当拟合概率非常接近零或一时.考虑一个包含数千个病例的医学诊断问题和大约50个二进制解释变量(可能来自编码较少的分类变量); 其中一个指标很少是真实的,但总是表明疾病存在.那么具有该指标的情形的拟合概率应该是1,这只能通过βi =∞ 来实现.结果
glm将是警告和大约+/- 10的估计系数.在统计文献中对此进行了相当广泛的讨论,通常声称不存在最大似然估计; 见Sautner和Duffy(1989,p.234).
一个这本书的作者的稍微详细的评论在这里.因此,这里的教训是仔细查看预测器的其中一个级别.(和谷歌的警告信息!)
Tom*_*ers 10
这可能是由于完全分离,即一组完全由 0 或 1 组成。
有几种选择可以解决这个问题:
(a) 使用 Firth 的惩罚似然法,如 R 中的loggerf、brglm或brglm2包中所实现。这使用 Firth (1993), “最大似然估计的偏差减少”, Biometrika , 80 ,1.中提出的方法;这消除了最大似然估计中的一阶偏差。
(b) 通过在精确条件逻辑回归中使用中值无偏估计。R 中的elrm或LogiX包可以做到这一点。
(c) 使用LASSO或弹性网络正则化逻辑回归,例如使用R中的glmnet包。
(d) 采用贝叶斯,参见。论文Gelman 等人 (2008),“逻辑和其他回归模型的弱信息默认先验分布”,Ann。应用。统计。, 2 , 4,例如使用brms包或使用arm包中的函数bayesglm 。
(e) 使用隐藏的逻辑回归模型,如Rousseeuw & Christmann (2003),“逻辑回归中对分离和异常值的鲁棒性”,计算统计和数据分析,43 , 3 中所述,并在 R 包hlr中实现。
dat$bid1 = as.factor(dat$bid1)您需要先使用)将因子重新编码为因子
这里还讨论了该问题的解决方案:
https://stats.stackexchange.com/questions/5354/logistic-regression-model-does-not-converge?rq=1
| 归档时间: |
|
| 查看次数: |
62155 次 |
| 最近记录: |