Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. import java.util.*;
  2. public class outliers
  3. {
  4. public static void main(String[] args)
  5. {
  6. Scanner kbd = new Scanner(System.in);
  7. System.out.print("Enter the number of randomly generated data points \n (an outlier will be created every ten data points): ");
  8. int arraySize = kbd.nextInt();
  9. double[] data = getArray(arraySize);
  10.  
  11. double[] arrayNew = new double[data.length];
  12.  
  13. double q1 = 0, q3 = 0, IQR, lowerFence, upperFence, median;
  14.  
  15. median = median(data);
  16.  
  17. System.out.println("Original Data set: ");
  18. printArray(data);
  19.  
  20. Arrays.sort(data);
  21. System.out.println("Sorted Data set: ");
  22. printArray(data);
  23.  
  24. if (median % 2 == 0) //Finds the lower and upper quartiles
  25. {
  26. q1 = data[(int)(median/2)];
  27. q3 = data[(int)(median * 1.5)];
  28. }
  29. else
  30. {
  31. q1 = data[(int)(median/2)-1];
  32. q3 = data[(int)(median * 1.5)+1];
  33. }
  34.  
  35. IQR = q3 - q1; //Calculates IQR
  36.  
  37. lowerFence = q1 - 3 * IQR; //Calculates lower and upper fences
  38. upperFence = q3 + 3 * IQR;
  39.  
  40. arrayNew = removeOutliers(data, lowerFence, upperFence);
  41.  
  42. System.out.println("Data set with outliers removed:");
  43. printArray(arrayNew);
  44. }
  45. public static void printArray(double[] data)
  46. {
  47.  
  48. System.out.println("=========================================================================");
  49. for(int n = 0; n <= data.length - 1; n++)
  50. {
  51. if(data[n] == 0) //Ignores empty slots
  52. {
  53. }
  54. else
  55. {
  56. if((n + 1)%10 == 0) //Prints new line every ten data points
  57. {
  58. System.out.printf(" %6.2f", data[n]);
  59. System.out.println();
  60. }
  61. else
  62. System.out.printf(" %6.2f", data[n]);
  63. }
  64. }
  65. System.out.println();
  66. System.out.println("=========================================================================");
  67. System.out.println();
  68.  
  69. return;
  70. }
  71. public static double median(double[] data)
  72. {
  73. double median;
  74.  
  75. if (data.length%2 == 0)
  76. median = data.length/2;
  77. else
  78. median = data.length/2 - 1;
  79.  
  80. return median;
  81. }
  82. public static double[] removeOutliers(double[] data, double lFence, double uFence)
  83. {
  84. double[] arrayNew = new double[data.length];
  85. int count = 0; //Counts the data points in arrayRevised
  86. System.out.println();
  87. for (int n = 0; n < data.length; n++) {
  88. if (data[n] > lFence && data[n] < uFence) {
  89. arrayNew[count] = data[n]; //Adds data points that aren't outliers to the new array
  90. count ++;
  91. }
  92. else {
  93. System.out.printf("%6.2f is an outlier. \n", data[n]);
  94. }
  95. }
  96. System.out.println();
  97.  
  98. return arrayNew;
  99. }
  100. public static double[] getArray(int length)
  101. {
  102. double[] data = new double[length];
  103. for(int n = 0; n < data.length; n++)
  104. {
  105. if(n%10 == 0)
  106. data[n] = Math.random()*2000 - 1000;
  107. else
  108. data[n] = Math.random()*100;
  109. }
  110. return data;
  111. }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement