Как работать с недвоичными категориальными переменными в логистической регрессии (SPSS)


10

Я должен сделать бинарную логистическую регрессию с большим количеством независимых переменных. Большинство из них являются двоичными, но некоторые из категориальных переменных имеют более двух уровней.

Как лучше всего справиться с такими переменными?

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

Я буду использовать SPSS, но не очень хорошо помню, так: как SPSS справляется с этой ситуацией?

Кроме того, для порядковой категориальной переменной, хорошо ли использовать фиктивные переменные, которые воссоздают порядковый масштаб? (Например, используя три фиктивные переменные для порядковой переменной с 4 состояниями, укажите 0-0-0уровень1, 1-0-0Для уровня2, 1-1-0Для уровня3и 1-1-1для уровня4, Вместо того , чтобы 0-0-0, 1-0-0, 0-1-0и 0-0-1для 4 уровней.)


2
Это лишь частичный ответ: даже когда вы создаете фиктивные файлы явно (а не используете неявные возможности программного обеспечения), сохраняйте их вместе во всех анализах. В частности, все они должны входить вместе и все уходить вместе в ступенчатой ​​регрессии, причем значение p рассчитывается соответствующим образом для общего числа задействованных переменных. (В любом случае, это рекомендация Hosmer & Lemeshow, и это имеет большой смысл.)
whuber


Вы говорите о своих независимых переменных. Это только зависимые переменные, которые должны быть двоичными для логистической регрессии.
Джон

1
Здесь следует отметить одну вещь: вам вообще не следует использовать пошаговые процедуры выбора; они не действительны. Если это не имеет смысла / вы хотите понять почему, это может помочь вам прочитать мой ответ здесь: алгоритмы для автоматического выбора модели .
gung - Восстановить Монику

Ответы:


10

На веб-сайте UCLA есть куча отличных учебных пособий для каждой процедуры с разбивкой по типу программного обеспечения, с которым вы знакомы. Проверьте аннотированный вывод SPSS: логистическая регрессия - переменная SES, которую они упоминают, является категориальной (а не двоичной). SPSS автоматически создаст переменные индикатора для вас. Также есть страница, посвященная категориальным предикторам в регрессии с SPSS, на которой есть конкретная информация о том, как изменить кодировки по умолчанию, и страница, относящаяся к логистической регрессии .


7

Логистическая регрессия - довольно гибкий метод. Он может легко использовать в качестве независимых переменных категориальные переменные. Большинство программ, использующих логистическую регрессию, должны позволять вам использовать категориальные переменные.

В качестве примера, скажем, одна из ваших категориальных переменных - это температура, разделенная на три категории: холодная / мягкая / горячая. Как вы предлагаете, вы можете интерпретировать это как три отдельных фиктивных переменных, каждая из которых имеет значение 1 или 0. Но программное обеспечение должно позволить вам использовать одну категориальную переменную вместо текстового значения cold / mild / hot. И регрессия логита будет выводить коэффициент (или постоянную) для каждого из трех температурных условий. Если один из них не имеет значения, программное обеспечение или пользователь могут легко его удалить (после наблюдения t stat и p value).

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


1
@gaetan Я не понимаю замечание об одном столбце против нескольких столбцов. Вы предлагаете, чтобы категориальные переменные были закодированы как 1, 2, 3 и т. Д. В одном столбце вместо использования фиктивных переменных? Я не уверен, что это имеет смысл для меня, так как вы тогда накладываете неявное ограничение на то, что разница в эффекте на dv между уровнями 1 и 2 такая же, как разница в эффекте на dv между уровнями 2 и 3. Возможно, я я что-то упустил

1
@Gaetan Я не уверен, что следую за тобой. Как именно XLStat преобразует «текстовые» значения холодного, мягкого или горячего в числовые значения для оценки? Если есть метод, который позволит вам оценивать влияние категориальных переменных без использования фиктивных переменных, то это, безусловно, должно быть независимо от используемого вами программного обеспечения, поскольку должна существовать некоторая базовая концептуальная / основанная на модели логика.

@Gaetan Я не буду придерживаться вашей точки зрения, если вы не считаете, что ваша порядковая переменная рассматривается как непрерывная (иногда это может иметь смысл, хотя мы ясно предполагаем, что переменная может наследовать свойство интервальной шкалы, как указано @Skrikant) , Обычно переменная сК уровни представлены в матрице дизайна как К-1столбцы, и я думаю, что это совершенно не зависит от используемого программного обеспечения (безусловно, XLStat заботится о построении правильной матрицы проектирования, как R, SPSS или Stata).
ЧЛ

1
@Gatean Хорошо, в этом случае то же самое можно сделать в SPSS (у вас есть выбор между числовым / порядковым / номинальным значением для каждой переменной) - тогда матрица проекта строится соответственно.
ЧЛ

2
@Gaetan @chl Подводя итог моему пониманию: функции SPSS и XLStat, с помощью которых вы можете указать шкалу измерения (номинальную, порядковую и т. Д.), Уменьшают размер файла данных. Однако в обоих случаях программное обеспечение использует правильную схему кодирования (например, расширяет номинальную переменную с J категориями в фиктивные переменные J-1) как часть процесса оценки в фоновом режиме. Будет ли это справедливой оценкой ситуации?

0

Насколько я понимаю, хорошо использовать фиктивную переменную для категориальных / номинальных данных, в то время как для порядковых данных мы можем использовать кодирование 1,2,3 для разных уровней. Для фиктивной переменной мы будем кодировать 1, если это верно для конкретной записи, и 0 в противном случае. Также фиктивные переменные будут на 1 меньше, чем нет. Из уровней, например, в двоичном коде, мы имеем 1. Наблюдение всех «0» в фиктивной переменной автоматически сделает 1 для некодированной фиктивной переменной.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.