¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?En el informe de análisis multivariante, los resultados de la correlación de Spearman se presentan en una tabla; ¿puedo obtenerlos en formato de matriz, como la matriz de correlación de Pearson?
Análisis y modelado de datos básicosOrganización del contenidoRe: ¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?Hola @frankderuyck ,
Una vez obtenidos los resultados de la correlación de Spearman en la tabla de la plataforma Multivariante, puede hacer clic con el botón derecho en la tabla, seleccionar "Convertir en tabla de datos" y, a continuación, utilizar el Generador de gráficos en esta nueva tabla de datos para reproducir el tipo de gráfico al que está acostumbrado con la matriz de correlación de Pearson:

También puedes generar una tabla con la plataforma Tabulate a partir de esta tabla de datos:

Dado que la correlación de Pearson es simétrica, es posible que falten algunos valores para pares de variables (si existe un valor de correlación entre A y B, el valor entre B y A no se muestra, aunque sea el mismo). Para obtener gráficos o tablas con una apariencia adecuada, puede que sea necesario agregar la propiedad de columna "Orden de valores" para ordenar las diferentes variables.
Código JSL para generar el gráfico a partir de la tabla:
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" )}
)
)
);
Y para la tabla de Tabulate (que puede transformar en una tabla de datos JMP con la opción del triángulo rojo de Tabulate "Convertir en tabla de datos"):
Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Grouping Columns( :by Variable ),
Analysis Columns( :Spearman ρ ),
Statistics( Mean )
),
Row Table( Grouping Columns( :Variable ) )
)
);
Adjunto encontrará la tabla de datos y el análisis utilizados para este ejemplo.
Espero que esta respuesta te ayude.
Re: ¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?¡Gracias Víctor, esta opción de creación de gráficos parece interesante!
Re: ¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?¿Supongo que no existe la opción de matriz Spearman bajo un triángulo rojo?
Re: ¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?Al ejecutar los scripts en la tabla de Pearman, obtengo una imagen muy confusa. El script de tabulación no genera una matriz de correlación tipo Pearson. Ordenar los valores no es fácil, ya que tengo muchas variables. La matriz de correlación de Pearson es perfecta, ¿por qué no es posible con Spearman?

Re: ¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?Se adjunta la tabla de rangos de lanceros.
Re: ¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?Hola Franck,
Sí, el orden de las variables es muy importante para obtener una matriz de confusión triangular adecuada.
Encontré una solución con tu conjunto de datos:
- Haz clic con el botón derecho en la columna "Variable", Nueva columna de fórmula > Agrupar por .
- A continuación, haga clic con el botón derecho en la columna "Variable", seleccione Nueva columna de fórmula > Carácter > Rango (orden inverso) . Luego, repita la acción 1 para que "Variable" ya no sea la variable de Agrupación.
- Repita los mismos pasos para la columna "Por variable".
- Cambie el tipo de modelado de las dos nuevas columnas a Ordinal.
- Luego, puede usar el Generador de gráficos, colocar las columnas Variable, Por variables y Spearman, y agregar la columna "Rango inverso[Variable][Variable]" encima del eje "Variable", y la columna "Rango inverso[por variable][por variable]" encima del eje "Por variable".
Deberías obtener entonces la matriz de correlación de Spearman con un aspecto muy agradable:

O bien, una vez creadas las columnas de clasificación, puede utilizar directamente este script de Graph Builder:
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" )}
)
)
);
Para la opción Tabular, el proceso es más sencillo; basta con marcar la opción "Ordenar por número de columnas de agrupación" para obtener la matriz deseada:

Adjunto encontrará su conjunto de datos con las dos columnas y la visualización añadida.
Espero que esta respuesta te ayude.
Re: ¿Cómo transformar una tabla de correlación de Spearman en un formato matricial como el de Pearson?¡Excelente, gracias Víctor!