11

Z スコアをパーセンタイルに変換する必要があります。使用できるjStat ライブラリの関数への参照 (jstat.ztest) を見つけましたが、現在利用可能なバージョンのライブラリにはそのような関数がないため、jStat のドキュメントは利用可能なライブラリよりも進んでいるようです。

GitHubには、 ztest 関数が含まれている可能性のある最新バージョンのライブラリがあると思いますが、私は Linux の初心者であり、指示からライブラリを構築する方法を理解できませんでした。私は一日のほとんどを git bash と cygwin について学び、ライブラリを構築しようとしました。ここで質問したほうがいいと最終的に判断しました。

それで、誰かが私が必要とすることをするjavascript関数に私を向けることができますか? または、ztest 関数が含まれている jStat ライブラリのビルド バージョンを教えてもらえますか?

4

4 に答える 4

19

これはオンラインのフォーラムで見つけたもので、魅力的に機能します。

function GetZPercent(z) 
  {
    //z == number of standard deviations from the mean

    //if z is greater than 6.5 standard deviations from the mean
    //the number of significant digits will be outside of a reasonable 
    //range
    if ( z < -6.5)
      return 0.0;
    if( z > 6.5) 
      return 1.0;

    var factK = 1;
    var sum = 0;
    var term = 1;
    var k = 0;
    var loopStop = Math.exp(-23);
    while(Math.abs(term) > loopStop) 
    {
      term = .3989422804 * Math.pow(-1,k) * Math.pow(z,k) / (2 * k + 1) / Math.pow(2,k) * Math.pow(z,k+1) / factK;
      sum += term;
      k++;
      factK *= k;

    }
    sum += 0.5;

    return sum;
  }

また、1 つの関数のためだけに大きなライブラリを含める必要はありません。

于 2013-04-24T16:31:25.497 に答える
2

両側t検定のポールの回答のコードを編集するだけです

function GetZPercent(z) 
{
//z == number of standard deviations from the mean

//if z is greater than 6.5 standard deviations from the mean
//the number of significant digits will be outside of a reasonable 
//range
if ( z < -6.5)
  return 0.0;
if( z > 6.5) 
  return 1.0;

if (z > 0) { z = -z;}

var factK = 1;
var sum = 0;
var term = 1;
var k = 0;
var loopStop = Math.exp(-23);
while(Math.abs(term) > loopStop) 
{
  term = .3989422804 * Math.pow(-1,k) * Math.pow(z,k) / (2 * k + 1) / Math.pow(2,k) * Math.pow(z,k+1) / factK;
  sum += term;
  k++;
  factK *= k;

}
sum += 0.5;

return (2*sum);
}
于 2015-05-25T10:08:40.987 に答える