Tout,
Je cherche à calculer des intervalles de confiance de certaines données. Je suis conscient qu'il est possible d'y parvenir en utilisant ce qui suit:
// Gets me what I want
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Obj = dt << Distribution( Column( :Age, :Weight ) );
Obj << Confidence Interval(0.95);
// How to achieve using matrix
Mat = dt << Get As Matrix;
Obj = Distribution(Mat[0,1]) << Confidence Interval(0.95);
Ce qui précède devient particulièrement difficile si je voulais continuer à travailler par groupes, supposons si je devais les regrouper par âge? Toute orientation est appréciée
Je ne ferais pas de manipulation matricielle, je ferais quelque chose comme ça,
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Obj = dt << Distribution( Column( :height, :weight ), by(:sex), "Invisible" );
Obj << Confidence Interval(0.95);
Report(Obj[1])["Confidence Intervals"][TableBox(1)] << make combined data table;
Obj << close window;
Vous pouvez faire des fonctions matricielles, mais il faudrait trouver toutes les catégories uniques par groupe (âge ou sexe), puis indexer les matrices. Il existe une fonction de matrice CDF qui pourrait être intéressante. Le script ci-dessous est un FYI et n'est pas recommandé, mais voici les formules. La matrice résultante n'a pas le par groupe ou quelle variable. Je recommande la méthode ci-dessus.
Mat = dt << Get As Matrix;
//Obj = Distribution(Mat[0,1]) << Confidence Interval(0.95);
/* CDF function */
/* only one column at a time get weight*/
{Quant, CumProb} = CDF( Mat[0,3] );
mxb = V Mean(Mat);
msd = V Std(Mat);
mdf = V Sum( !IsMissing(Mat) ) -1;
xb_lci = mxb - msd:/sqrt(mdf+1) :* tquantile(0.975,mdf);
xb_uci = mxb + msd:/sqrt(mdf+1) :* tquantile(0.975,mdf);
sd_lci = msd :* sqrt( mdf :/ ChiSquareQuantile(0.975,mdf));
sd_uci = msd :* sqrt( mdf :/ ChiSquareQuantile(0.025, mdf));
show(Quant, CumProb, mxb[3], msd[3], xb_lci[3], xb_uci[3], sd_lci[3], sd_uci[3]);