Created
December 15, 2016 20:15
-
-
Save melanke/69d14ed6a719cbe97c5a761856dfca57 to your computer and use it in GitHub Desktop.
statisticalOutLierAnalysis.java discover numbers outside standard deviation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello friend, you forgot to get the square root of sum / size at line 21.