遇到了拟合二项式逻辑回归的问题,因为结果似乎在语言之间存在问题。花了很长时间研究这个并寻找在线建议,(为了以防万一,尝试了所有数据变化),我相信它归结为 MATLAB 使用的拟合程序glmfit
(我偷偷怀疑它是最大似然估计器,而 python 和 R 使用 IRLS/IWLS。)
我首先使用以下方法在 MATLAB 中运行我的问题:
[b_lr,dev,stats] = glmfit(x',y','binomial','link','logit');
其中x'
是具有预测变量的多列数组row length = y
,y
是具有基于标准的二进制结果的响应向量。
从那次计算开始,我开始使用 python/R2py。我在 Python 和 R 中尝试了相同的程序,使用 statsmodels 中的 glmfit 等价物拟合 logit 链接的二项式,并获得了一组不同的回归系数(请注意,这两个的响应向量的位置发生了变化):
glm_logit = sm.GLM(yvec.T,Xmat,family = sm.families.Binomial()).fit()
并使用 R2py:
%R glm.out = glm(Data ~ ONI + Percentiles, family=binomial(logit), data=df)
如果有人能澄清 MATLAB 使用什么,如果有人对如何在 python 或 R 中复制 MATLAB 结果有建议,将不胜感激。