Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?Dans le rapport d'analyse multivariée, les résultats de la corrélation de Spearman sont présentés dans un tableau ; puis-je les obtenir sous forme de matrice, comme la matrice de corrélation de Pearson ?
Analyse et modélisation de données de baseOrganisation du contenuRe: Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?Salut @frankderuyck ,
Une fois les résultats de la corrélation de Spearman obtenus dans le tableau de la plateforme multivariée, vous pouvez cliquer avec le bouton droit sur le tableau, sélectionner « Créer un tableau de données », puis utiliser le générateur de graphiques sur ce nouveau tableau de données pour reproduire le type de graphique auquel vous êtes habitué avec la matrice de corrélation de Pearson :

Vous pouvez également générer un tableau avec la plateforme Tabulate à partir de cette table de données :

Comme la corrélation de Pearson est symétrique, il est possible que certaines valeurs soient manquantes pour des paires de variables (si la corrélation entre A et B est connue, la corrélation entre B et A n'est pas affichée, bien qu'elle soit identique). Pour obtenir des graphiques ou des tableaux plus esthétiques, il peut être nécessaire d'ajouter la propriété « Ordre des valeurs » à la colonne afin de trier les différentes variables.
Code JSL pour générer un graphique à partir du tableau :
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" )}
)
)
);
Et pour les tableaux issus de Tabulate (que vous pouvez transformer en tableau de données JMP avec l'option triangle rouge de Tabulate "Créer en tableau de données") :
Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Grouping Columns( :by Variable ),
Analysis Columns( :Spearman ρ ),
Statistics( Mean )
),
Row Table( Grouping Columns( :Variable ) )
)
);
Vous trouverez ci-joint le tableau de données et l'analyse utilisés pour cet exemple.
J'espère que cette réponse vous aidera.
Re: Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?Merci Victor, cette option de création de graphiques a l'air intéressante !
Re: Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?J'imagine qu'il n'y a pas d'option de matrice Spearman sous un triangle rouge ?
Re: Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?Lorsque j'exécute les scripts sur le tableau de Spearman, j'obtiens un résultat très confus… Le script de tabulation ne génère pas non plus une matrice de corrélation de type Pearson. Le classement des valeurs est complexe car j'ai de nombreuses variables. La matrice de corrélation de Pearson est parfaite ; pourquoi est-ce impossible avec Spearman ?

Re: Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?Vous trouverez ci-joint le tableau des grades des lanciers.
Re: Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?Salut Franck,
Oui, l'ordre des variables est très important pour obtenir une bonne matrice de confusion triangulaire.
J'ai trouvé une solution avec votre jeu de données :
- Cliquez avec le bouton droit sur la colonne « Variable », Nouvelle colonne de formule > Grouper par .
- Ensuite, cliquez avec le bouton droit sur la colonne « Variable », puis sélectionnez Nouvelle colonne de formule > Caractère > Rang (ordre inverse) . Répétez ensuite l'action 1 afin que « Variable » ne soit plus la variable GroupBy.
- Répétez les mêmes étapes pour la colonne « Par variable ».
- Modifiez le type de modélisation des deux nouvelles colonnes en Ordinal.
- Vous pouvez ensuite utiliser Graph Builder, placer les colonnes Variable, By Variables et Spearman, puis ajouter la colonne « Reverse Rank[Variable][Variable] » au-dessus de l’axe « Variable » et la colonne « Reverse Rank[by Variable][by Variable] » au-dessus de l’axe « By variable ».
Vous devriez alors obtenir une belle matrice de corrélation de Spearman :

Ou, une fois les colonnes de classement créées, vous pouvez utiliser directement ce script 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" )}
)
)
);
Pour l'option Tabulate, c'est plus simple : il suffit de cocher l'option « Trier par nombre de colonnes de regroupement » pour obtenir une matrice correcte :

Vous trouverez ci-joint votre jeu de données avec les deux colonnes et la visualisation ajoutée.
J'espère que cette réponse vous aidera.
Re: Comment transformer un tableau de corrélation de Spearman en un format matriciel comme celui de Pearson ?Excellent, merci Victor !