ไลบรารี Javascript สำหรับความสัมพันธ์ของ Pearson และ/หรือ Spearman

มีไลบรารี Javascript สำหรับการทำ Spearman และ /หรือความสัมพันธ์ของเพียร์สัน?


person Chris Dutrow    schedule 08.04.2013    source แหล่งที่มา


คำตอบ (5)


มีอันนี้

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

นอกจากนั้นคุณสามารถลอง:

http://www.jstat.org/download

หรือหากทั้งสองอย่างไม่เหมาะกับใบเสร็จและคุณไม่ต้องการเขียนด้วยตัวเอง คุณสามารถใช้:

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

กับ

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

to do it.

person Mike H-R    schedule 08.04.2013
comment
jStat ทำ pearson หรือ spearman หรือไม่? ฉันเห็นเฉพาะค่าสัมประสิทธิ์สหสัมพันธ์ที่กล่าวถึงในเอกสาร แต่ไม่ใช่เพียร์สันโดยเฉพาะ - person trusktr; 14.04.2014
comment
@trusktr ดูเหมือนว่าคุณพูดถูก ขอโทษ ฉันคิดว่ามันเป็นเช่นนั้น - person Mike H-R; 14.04.2014
comment
ค่าสัมประสิทธิ์สหสัมพันธ์มักจะเป็นเพียร์สันใช่ไหม และสเปียร์แมนก็ไม่น้อยไปกว่าเพียร์สันในการจัดอันดับข้อมูลของคุณใช่ไหม? - person Myoch; 31.03.2016

นี่คือสองเพนนีของฉันที่คุ้มค่าในเรื่องนี้ - ความสัมพันธ์ของเพียร์สัน:

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

ฉันใช้โครงการ Spearson ที่นี่ บน Github ฉันได้ทดสอบความสัมพันธ์ของสเปียร์แมนแล้ว และมันให้ค่าที่แม่นยำสำหรับสิ่งนั้น

ฉันเพิ่งดาวน์โหลดไฟล์ spearson.js ในโฟลเดอร์ /lib ของ repo วิธีการใช้งานในเบราว์เซอร์มีดังนี้:

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

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

ในทำนองเดียวกัน คุณสามารถใช้ correlation.pearson สำหรับความสัมพันธ์แบบ Pearson ได้

person Ali    schedule 26.12.2016

ลองสิ่งนี้:

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

หลังจากถามคำถามเริ่มแรกมานานหลายปี ฉันขอแนะนำห้องสมุดที่ยอดเยี่ยมนี้ซึ่งตรงไปตรงมาแต่ยังคงมีการบันทึกไว้อย่างดี: statistics.js

ในบรรดาวิธีการอื่นๆ มากมาย มันมี correlationCoefficient() ซึ่งคำนวณ ค่าสัมประสิทธิ์สหสัมพันธ์ของเพียร์สันของตัวแปรสองตัวและ spearmansRho() ซึ่ง สัมประสิทธิ์สหสัมพันธ์อันดับของสเปียร์แมน

person hypers    schedule 17.02.2021