// Written by Nikhil Gopal
// http://www.nikhilgopal.com
function TwoCellCalculation(k,j) {
return(k/(k+j));
}
function ConfusionMatrix(a,b,c,d) {
this.n = a+b+c+d;
this.true_positives = a;
this.false_positives = b;
this.false_negatives = c;
this.true_negatives = d;
this.sensitivity = TwoCellCalculation(a,c);
this.specificity = TwoCellCalculation(b,d);
this.ppv = TwoCellCalculation(a,b);
this.npv = TwoCellCalculation(c,d);
this.positive_likelihood = this.sensitivity / (1-this.specificity);
this.negative_likelihood = 1/this.positive_likelihood;
this.prevalence = (a+c)/(a+b+c+d);
this.fpr = 1 - this.specificity;
this.fdr = 1 - this.ppv;
this.fnr = this.false_negatives / (this.false_negatives+this.true_positives);
this.mcc = ((this.true_positives*this.true_negatives)-(this.false_positives*this.false_negatives))/Math.sqrt((this.true_positives+this.false_positives)*(this.true_positives+this.false_negatives)*(this.true_negatives+this.false_positives)*(this.true_negatives+this.false_negatives));
this.acc = (this.true_positives+this.true_negatives)/this.n;
this.f1 = 2*(this.true_positives)/(2*this.true_positives+this.false_positives+this.false_negatives);
this.informedness = this.sensitivity+this.specificity-1;
this.markedness = this.ppv + this.npv - 1;
return(this);
}
var A = ConfusionMatrix(400,430,230,740);
$('sensitivity').html( A.ppv );