Плохие новости : на самом деле нет никакого разумного способа преобразовать коэффициенты логистической c регрессии (которые находятся в логарифмическом соотношении шансов или шкале lo git) в шкалу вероятностей. Преобразование из логарифмических шансов в вероятности зависит от базового уровня, поэтому для получения вероятностей вам нужно будет сделать прогнозы вероятностей для определенных c случаев: см., Например, этот вопрос с перекрестной проверкой .
Хорошие новости : возведение в степень коэффициентов дает шансы крысы ios, которые, как правило, хорошо понятны и, возможно, легче понять, чем логарифм отношения шансов.
library(broom.mixed)
dd <- dat[,-c(1,2)]
## find (and drop) examples with no variation
uu <- apply(dd,2,function(x) length(unique(na.omit(x))))
modList <- apply(dd[,uu>1],2,models)
## generate list of models
purrr:::map_dfr(modList,tidy,
effect="fixed",
exponentiate=TRUE,.id="Q")
Это дает вам таблицу (таблица) с оценками по шкале отношения шансов , стандартными ошибками, значениями p и т. Д. c. Если вам нужны доверительные интервалы в таблице, есть и другие варианты, например conf.int=TRUE
. Вы можете управлять им с помощью любого из инструментов tidyverse (например, %>% filter(term=="condition")
, если вас не интересуют перехваты).
Многие из ответов в этом примере являются своего рода подделкой, но это потому, что ваш набор данных слишком мал ... Надеюсь, ваш реальный набор данных больше, чем этот ...
Объяснение того, почему вы не можете обычно преобразовать шансы крысы ios в вероятности (без указания базового уровня), на самом деле является скорее статистическим вопросом / CrossValidated , но я приведу короткий пример, основанный на сайт статистики UCLA
- Импорт данных: масштабируйте переменные-предикторы для GRE и GPA, чтобы получить более интерпретируемые значения параметров.
library(tidyverse)
dd <- (haven::read_dta("https://stats.idre.ucla.edu/stat/stata/dae/binary.dta")
%>% mutate_at(c("gre","gpa"), ~drop(scale(.)))
)
- Подобрать модель и извлечь коэффициенты
m <- glm(admit~gre+gpa, family=binomial, dd)
cc <- coef(m)
## (Intercept) gre gpa
## -0.8097503 0.3108184 0.2872088
plogis()
- встроенная функция R для обратного lo git (logisti c) преобразование.
Преобразование параметра перехвата имеет смысл: оно дает прогнозируемую вероятность для человека с базовыми характеристиками; поскольку мы центрировали предикторы, это соответствует индивиду со средним средним GPA и GRE для популяции.
int_prob <- plogis(cc["(Intercept)"]) ## 0.307
Мы также можем предсказать вероятность для человека со средними GRE и GPA на одно стандартное отклонение выше среднее значение (единицы измерения параметра GPA - это «за стандартное отклонение», потому что мы масштабировали переменную GPA по ее стандартному отклонению):
gre_prob <- with(as.list(cc), plogis(`(Intercept)`+gre)) ## 0.3777
Мы могли бы вычислить разницу между этими прогнозами, что является одним из способов определения влияние GRE на шкалу вероятности:
gre_prob-int_prob ## 0.0698
Однако это применимо только для этого конкретного сравнения (человек со средним GPA и GRE на 1 SD выше среднего по сравнению с человеком со средним GPA и GRE ). Изменение вероятности на единицу GRE было бы другим, если бы мы начали с другой базовой линии или , сделав прогноз для другого изменения GRE.
Вы можете логистически c преобразовать коэффициент GRE если вы хотите:
plogis(cc["gre"]) ## 0.577
Но что это значит? Это вероятность успеха для человека с исходными логарифмическими шансами, равными нулю (что составляет не человека со средним GPA и GRE), если вы затем увеличите его GRE на 1 стандартное отклонение. Не то, что легко объяснить ...
Существуют и другие практические правила / аппроксимации для понимания значения log-odds-rat ios, например, правило деления на 4 , но все они так или иначе зависят от определения базового уровня.