Лог регрессии с использованием категориальной переменной с большим количеством категорий - PullRequest
0 голосов
/ 09 января 2019

У меня есть датафрейм df, который выглядит примерно так.

Color   Rejection
Red     0
Orange  0
Yellow  1
Green   1
Blue    1

Я хотел бы запустить регрессию журнала, где "Blue" - это 0, а 1 может быть красным, оранжевым, желтым или зеленым.

Моя настройка регрессии журнала выглядит следующим образом.

glm(
  formula = Rejection ~ Color,
  data = df,
  family = binomial(link="logit")
)

Как мне настроить все так, чтобы «Синий» был значением по умолчанию, а другие цвета были бы «1» для переменной x в этом регрессионном анализе?

1 Ответ

0 голосов
/ 09 января 2019

Итак, чтобы быть ясным, вы хотели бы рассматривать Color как категориальный предиктор с двумя уровнями: синий и не синий? Самым простым решением было бы просто создать двоичную переменную фактора, где «Синий» является первым уровнем фактора, а все остальные сгруппированы во второй. Так что-то вроде этого:

df$Color_Binary <- if_else(df$Color == "Blue", df$Color, "Not Blue")
df$Color_Binary <- factor(df$Color_Binary, levels = c("Blue", "Not Blue"))

mod <- glm(
  formula = Rejection ~ Color_Binary,
  data = df,
  family = binomial(link="logit")
)

Обратите внимание, что при преобразовании в факторную переменную R по умолчанию создает уровни в алфавитном порядке, поэтому переменная levels не обязательна в этом примере, но будет, если вам придет значение "Not Blue" по алфавиту перед "синим". Причина, по которой вы хотите, чтобы синий был первым уровнем вашего фактора, заключается в том, что функция glm сворачивает первый уровень каждого фактора в перехват (т.е. по умолчанию) и оценивает эффекты для всех других уровней фактора.

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