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

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