dummyvar

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

Синтаксис

Описание

пример

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