Gibt es eine Javascript-Bibliothek zur Verfügung Spearman and/or Pearson Korrelationen zu tun?Javascript-Bibliothek für Pearson und/oder Spearman Korrelationen
Antwort
Es gibt diese
http://stevegardner.net/2012/06/11/javascript-code-to-calculate-the-pearson-correlation-coefficient/
abgesehen davon, dass Sie könnten versuchen:
alternativ, wenn keiner von denen passen die Rechnung, und Sie wollen nicht zu einem selbst schreiben Sie können immer verwenden:
mit
http://www.gardenersown.co.uk/education/lectures/r/correl.htm
es zu tun.
Versuchen Sie folgendes:
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;
}
Also meine zwei Cent hier lohnt sich in der Sache - Pearson-Korrelation:
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]);
Ich benutzte das Spearson Projekt here auf Github. Ich habe es für Spearman Korrelation getestet und es gibt genaue Werte dafür.
Ich habe gerade die spearson.js
Datei in den Ordner /lib
des Repo heruntergeladen. Hier ist, wie es im Browser zu verwenden:
<script src="spearson.js"></script>
<script>
var x = [3, 4, 5];
var y = [.1, .2, .3];
var corr = spearson.correlation.spearman(x, y);
</script>
Ähnlich Sie die correlation.pearson
für die Pearson-Korrelation verwenden können.
Macht jStat Pearson oder Spearman? Ich sehe nur einen "Korrelationskoeffizienten", der in den Dokumenten erwähnt wird, aber nicht spezifisch für Pearson. – trusktr
@trusktr Es sieht so aus, als ob du recht hast, tut mir leid, dachte ich. –
Korrelationskoeffizient ist normalerweise der Pearson, nicht wahr? und Spearman ist nicht weniger als ein Pearson in den Reihen Ihrer Daten, richtig? – Myoch