R возвращает больше коэффициентов, чем ожидалось в логистической c регрессии - PullRequest
0 голосов
/ 07 мая 2020

Я использую набор данных с веб-сайта для проверки логистической c регрессии. R возвращает три коэффициента для переменной «возраст». Ниже представлен набор данных. Возрастная переменная имеет четыре уровня: <25, 25-29, 30-39, 40-49. </p>

данные

В наборе данных есть три переменных-предиктора (т. Е. возраст, образование, хочетБольше). Четвертый и пятый столбцы - это переменные ответа, соответствующие «Нет» (четвертый столбец) и «Да» (пятый столбец).

data

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

cuse = read.table("https://data.princeton.edu/wws509/datasets/cuse.dat", header = TRUE)

cuse$age=factor(cuse$age)

lrfit = glm( cbind(using, notUsing) ~ age + education + wantsMore,
             data = cuse, family = binomial)

lrfit$coefficients

Коэффициенты показаны ниже. R производит три коэффициента для возрастной переменной. Как исправить?

> lrfit$coefficients
 (Intercept)     age25-29     age30-39     age40-49 educationlow wantsMoreyes 
  -0.8082200    0.3893816    0.9086135    1.1892389   -0.3249947   -0.8329548 

1 Ответ

4 голосов
/ 07 мая 2020

Как @Dason упомянул в комментариях, вы получите k-1 коэффициенты для вас k количество рангов в вашей категориальной переменной, age.

Это потому, что внутри R создает фиктивные переменные для работы с категориальными переменными. В регрессионной модели нет смысла умножать числовое значение коэффициента на «категорию» «возраст менее 25 лет».

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

Для вашей модели последняя «отсутствующая» переменная для возраста - это базовая переменная, с которой сравниваются все другие возрасты, а именно age из <25. Итак, на основе вашего моделирования, человек с age, равным 25-29, по сравнению с базовым уровнем <25, изменяет логарифмические шансы ваших переменных ответа (notUsing и using) на 0.3893816.

См. здесь для получения подробного руководства, в котором есть переменная категории (их значение rank) и как ее интерпретировать.

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