Skip to content

Instantly share code, notes, and snippets.

@melanke
Created December 15, 2016 20:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save melanke/69d14ed6a719cbe97c5a761856dfca57 to your computer and use it in GitHub Desktop.
Save melanke/69d14ed6a719cbe97c5a761856dfca57 to your computer and use it in GitHub Desktop.
statisticalOutLierAnalysis.java discover numbers outside standard deviation
public static List<Double> statisticalOutLierAnalysis(List<Double> allNumbers) {
if (allNumbers.isEmpty()) {
return null;
}
List<Double> normalNumbers = new ArrayList<Double>();
List<Double> outLierNumbers = new ArrayList<Double>();
Double sum = 0D;
for (Double number : allNumbers) {
sum += number;
}
double avg = sum / allNumbers.size();
sum = 0D;
for (Double number : allNumbers) {
sum += Math.pow(number - avg, 2);
}
double standardDeviation = sum / allNumbers.size();
for (Double number : allNumbers) {
if ((Math.abs(number - avg)) > (2 * standardDeviation)) {
outLierNumbers.add(number);
} else {
normalNumbers.add(number);
}
}
return normalNumbers;
}
@npanagop
Copy link

Hello friend, you forgot to get the square root of sum / size at line 21.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment