Có thư viện Javascript nào để thực hiện tương tác Spearman and/or Pearson không?Thư viện Javascript cho Pearson và/hoặc mối tương quan Spearman
Trả lời
Có này
http://stevegardner.net/2012/06/11/javascript-code-to-calculate-the-pearson-correlation-coefficient/
ngoài mà bạn có thể thử:
cách khác nếu không ai trong số những người phù hợp với những hóa đơn và bạn không muốn viết một mình bạn luôn có thể sử dụng:
với
http://www.gardenersown.co.uk/education/lectures/r/correl.htm
để làm điều đó.
Hãy thử điều này:
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;
}
Vì vậy, đây là hai đồng xu tôi có giá trị về vấn đề này - Pearson tương quan:
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));
};
pcorr([20, 54, 54, 65, 45], [22, 11, 21, 34, 87]);
Tôi đã từng dự án Spearson here trên Github. Tôi đã thử nghiệm nó cho tương quan Spearman và nó mang lại giá trị chính xác cho điều đó.
Tôi vừa tải xuống tệp spearson.js
trong thư mục /lib
của repo. Dưới đây là làm thế nào để sử dụng nó trong trình duyệt:
<script src="spearson.js"></script>
<script>
var x = [3, 4, 5];
var y = [.1, .2, .3];
var corr = spearson.correlation.spearman(x, y);
</script>
Tương tự, bạn có thể sử dụng correlation.pearson
cho tương quan Pearson.
JStat có làm pearson hoặc spearman không? Tôi chỉ thấy một "hệ số tương quan" được đề cập trong tài liệu, chứ không phải là pearson cụ thể. – trusktr
@trusktr Có vẻ như bạn nói đúng, xin lỗi, tôi đã nghĩ như vậy. –
Hệ số tương quan thường là Pearson, phải không? và Spearman không kém gì Pearson trên hàng ngũ dữ liệu của bạn, đúng không? – Myoch