exponenta event banner

Фиктивные переменные

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

Что такое фиктивные переменные?

При выполнении классификационного и регрессионного анализа часто необходимо включать как непрерывные (количественные), так и категориальные (качественные) предикторные переменные. Категориальная переменная не должна входить в числовой массив. Числовые массивы имеют как порядок, так и величину. Категориальная переменная может иметь порядок (например, порядковая переменная), но не имеет величины. Использование числового массива подразумевает известное «расстояние» между категориями. Подходящий способ включения категориальных предикторов - это фиктивные переменные. Для определения фиктивных переменных используйте переменные индикатора, имеющие значения 0 и 1.

Программа выбирает одну из четырех схем для определения фиктивных переменных на основе типа анализа, как описано в следующих разделах. Например, предположим, что у вас есть категориальная переменная с тремя категориями: Cool, Cooler, и Coolest.

Полные фиктивные переменные

Представление категориальной переменной с тремя категориями с использованием трех фиктивных переменных, по одной переменной для каждой категории.

X0 является фиктивной переменной, которая имеет значение 1 для Cool, и 0 в противном случае. X1 является фиктивной переменной, которая имеет значение 1 для Cooler, и 0 в противном случае. X2 является фиктивной переменной, которая имеет значение 1 для Coolest, и 0 в противном случае.

Фиктивные переменные с ссылочной группой

Представление категориальной переменной с тремя категориями с использованием двух фиктивных переменных со ссылочной группой.

Можно различить Cool, Cooler, и Coolest используя только X1 и X2, без X0. Наблюдения за Cool имеют 0 для обеих фиктивных переменных. Категория, представленная всеми 0, является ссылочной группой.

Фиктивные переменные для упорядоченной категориальной переменной

Предположим, что математический порядок категорий равен Cool < Cooler < Coolest. Эта схема кодирования использует значения 1 и -1 и использует больше 1 для более высоких категорий, чтобы указать порядок.

X1 является фиктивной переменной, которая имеет значение 1 для Cooler и Coolest, и -1 для Cool. X2 является фиктивной переменной, которая имеет значение 1 для Coolest, и -1 в противном случае.

Можно указать, что категориальная переменная имеет математический порядок, используя 'Ordinal' аргумент пары имя-значение categorical функция.

Фиктивные переменные, созданные с кодированием эффектов

Кодирование эффектов использует 1, 0 и -1 для создания фиктивных переменных. Вместо использования значений 0 для представления ссылочной группы, как в разделе Фиктивные переменные с ссылочной группой, кодирование эффектов использует -1 для представления последней категории.

Создание фиктивных переменных

Автоматическое создание фиктивных переменных

Statistics and Machine Learning Toolbox™ предлагает несколько функций классификации и регрессии, которые принимают категориальные предикторы. Некоторые функции подгонки создают фиктивные переменные для обработки категориальных предикторов.

Ниже приведено поведение аппроксимирующих функций по умолчанию при определении категориальных предикторов.

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

  • Если данные предиктора являются матрицей, функции предполагают, что все предикторы непрерывны.

Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' или 'CategoricalVars' аргумент пары имя-значение.

Функции подгонки обрабатывают идентифицированные категориальные предикторы следующим образом:

Создание фиктивных переменных вручную

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

Создайте вектор столбцов категориальных данных, указывающих пол.

gender = categorical({'Male';'Female';'Female';'Male';'Female'});

Создать фиктивные переменные для gender.

dv = dummyvar(gender)
dv = 5×2

     0     1
     1     0
     1     0
     0     1
     1     0

dv имеет пять строк, соответствующих количеству строк в gender и два столбца для уникальных групп, Female и Male. Порядок столбцов соответствует порядку уровней в gender. Для категориальных массивов по умолчанию используется алфавитный порядок возрастания. Проверить заказ можно с помощью categories функция.

categories(gender)
ans = 2x1 cell
    {'Female'}
    {'Male'  }

Чтобы использовать фиктивные переменные в регрессионной модели, необходимо либо удалить столбец (для создания ссылочной группы), либо подогнать регрессионную модель без элемента пересечения. Для гендерного примера требуется только одна фиктивная переменная для представления двух полов. Обратите внимание, что произойдет, если добавить термин перехвата в полную матрицу проектирования dv.

X = [ones(5,1) dv]
X = 5×3

     1     0     1
     1     1     0
     1     1     0
     1     0     1
     1     1     0

rank(X)
ans = 2

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

См. также

|

Связанные темы