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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эффекты, кодирующие, используют 1, 0, и –1, чтобы создать фиктивные переменные. Вместо того, чтобы использовать 0 значений, чтобы представлять ссылочную группу, как в Фиктивных Переменных с Reference Group, эффекты, кодирующие использование –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 категориями в модели регрессии с термином прерывания.

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

|

Похожие темы