Столкнулись с проблемой подбора биномиальной логистической регрессии, поскольку результаты кажутся подозрительными между языками. Потратив длительный период на изучение этого и поиск онлайн-предложений (на всякий случай также попробовал все варианты данных), я полагаю, что все сводится к тому, какую процедуру подбора MATLAB использует для glmfit
(у меня есть подозрение, что это метод максимального правдоподобия Estimator, тогда как Python и R используют IRLS/IWLS.)
Сначала я запустил свою проблему в MATLAB, используя:
[b_lr,dev,stats] = glmfit(x',y','binomial','link','logit');
Где x'
— массив из нескольких столбцов с предикторами и row length = y
, а y
— вектор ответа с двоичным результатом на основе критерия.
После этого расчета я перешел на использование python/R2py. Я попробовал одну и ту же процедуру как в Python, так и в R для подбора логит-связанного бинома, используя эквивалент glmfit из statsmodels, и получил другой набор коэффициентов для регрессии (обратите внимание, что положение вектора ответа изменяется для этих двух):
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, и если бы у кого-нибудь были предложения о том, как воспроизвести результат MATLAB в python или R.