2025, Dec 21 09:01

Как получить отношения шансов из GEE в statsmodels

Пошагово показываем, как получить отношения шансов из GEE в statsmodels: возьмите коэффициент из params и примените экспоненту. Без GlobalOddsRatio. Просто.

Извлекаем отношения шансов из модели GEE в statsmodels: быстрый и надежный способ

Обобщенные уравнения оценивания (GEE) в statsmodels упрощают подгонку кластеризованных моделей, однако не всегда очевидно, как превратить оцененные коэффициенты в отношения шансов. Если рука тянется к GlobalOddsRatio, притормозите: для отношений шансов по каждому предиктору достаточно коэффициентов, полученных в подогнанной модели.

Постановка задачи

Предположим, вы обучили GEE и хотите получить отношение шансов для конкретного предиктора. Код моделирования может выглядеть так:

import statsmodels.api as sm
cov_ar = sm.cov_struct.Autoregressive()
gee_mod = sm.GEE(a_endog, b_exog, grp_ids)
gee_fit = gee_mod.fit()
print(gee_fit.summary())

После просмотра сводки следующий шаг — получить отношение шансов для интересующего предиктора.

Что происходит

В подогнанной модели оцененные коэффициенты лежат в атрибуте params. Отношение шансов для нужного предиктора — это экспонента его коэффициента. Для этого GlobalOddsRatio не нужен.

Решение

Возьмите коэффициент из результата подгонки и возведите его в экспоненту. Этого достаточно.

import numpy as np
beta_b = gee_fit.params.b_exog
or_b = np.exp(beta_b)
print(or_b)

Если нужно отношение шансов для другого предиктора, извлеките его коэффициент из params тем же способом и примените экспоненту.

Зачем это важно

Отношения шансов часто наиболее понятны стейкхолдерам. Понимание, что их можно получить напрямую из подогнанных коэффициентов, экономит время и избавляет от лишних обходных путей через несвязанные API.

Итоги

После подгонки GEE в statsmodels используйте атрибут params, чтобы взять коэффициент интересующего предиктора, и примените экспоненциальное преобразование для получения его отношения шансов. Это прямой, надежный подход, упрощающий рабочий процесс.