如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?在多元分析报告中,斯皮尔曼相关性结果以表格形式呈现;能否将其转换为矩阵格式,例如皮尔逊相关矩阵?
基础数据分析与建模内容组织回复:如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?嗨@frankderuyck ,
在多元平台的表格中获得斯皮尔曼相关性结果后,您可以右键单击该表格,选择“生成数据表”,然后使用图形生成器在这个新数据表上重现您通常用于皮尔逊相关矩阵的那种图形:

您还可以使用 Tabulate 平台基于此数据表生成表格:

由于皮尔逊相关系数是对称的,因此某些变量对之间可能会出现缺失值(例如,如果 A 和 B 之间存在相关系数,则 B 和 A 之间的相关系数不会显示,但实际上它们相同)。为了获得美观的图表或表格,您可能需要添加“值顺序”列属性,以便对不同的变量进行排序。
使用 JSL 代码从表格生成图表:
Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :by Variable ), Y( :Variable ), Color( :Spearman ρ ) ),
Elements( Heatmap( X, Y, Legend( 7 ), Label( "Label by Value" ) ) ),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient( {Scale Values( [-1 0 1] )} )},
Item ID( "Spearman ρ", 1 )
)
)}
),
Dispatch( {}, "graph title", TextEditBox,
{Set Text( "Variable by Variable Spearman correlation matrix" )}
)
)
);
对于从 Tabulate 生成的表格(您可以使用 Tabulate 的“生成数据表”选项中的红色三角形选项将其转换为 JMP 数据表):
Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Grouping Columns( :by Variable ),
Analysis Columns( :Spearman ρ ),
Statistics( Mean )
),
Row Table( Grouping Columns( :Variable ) )
)
);
请查看附件,其中包含本示例使用的数据表和分析。
希望这个回答对您有所帮助。
回复:如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?谢谢 Victor,这个图表构建器选项看起来很有意思!
回复:如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?看来红色三角形下没有斯皮尔曼矩阵选项?
回复:如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?当我运行脚本处理皮尔曼相关系数表时,得到的结果非常混乱……?而且制表脚本也无法生成类似皮尔逊相关系数的矩阵?由于变量众多,对值进行排序并不容易。皮尔逊相关系数矩阵可以完美生成,为什么斯皮尔曼相关系数矩阵不行呢?

回复:如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?附件为矛兵等级表
回复:如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?嗨,弗兰克,
是的,变量的顺序对于获得漂亮的三角形混淆矩阵非常重要。
我利用你的数据集找到了解决方案:
- 右键单击“变量”列,新建公式列>分组依据。
- 然后,右键单击“变量”列,选择“新建公式列”>“字符”>“排名(反向排序)” 。然后重复步骤 1,使“变量”不再是分组依据变量。
- 对“按变量”列执行相同的步骤。
- 将这两个新列的建模类型更改为有序列。
- 然后您可以使用图表生成器,放置“变量”、“按变量”和“斯皮尔曼”列,并在“变量”轴上方添加“反向排名[变量][变量]”列,在“按变量”轴上方添加“反向排名[按变量][按变量]”列。
然后你应该会得到漂亮的斯皮尔曼相关系数矩阵:

或者,在创建排名列之后,您可以直接使用此图表构建器脚本:
Graph Builder(
Size( 733, 664 ),
Show Control Panel( 0 ),
Variables(
X( :"Reverse Rank[by Variable][by Variable]"n ),
Y( :"Reverse Rank[Variable][Variable]"n ),
Color( :Spearman ρ )
),
Elements( Heatmap( X, Y, Legend( 22 ), Label( "Label by Value" ) ) ),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
22,
Properties(
0,
{gradient( {Scale Values( [-1 0 1] )} )},
Item ID( "Spearman ρ", 1 )
)
)}
),
Dispatch( {}, "graph title", TextEditBox,
{Set Text( "Correlation matrix Spearman" )}
)
)
);
对于“制表”选项,操作比较简单,只需选中“按分组列数排序”选项即可获得漂亮的矩阵:

附件中包含您的数据集,以及已添加的两列数据和可视化图表。
希望这个回答对您有所帮助。
回复:如何将斯皮尔曼相关系数表转换为类似皮尔逊相关系数的矩阵格式?太好了,谢谢你,维克多!