Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Salut,
J'ai écrit un petit programme qui calcule et enregistre les coefficients de Pearson directement dans une table JMP.
Pouvez-vous nous aider à l'adapter pour enregistrer les coefficients de Spearman de la même manière ? L'option "Spearman" n'a aucun effet sur le stockage... une des nombreuses options que j'ai essayées jusqu'à présent...
Merci
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
dt_2= report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
dt_2 << save("C:\....\Spearman.jmp") ;Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Fantastique.
Voici quelques conseils pour les utilisateurs intéressés :
JMP calcule les corrélations uniquement pour les champs conservés. Conséquences des colonnes de caractères conservées accidentellement :
(1) différentes structures : la matrice de Spearman conserve les colonnes de caractères ; La matrice de Pearson les filtre automatiquement
(2) Valeurs manquantes : Spearman ne calcule pas les coefficients mais place les valeurs manquantes
(3) Ordre des colonnes : Pearson : comme dans l'ensemble de données d'origine, Spearman : alphabétique.
Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Je pense que ceci devrait le faire :
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
colnameslist=dt<<GET column="" names=""></GET>Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)dt <SPAN class="token operator">=</SPAN> <SPAN class="token function">Open</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"$SAMPLE_DATA/Body Measurements.jmp"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
J'ai une meilleure idée. Pouvez-vous peut-être généraliser votre approche à toutes les colonnes de l'ensemble de données « Mesures corporelles » (voir lien ci-dessus) ?
Si nous voulons être audacieux, nous pourrions prétendre que la première colonne est un identifiant que nous voulons ignorer... Ce serait la cerise sur le gâteau...
Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Serait-il possible de généraliser mon script, ou certaines parties de celui-ci, afin qu'il puisse être utilisé avec vos ensembles de données ?Si vous pouvez publier l'un de vos ensembles de données après avoir anonymisé les données (Tableau -> Anonymiser) et créer le script multivarié, peut-être pouvons-nous trouver une solution ?
Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Quoi qu'il en soit : oui, c'est la matrice carrée. Vous avez fait un travail impressionnant, sérieusement.
D'un point de vue technique : cela ne peut pas fonctionner pour moi : j'ai besoin de ces matrices de Spearman pour plusieurs ensembles de données avec des centaines de champs.
Je ne peux tout simplement pas passer manuellement du triangulaire au carré à chaque fois.Je dois penser à autre chose.
@HadleyMyers a écrit:
Salut Agian,
Cela a demandé un peu de manipulation, mais voyez si vous pouvez faire en sorte que cela fonctionne pour vous :
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
dt_spearman=Report( dt_2 )
[Outline Box( "Nonparametric: Spearman's ρ" )][Table Box( 1 )] <<
Make Into Data Table;
variables={"Mass","Fore","Bicep","Chest"};
For(i=1,i<=4,i++,
dt_spearman<<ADD rows=""></ADD>
Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Salut Agian,
Cela a demandé un peu de manipulation, mais voyez si vous pouvez faire en sorte que cela fonctionne pour vous :
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
dt_spearman=Report( dt_2 )
[Outline Box( "Nonparametric: Spearman's ρ" )][Table Box( 1 )] <<
Make Into Data Table;
variables={"Mass","Fore","Bicep","Chest"};
For(i=1,i<=4,i++,
dt_spearman<<ADD rows=""></ADD>Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Nous nous rapprochons. Je suis heureux d'avoir découvert les options "Outline Box".
Malheureusement, la forme de la matrice de sortie est "triangulaire", et non "carrée" (comme nécessaire ; les 1,0 "diagonaux" manquent également à cause de cela).
Est-ce facile d'y arriver ?
Re : Comment enregistrer les coefficients de corrélation de Spearman directement dans la table de données JMP (script, JSL)Salut,
Est-ce que ça le fait ?
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
Report( dt_2 )
[Outline Box( "Nonparametric: Spearman's ρ" )][Table Box( 1 )] <<
Make Into Data Table;