Извлечение перехватов для зависимого фактора в модели - PullRequest
1 голос
/ 22 октября 2019

Предположим, я подгоняю модель в R следующим образом:

model = glm(y ~ x + language, family = binomial, data = data)

language - факторная переменная;идея заключается в том, что для каждого языка существует разный перехват.

Вот коэффициенты model:

> coef(model)
  (Intercept)             x  languageen-GB languageen-US    languageja    languageko 
-17.919438297   0.003119914   -0.427067341  -0.613194669   1.406719444   2.402191148 
   languagezh 
  0.894899827 

Один уровень коэффициента language (de) был выбран в качестве базовой линии, а (Intercept) дает перехватдля этого базового уровня. languageen-GB и т. Д. Дают перехваты как дельты от базового перехвата.

Этот код

coeffs = coef(model)
intercepts = c("baseline" = 0, tail(coeffs, -2)) + coeffs["(Intercept)"]
names(intercepts) <- levels(data$language)
intercepts

извлекает фактические перехваты для каждого факторного уровня:

       de     en-GB     en-US        ja        ko        zh 
-17.91944 -18.34651 -18.53263 -16.51272 -15.51725 -17.02454 

Но это ужасный код. Должен быть более хороший способ сделать это с помощью методов модели или функций пакета ...?

Редактировать: одна особенно неприятная часть заключается в том, что tail(coeffs, -2) сломается, если вы измените формулу. Я полагаю, что здесь можно использовать какой-то поиск по строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...