Смешанные эффекты логистики c регрессия - PullRequest
3 голосов
/ 26 февраля 2020

Я пытаюсь реализовать смешанные эффекты логистики c регрессия в python. Для сравнения я использую функцию glmer из пакета lme4 в R.

Я обнаружил, что модуль statsmodels имеет BinomialBayesMixedGLM, который должен подойдет такая модель. Однако я столкнулся с рядом проблем:

  1. Мне кажется, что документация для функции statsmodels не совсем полезна или не ясна, поэтому я не совсем уверен, как использовать эту функцию
  2. До сих пор мои попытки не дали результатов, которые повторяли бы то, что я получаю при подборе модели с glmer в R.
  3. Я ожидаю, что функция BinomialBayesMixedGLM не вычисляет p -значения, поскольку он байесовский, но я не могу понять, как получить доступ к полным апостериорным распределениям для параметров.

В качестве теста я использую titani c доступный набор данных здесь .

import os
import pandas as pd
import statsmodels.genmod.bayes_mixed_glm as smgb

titanic = pd.read_csv(os.path.join(os.getcwd(), 'titanic.csv'))

r = {"Pclass": '0 + Pclass'}
mod = smgb.BinomialBayesMixedGLM.from_formula('Survived ~ Age', r, titanic)
fit = mod.fit_map()
fit.summary()

#           Type    Post. Mean  Post. SD       SD SD (LB) SD (UB)
# Intercept M           3.1623    0.3616            
# Age       M          -0.0380    0.0061            
# Pclass    V           0.0754    0.5669    1.078   0.347   3.351

Однако, кроме наклона для Age, это не похоже на то, что я получаю в R с glmer(Survived ~ Age + (1 | Pclass), data = titanic, family = "binomial"):

Random effects:
 Groups Name        Variance Std.Dev.
 Pclass (Intercept) 0.8563   0.9254  
Number of obs: 887, groups:  Pclass, 3

Fixed effects:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.961780   0.573402   1.677   0.0935 .  
Age         -0.038708   0.006243  -6.200 5.65e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Так какую ошибку я делаю при создании модели в python? И после того, как это решено, как я могу извлечь либо постеры, либо p-значения? И, наконец, есть ли у них какие-либо python реализации регрессий со смешанным эффектом логистики c, которые больше похожи на реализацию в R?

...