dummyvar

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

Синтаксис

D = dummyvar(group)

Описание

пример

D = dummyvar(group) возвращает матричный D, содержащий нули и единицы, столбцы которых являются фиктивными переменными для группирующих переменных в group. Каждый столбец group является одной группирующей переменной со значениями, указывающими на уровни категории. Строки group представляют наблюдения через все переменные.

Примеры

свернуть все

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

Colors = {'Red';'Blue';'Green';'Red';'Green';'Blue'};
Colors = categorical(Colors);

Создайте фиктивные переменные для каждого типа цвета.

D = dummyvar(Colors)
D = 6×3

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

Столбцы в D соответствуют уровням в Colors. Например, первый столбец dummyvar соответствует первому уровню, 'Blue', в Colors.

Отобразите уровни категории Colors.

categories(Colors)
ans = 3x1 cell array
    {'Blue' }
    {'Green'}
    {'Red'  }

Создайте матричный group данных, содержащих эффекты двух машин и трех операторов на процессе.

machine = [1 1 1 1 2 2 2 2]';
operator = [1 2 3 1 2 3 1 2]';
group = [machine operator]
group = 8×2

     1     1
     1     2
     1     3
     1     1
     2     2
     2     3
     2     1
     2     2

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

D = dummyvar(group)
D = 8×5

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

Первые два столбца D представляют наблюдения за машиной 1 и машиной 2, соответственно. Остальные столбцы представляют наблюдения за этими тремя операторами.

Создайте массив ячеек телефонных типов и числовой вектор кодов области.

phone = {'mobile';'landline';'mobile';'mobile';'mobile';'landline';'landline'};
codes = [802 802 603 603 802 603 802]';

Поскольку данные о коде области имеют два уровня (а не 802 уровня, соответствующие целым числам 1:802), преобразуйте codes в категориальный вектор.

newcodes = categorical(codes);

Объедините группирующие переменные phone и newcodes в массив ячеек group.

group = {phone,newcodes};

Создайте фиктивные переменные для групп в group.

D = dummyvar(group)
D = 7×4

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

Первые два столбца D соответствуют телефонным типам, и последние два столбца соответствуют кодам области.

Входные параметры

свернуть все

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

Если group является категориальным вектором, то группы и их порядок соответствуют, вывод функции categories применился к group. Если group является числовым вектором, то dummyvar принимает, что группами и их порядком является 1:max(group). В этом отношении dummyvar обрабатывает числовую группирующую переменную по-другому по сравнению с grp2idx. Для получения информации о порядке групп в группирующих переменных смотрите Группирующие переменные.

Пример: [2 1 1 1 2 3 3 2]'

Пример: {Origin,Cylinders}

Типы данных: single | double | categorical | cell

Выходные аргументы

свернуть все

Фиктивные переменные, возвращенные как n-by-s числовая матрица, где n является количеством строк group и s, являются суммой количества уровней в каждом столбце group. Слева направо столбцы D являются фиктивными переменными, созданными из первого столбца group, сопровождаемого фиктивными переменными, созданными из второго столбца group, и так далее.

Типы данных: single | double

Советы

  • Используйте фиктивные переменные в регрессионном анализе и АНОВОЙ, чтобы указать на значения категориальных предикторов.

  • dummyvar обрабатывает значения NaN и неопределенные категориальные уровни в group как недостающие данные и возвращает значения NaN в D.

  • Если столбец из единиц введен в матричном D, то получившийся матричный X = [ones(size(D,1),1) D] имеет неполный ранг. Если group имеет несколько столбцов, то сам матричный D имеет неполный ранг, потому что фиктивные переменные, произведенные из любого столбца group всегда, суммируют к столбцу из единиц. Регрессия и вычисления АНОВОЙ часто решают эту проблему путем устранения одной фиктивной переменной (неявно установка коэффициентов для опущенных до нуля столбцов) от каждой группы фиктивных переменных, произведенных столбцом group.

  • Если group является числовым вектором с уровнями, которые не соответствуют точно целым числам 1:max(group), сначала преобразовывают данные в категориальный вектор при помощи categorical. Можно затем передать результат dummyvar. Для примера смотрите, Создают Фиктивные Переменные из Нескольких Группирующих переменных.

Расширенные возможности

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте