Если в формуле glm используется факторная переменная (например, пол с уровнями M и F), то создаются фиктивные переменные, которые можно найти в сводке модели glm вместе с соответствующими коэффициентами (например, полM)
Если вместо того, чтобы полагаться на R для разделения коэффициента таким образом, коэффициент кодируется в виде последовательности числовых переменных 0/1 (например, полM (1 для М, 0 для F), полF (1 для F, 0 для M) и эти переменные затем используются в качестве числовых переменных в формуле glm, будет ли результат коэффициента другим?
По сути, вопрос заключается в следующем: использует ли R различные вычисления коэффициентов при работе с факторными переменными в сравнении с числовыми переменными?
Дополнительный вопрос (возможно, отвеченный вышеизложенным): помимо эффективности того, что R позволяет создавать фиктивные переменные, есть ли проблемы с перекодировкой коэффициентов в виде последовательности числовых 0,1 переменных и их использованием вместо этого в модели?
Ответы:
Категориальные переменные (называемые « факторами » в R) должны быть представлены числовыми кодами в моделях множественной регрессии. Существует очень много возможных способов правильного построения числовых кодов (см. Этот великолепный список на справочном сайте статистики UCLA). По умолчанию, R использует опорный уровень кодирования (который R вызовы «contr.treatment»), и который в значительной степени по умолчанию статистика шириной. Это можно изменить для всех контрастов всего сеанса R с помощью параметров или для конкретных анализов / переменных с использованием контрастов или C (обратите внимание на заглавную). Если Вам необходима дополнительная информация о кодировании опорного уровня, я объясняю его здесь: регрессия на основе, например , по дням недели,
Некоторые люди находят опорный уровень кодирования в заблуждение, и вы не должны использовать его. Если вы хотите, вы можете иметь две переменные для мужчин и женщин; это называется уровень означает кодирование. Однако, если вы сделаете это, вам нужно будет подавить перехват, иначе матрица модели будет единственной, и регрессия не может быть подобрана, как @Affine отмечает выше и как я объясняю здесь: Качественное кодирование переменных приводит к особенностям . Чтобы подавить перехват, вы изменяете свою формулу, добавляя
-1
или+0
вроде этого:y~... -1
илиy~... +0
.Использование средств на уровень кодирования вместо эталонного уровня кодирования изменят коэффициенты просчитаны и смысл проверки гипотез, которые печатаются с выходом. Если у вас есть фактор два уровня (например, мужские и женская) и использовать кодирование опорного уровня, вы увидите перехватывать называемыеt 0 тt 0
(constant)
и только одну переменные , перечисленные в выводе (возможноsexM
). Перехват - это среднее значение контрольной группы (возможно, женщин) иsexM
разница между средним значением для мужчин и средним для женщин. Значение p, связанное с перехватом, является тестом одной выборки того, имеет ли опорный уровень среднее значение и значением p, связанным сsexM
говорит вам, если пол отличается в вашем ответе. Но если вы вместо этого используете уровень, означающий кодирование, у вас будет две переменные в списке, и каждое значение p будет соответствовать тесту для одной выборки того, равно ли среднее значение этого уровня . То есть ни одно из p-значений не будет проверять, различаются ли полы.источник
young F
), а другие уровни будут отличаться от данного уровня фактора 1 с уровень ссылки другого фактора и обе группы уровней ссылок. Например ,old
этоold F
- `молодой F, &
M` этоyoung M
-young F
.R^2
разницу между обоими подходами. Я знаю, что это толькоR^2
, но есть ли объяснение этому?Оценочные коэффициенты будут одинаковыми при условии, что вы создадите фиктивные переменные (то есть числовые), соответствующие R. Например: давайте создадим фальшивые данные и подгоним коэффициент Пуассона, используя коэффициент. Обратите внимание, что
gl
функция создает факторную переменную.Поскольку результат имеет три уровня, я создаю две фиктивные переменные (dummy.1 = 0, если result = 2, и dummy.2 = 1, если result = 3) и перекомпоновываю, используя следующие числовые значения:
Как видите, расчетные коэффициенты одинаковы. Но вы должны быть осторожны при создании фиктивных переменных, если хотите получить тот же результат. Например, если я создаю две фиктивные переменные как (dummy.1 = 0, если результат = 1, и dummy.2 = 1, если результат = 2), тогда предполагаемые результаты отличаются следующим образом:
Это потому, что когда вы добавляете
outcome
переменную в glm.1, R по умолчанию создает две фиктивные переменные, а именно,outcome2
иoutcome3
определяет их аналогичноdummy.1
иdummy.2
в glm.2, т. Е. Первый уровень результата - это когда все остальные фиктивные переменные (outcome2
иoutcome3
) установлены в нуль.источник