Improved outlier calculation

This commit is contained in:
nise.moe 2024-03-06 11:51:53 +01:00
parent 55e4b745ef
commit f3695a016c

View File

@ -145,13 +145,12 @@ export class ChartHitDistributionComponent implements OnInit, OnChanges {
let {errorDetails, ys} = this.calculateData(data);
// Calculate IQR
const q1 = ys[Math.floor((ys.length / 4))];
const q3 = ys[Math.floor((ys.length * 3) / 4)];
const iqr = q3 - q1;
const percentiles = this.percentile(ys, [25, 75]);
const iqr = percentiles[1] - percentiles[0];
// Calculate bounds
const lowerBound = q1 - 1.5 * iqr;
const upperBound = q3 + 1.5 * iqr;
const lowerBound = percentiles[0] - 1.5 * iqr;
const upperBound = percentiles[1] + 1.5 * iqr;
// Filter outliers
const filteredDetails = errorDetails.filter(detail => detail.x > lowerBound && detail.x < upperBound);
@ -166,6 +165,10 @@ export class ChartHitDistributionComponent implements OnInit, OnChanges {
}
});
if(Object.entries(filteredData).length === 0) {
return data;
}
return filteredData;
}