Alles,
Ich suche nach Vertrauensintervallen einiger Daten. Mir ist bewusst, dass dies durch folgende Maßnahmen erreicht werden kann:
// 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);
Das obige wird besonders schwierig, wenn ich dies weiter in Gruppen durchführen wollte. Nehmen wir an, wenn ich nach Alter gruppieren müsste? Jede Anleitung wird geschätzt
Ich würde keine Matrixmanipulation machen, ich würde so etwas tun,
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;
Sie können Matrixfunktionen ausführen, es ist jedoch erforderlich, alle eindeutigen Gruppierungen (Alter oder Geschlecht) zu finden und dann die Matrizen zu indizieren. Es gibt eine Matrix-CDF-Funktion, die möglicherweise von Interesse ist. Das folgende Skript ist ein FYI und wird nicht empfohlen, aber hier sind die Formeln. Die resultierende Matrix hat keine by-Gruppen oder welche Variable. Ich empfehle die Methode oben.
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]);