Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pearson和/或Spearman关联的Javascript库_Javascript_Statistics_Correlation - Fatal编程技术网

Pearson和/或Spearman关联的Javascript库

Pearson和/或Spearman关联的Javascript库,javascript,statistics,correlation,Javascript,Statistics,Correlation,是否有Javascript库可用于进行关联?有 除此之外,您还可以尝试: 或者,如果两者都不符合要求,并且您不想自己写一个,您可以始终使用: 与 要执行此操作。请尝试以下操作: function spearmanCorrelation(multiList, p1, p2){ N=multiList[p1].length; order=[]; sum=0; for(i=0;i<N;i++){ order.push([multiList

是否有Javascript库可用于进行关联?

除此之外,您还可以尝试:

或者,如果两者都不符合要求,并且您不想自己写一个,您可以始终使用:

要执行此操作。

请尝试以下操作:

function spearmanCorrelation(multiList, p1, p2){
    N=multiList[p1].length;
    order=[];
    sum=0;

    for(i=0;i<N;i++){
        order.push([multiList[p1][i], multiList[p2][i]]);
    }

    order.sort(function(a,b){
        return a[0]-b[0]
    });

    for(i=0;i<N;i++){
        order[i].push(i+1);
    }

    order.sort(function(a,b){
        return a[1]-b[1]
    });

    for(i=0;i<N;i++){
        order[i].push(i+1);
    }
    for(i=0;i<N;i++){
        sum+=Math.pow((order[i][2])-(order[i][3]), 2);

    }

    r=1-(6*sum/(N*(N*N-1)));

    return r;
}
功能相关性(多列表、p1、p2){
N=多列表[p1]。长度;
订单=[];
总和=0;

对于(i=0;i,这是我在这件事上的两个便士-皮尔逊相关性:

constpcorr=(x,y)=>{
设sumX=0,
sumY=0,
sumXY=0,
sumX2=0,
sumY2=0;
常量minLength=x.length=y.length=Math.min(x.length,y.length),
减少=(xi,idx)=>{
常数yi=y[idx];
SUXX+=席;
sumY+=yi;
SUXYX+ =席*易;
SUMX2+=席*席;
sumY2+=yi*yi;
}
x、 forEach(reduce);
返回(minLength*sumXY-sumX*sumY)/Math.sqrt((minLength*sumX2-sumX*sumX)*(minLength*sumY2-sumY*sumY));
};
设arrX=[20,54,54,65,45];
让arrY=[22,11,21,34,87];
设R=pcorr(arrX,arrY);

console.log('arrX',arrX,'arrY',arrY,'R',R);
我在Github上使用了Spearson项目。我对它进行了Spearman相关性测试,它给出了准确的值

我刚刚下载了repo的
/lib
文件夹中的
spearson.js
文件。以下是如何在浏览器中使用它:


var x=[3,4,5];
变量y=[.1,2,3];
var corr=spearson.correlation.spearman(x,y);

类似地,您可以使用
相关性。pearson
进行pearson相关性。

自最初的问题提出多年后,我推荐这一伟大的库,它虽然简单明了,但仍有很好的文档记录:


在许多其他方法中,它可以计算两个变量的皮尔逊相关系数,以及斯皮尔曼秩相关系数

jStat是皮尔逊还是斯皮尔曼?我只看到“相关系数”文件中提到了,但不是皮尔逊特别提到。@trusktr看起来你是对的,对不起,我想是的。相关系数通常是皮尔逊,不是吗?在你的数据排名中,皮尔曼就是皮尔逊,对吗?
<script>
    var x = [3, 4, 5];
    var y = [.1, .2, .3];
    var corr = spearson.correlation.spearman(x, y);
</script>