すべて、
いくつかのデータの信頼区間を計算しようとしています。私はこれを次のものを使って達成することが可能であることを知っています:
// 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);
グループでこれをさらに実行したい場合、上記は特に困難になります。年齢別にグループ化しなければならなかったとしましょう。任意のガイダンスは大歓迎です
私は行列の操作をしないでしょう、私はこのようなことをするでしょう、
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;
あなたは行列関数をすることができます、しかしそれはグループ(年齢または性別)によってすべてのユニークを見つけることを必要とするでしょう、そして行列を索引付けします。 興味があるかもしれないマトリックスCDF関数があります。 下記のスクリプトはFYIであり、推奨されていませんが、ここに式があります。結果の行列は、byグループまたはwhich変数を持ちません。上記の方法をお勧めします。
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]);