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

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

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

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

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

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

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

X 0 является фиктивной переменной, которая имеет значение 1 для Small, и 0 в противном случае. X 1 является фиктивной переменной, которая имеет значение 1 для Medium, и 0 в противном случае. X 2 является фиктивной переменной, которая имеет значение 1 для Large, и 0 в противном случае.

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

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

Можно отличить Small, Medium, и Large использование только X 1 и X 2, без X 0. Наблюдения для Small имейте 0s для обеих фиктивных переменных. Категорией, представленной всем 0s, является reference group.

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

Примите, что математическим упорядоченным расположением категорий является Small <Medium <Large. Чтобы указать на упорядоченное расположение, используйте больше 1 с в более высоких категориях.

X 1 является фиктивной переменной, которая имеет значение 1 для Medium и Large, и 0 для Small. X 2 является фиктивной переменной, которая имеет значение 1 для Large, и 0 в противном случае.

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

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

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

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

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

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

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

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

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

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

  • Параметрический подбор кривой регрессии функционирует, такие как fitlm и fitglm используйте Фиктивные Переменные с Reference Group. Когда функции включают фиктивные переменные, предполагаемые коэффициенты фиктивных переменных относительно ссылочной группы. Для примера смотрите Линейную регрессию с Категориальным Предиктором.

  • fitlme и fitglme позвольте вам задавать схему создания фиктивных переменных при помощи 'DummyVarCoding' аргумент пары "имя-значение". Функции поддерживают обе Полных Фиктивных Переменные ('DummyVarCoding','full') и фиктивные переменные со ссылочной группой ('DummyVarCoding','reference'). Можно также задать 'DummyVarCoding','effects' так, чтобы предполагаемые коэффициенты фиктивных переменных суммировали к 0. Обратите внимание на то, что эти две функции не предлагают аргумент пары "имя-значение" для определения категориальных переменных.

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

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

В этом примере показано, как создать вашу собственную фиктивную матрицу проекта переменной при помощи 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 категориями в модели регрессии с термином прерывания.

Смотрите также

|

Похожие темы