Pustaka Javascript untuk korelasi Pearson dan/atau Spearman

Apakah ada perpustakaan Javascript yang tersedia untuk melakukan Spearman dan /atau korelasi Pearson?


person Chris Dutrow    schedule 08.04.2013    source sumber


Jawaban (5)


Ada ini

http://stevegardner.net/2012/06/11/javascript-code-to-calculate-the-pearson-correlation-coefisien/

selain itu Anda bisa mencoba:

http://www.jstat.org/download

alternatifnya, jika tidak ada satu pun yang sesuai dengan kebutuhan dan Anda tidak ingin menulisnya sendiri, Anda selalu dapat menggunakan:

http://www.rforge.net/Rserve/

dengan

http://www.gardenersown.co.uk/education/lectures/r/correl.htm

to do it.

person Mike H-R    schedule 08.04.2013
comment
Apakah jStat melakukan pearson atau spearman? Saya hanya melihat koefisien korelasi yang disebutkan dalam dokumen, tetapi tidak secara spesifik pada Pearson. - person trusktr; 14.04.2014
comment
@trusktr Sepertinya Anda benar, maaf, saya pikir benar. - person Mike H-R; 14.04.2014
comment
Koefisien korelasi biasanya Pearson, bukan? dan Spearman tidak lain adalah Pearson di peringkat data Anda, bukan? - person Myoch; 31.03.2016

Jadi, inilah nilai dua sen saya untuk masalah ini - korelasi Pearson:

const pcorr = (x, y) => {
  let sumX = 0,
    sumY = 0,
    sumXY = 0,
    sumX2 = 0,
    sumY2 = 0;
  const minLength = x.length = y.length = Math.min(x.length, y.length),
    reduce = (xi, idx) => {
      const yi = y[idx];
      sumX += xi;
      sumY += yi;
      sumXY += xi * yi;
      sumX2 += xi * xi;
      sumY2 += yi * yi;
    }
  x.forEach(reduce);
  return (minLength * sumXY - sumX * sumY) / Math.sqrt((minLength * sumX2 - sumX * sumX) * (minLength * sumY2 - sumY * sumY));
};
let arrX = [20, 54, 54, 65, 45];
let arrY = [22, 11, 21, 34, 87];
let R = pcorr(arrX, arrY);
console.log('arrX', arrX, 'arrY', arrY, 'R', R);

person didinko    schedule 11.12.2016

Saya menggunakan proyek Spearson di sini di Github. Saya telah mengujinya untuk korelasi Spearman dan memberikan nilai yang akurat untuk itu.

Saya baru saja mengunduh file spearson.js di folder /lib repo. Berikut cara menggunakannya di browser:

<script src="spearson.js"></script>

<script>
    var x = [3, 4, 5];
    var y = [.1, .2, .3];
    var corr = spearson.correlation.spearman(x, y);
</script>

Demikian pula, Anda dapat menggunakan correlation.pearson untuk korelasi Pearson.

person Ali    schedule 26.12.2016

Coba ini:

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;
}
person Carles Martí    schedule 30.03.2016

Setelah bertahun-tahun sejak pertanyaan awal diajukan, saya merekomendasikan perpustakaan hebat ini yang sederhana namun masih terdokumentasi dengan baik: statistics.js

Di antara banyak metode lainnya, ia memiliki correlationCoefisien() yang menghitung Koefisien korelasi Pearson dari dua variabel dan spearmansRho() yang menghasilkan koefisien korelasi peringkat Spearman.

person hypers    schedule 17.02.2021