2013-04-24 7 views
8

私はzスコアを百分位数に変換する必要があります。私はfunction in the jStat library(jstat.ztest)を使うことができましたが、currently available version of the libraryにそのような機能がないので、jStatのドキュメントは利用可能なライブラリより先にあるようです。統計的なjavascript関数を使ってz値からp値を返すこと

私はmore recent version of the library on GitHubがあると思いますが、これにはztest関数が含まれているかもしれませんが、私はLinuxの初心者であり、指示からライブラリを構築する方法を理解できませんでした。私はライブラリの構築を試みるgit bashとcygwinについて学び、ほとんどの時間を費やしました。私は最終的に私はここで尋ねる方が良いと決めた。

だから、誰かが私に必要なものを行うjavascript関数に向けて私を指摘できますか? また、ztest関数を組み込んだjStatライブラリのビルド版に向けて私を指摘できますか?

答えて

15

私はフォーラムでこれを見つけました。これは魅力的です。

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つの機能のためだけに大きなライブラリを含める必要はありません。

+0

ためのポールの答えからコードを編集します。 – Yatrix

+0

チップ@yatrixありがとう。私は自分の答えを受け入れることができるようになるには、2日待たなければならないと言います。 – burgerB

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); 
} 
+1

if文をこの関数の先頭に置く必要があります。そうでなければ、z> 6.5のとき1を返します。これはあなたのケースでは0になります。 – Ire

関連する問題