分类和非分类变量的相关矩阵(Matlab)



在Matlab中,我有一个表格中的数据集:

SCHOOL  SEX  AGE  ADDRESS  STATUS  JOB  GUARDIAN  HEALTH  GRADE
UR      F    12   U        FT      TEA  MOTHER    1       11
GB      M    22   R        FT      SER  FATHER    5       15
GB      M    12   R        FT      OTH  FATHER    3       12
GB      M    11   R        PT      POL  FATHER    2       10

有些变量是二进制的,有些是分类的,有些则是数值的。有可能从中提取一个相关矩阵,其中包含变量之间的相关系数吗?我尝试使用计量经济学工具箱中的corrcoefcorrplot,但我遇到了诸如"观测数据必须转换为double类型"之类的错误。

有人会了解如何做到这一点吗?非常感谢。

如上所述,您首先需要将分类变量和二进制变量转换为数值。所以,如果你的数据在一个表(T(中,做一些类似的事情:

T.SCHOOL = categorical(T.SCHOOL);

在这里的Matlab帮助中可以找到一个工作示例,他们使用患者数据集,该数据集似乎与您的数据相似。

然后,您可以将分类列转换为double:

T.SCHOOL = double(T.SCHOOL);

但要小心使用double,因为它将分类变量转换为任意数字,请参阅matlab论坛。

还要注意的是,如果你只是将它们转换为数字,那么你就是在将顺序引入分类变量中。因此,例如,如果将JOB的"TEA"、"SER"one_answers"OTH"转换为1、2、3等,则会使变量为序数TEA’则<'等等。

如果你想避免这种情况,你可以将分类列重新编码为"二进制"伪变量:

dummy_schools = dummyvar(T.SCHOOL);

它返回一个大小为nrows x unique(T.SCHOOL(的矩阵。

然后是整个讨论,计算分类变量的相关性是否有用。就像这里。

我希望这能有所帮助:(

我认为您需要使所有数据都是数字的,即将非数字列更改/编码为例如:

SCHOOL  SEX  AGE  ADDRESS  STATUS  JOB  GUARDIAN  HEALTH  GRADE
1       1    12   1        1       1    1         1       11
2       2    22   2        1       2    2         5       15
2       2    12   2        1       3    2         3       12
2       2    11   2        2       4    2         2       10

然后进行相关。

相关内容

  • 没有找到相关文章

最新更新