모든,
일부 데이터의 신뢰 구간을 계산하려고합니다. 나는 다음을 사용하여 이것을 달성 할 수 있음을 알고 있습니다.
// 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 그룹 또는 변수가 없습니다. 위의 방법을 권장합니다.
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]);