Matlab 在枚举类型数据中查找相关性

Matlab 在枚举类型数据中查找相关性,matlab,correlation,pearson,Matlab,Correlation,Pearson,我有以下包含国家信息的数据集 5,1,648,16,10,2,0,3,5,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0, 3,1,29,3,6,6,0,0,3,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0, 4,1,2388,20,8,2,2,0,3,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0, ... 每行的第六列表示该国的主要宗教:0是天主教,1是其他基督教,2是穆斯林,等等。其他一些数据是关于它们所包含的国家符号

我有以下包含国家信息的数据集

 5,1,648,16,10,2,0,3,5,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,
 3,1,29,3,6,6,0,0,3,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,
 4,1,2388,20,8,2,2,0,3,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,
 ...
每行的第六列表示该国的主要宗教:0是天主教,1是其他基督教,2是穆斯林,等等。其他一些数据是关于它们所包含的国家符号的国旗是否有不同的颜色,等等

可以找到数据的描述。我已经删除了字符串数据列,因此它与显示的信息不完全一致


我的问题是,我想用协方差矩阵和皮尔逊相关来看看,例如,国旗上有红色这一事实是否能说明该国的宗教比其他宗教更有可能成为某种宗教。但是,由于列举了宗教信仰,我对如何处理这个问题有点迷茫。

您的问题是,尽管您的数据是有序的,但这个顺序是任意的。“穆斯林”(枚举值=1)与“印度教”(枚举值=3)之间的“距离”不是2

解决此问题最直接的方法是将枚举值转换为二进制指示符向量:

假设你有

enum {
   Catholic = 0
   Protestant,
   Muslim,
   Jewish,
   Hindu,
   ...
   NumOfRel };
将enum val的single条目替换为长度为
numfrel
的二进制向量,除适当位置的单个
1
外,其他位置均为零:

对于新教徒条目,您将有以下二进制向量:

[ 0 1 0 0 ... ]
对于犹太人:

[ 0 0 0 1 0 ... ]
等等


这样,不同宗教之间的“距离”总是1

您的问题是,尽管您的数据是有序的,但这种顺序是任意的。“穆斯林”(枚举值=1)与“印度教”(枚举值=3)之间的“距离”不是2

解决此问题最直接的方法是将枚举值转换为二进制指示符向量:

假设你有

enum {
   Catholic = 0
   Protestant,
   Muslim,
   Jewish,
   Hindu,
   ...
   NumOfRel };
将enum val的single条目替换为长度为
numfrel
的二进制向量,除适当位置的单个
1
外,其他位置均为零:

对于新教徒条目,您将有以下二进制向量:

[ 0 1 0 0 ... ]
对于犹太人:

[ 0 0 0 1 0 ... ]
等等


这样,不同宗教之间的“距离”总是1

首先想到的是得到宗教与国旗颜色的柱状图计数(反之亦然),然后对它们进行分析,找出相关性。此外,旗帜的颜色是否存储在固定列中?如果没有,就很难说出这些数字的含义。是的,每一列都有具体的含义,例如每一行的第10列告诉我们国旗上是否有红色。首先想到的是根据国旗颜色得到宗教的柱状图计数(反之亦然),然后分析它们,找出相关性。此外,旗帜的颜色是否存储在固定列中?如果没有,很难说出这些数字的含义。是的,每列都有具体的含义,例如,每行的第10列告诉我们国旗上是否有红色。是的,谢谢,这就是我害怕的,最后这样做了,谢谢你的回答。是的,谢谢,这就是我害怕的,最后这样做了,谢谢你的回答。