dummyvar

创建虚拟变量

描述

例子

D= dummyvar (集团)返回一个矩阵D包含0和1,其列是分组变量集团。每一列的集团是单个分组变量,其值指示类别级别。的行集团表示所有变量的观察值。

例子

全部折叠

创建指定颜色类型的分类数据的列向量。

颜色= {“红色”;“蓝”;“绿色”;“红色”;“绿色”;“蓝”};颜色=分类(颜色);

为每种颜色类型创建虚拟变量。

D = dummyvar(颜色)
D =6×30 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0

列在D对应于中的级别颜色。例如,的第一列dummyvar对应于第一层,“蓝”,在颜色

显示类别级别颜色

类别(颜色)
ans =3 x1细胞{'Blue'} {'Green'} {'Red'}

创建一个矩阵集团包含两台机器和三个操作员对一个进程的影响的数据。

机器= [1 1 1 1 2 2 2];运算符= [1 2 3 1 2 3 1 2]';组=[机器操作员]
组=8×21 1 1 2 1 3 1 1 2 2 2 2 2 2 1 2

创建数据的虚拟变量集团

D = dummyvar(集团)
D =8×51 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的观察值。其余的列表示三个操作符的观察值。

创建电话类型的单元数组和区域代码的数字向量。

电话= {“移动”;“固定电话”;“移动”;“移动”;“移动”;“固定电话”;“固定电话”};代码= [802 802 603 603 803 802 603 802]';

因为区号数据有两个级别(而不是802级别对应的整数)1:802),将代码到一个分类向量。

newcodes =分类(编码);

结合电话newcodes将变量分组到单元格数组中集团

组={电话,newcodes};

为其中的组创建虚拟变量集团

D = dummyvar(集团)
D =7×41 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对应于电话类型,最后两列对应于区号。

输入参数

全部折叠

分组变量,指定为表示单个变量内的级别的正整数向量或分类列向量,包含一个或多个单元格数组分组变量,或表示多个变量内的级别的正整数矩阵。

如果集团是一个分类向量,那么组和它们的顺序匹配的输出类别函数应用到集团。如果集团是一个数字向量,那么dummyvar假设组和它们的顺序是1:马克斯(集团)。在这方面,dummyvar区别对待数字分组变量grp2idx。有关分组变量内组的顺序的信息,请参见分组变量

例子:[2 1 1 1 2 3 3 2]'

例子:{起源、汽缸}

数据类型:||分类|细胞

输出参数

全部折叠

虚拟变量,返回为n——- - - - - -年代数字矩阵,n的行数是多少集团年代的每一列的层数的和吗集团。从左到右,列D是否从的第一列创建虚拟变量集团的第二列中创建的虚拟变量集团等等。

数据类型:|

提示

  • 在回归分析和方差分析中使用虚拟变量来表示分类预测因子的值。

  • dummyvar对待值和未定义的分类级别集团作为丢失的数据和返回D

  • 如果矩阵中引入一列1D,则得到的矩阵X = [one (size(D,1),1) D]排名是有缺陷的。如果集团有多个列,那么矩阵呢D本身是秩亏的,因为从任意列生成的虚拟变量集团总是对一列的1求和。回归和方差分析计算通常通过从每组由列生成的虚拟变量中消除一个虚拟变量(隐式地将删除列的系数设置为零)来解决这个问题集团

  • 如果集团数值向量的级别是否与整数不完全对应1:马克斯(集团),首先使用以下命令将数据转换为分类向量分类。然后可以将结果传递给dummyvar。例如,参见从多个分组变量创建虚拟变量

扩展功能

之前介绍过的R2006a