Last active
August 29, 2015 14:21
-
-
Save kevinjstewart/fb00cbdd4d772126851b to your computer and use it in GitHub Desktop.
Statistics Assignment
This file contains 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
import java.lang.reflect.Array; | |
import java.util.Arrays; | |
/** | |
* kevinstewart at 15-05-26. | |
*/ | |
public class Main { | |
public static void main(String[] args) { | |
// Define data sets | |
double[] dataSetA = {1.95, 1.51, 2.15, 3.53, 5.22, 1.04, 1.03, 1.47 }; | |
double[] dataSetB = {4.4, 5.2, 4.8, 5.7, 4.3, 4.1, 4.2, 4.1, 5.6, 5.1, 4.9}; | |
double datasetAMean = calculateMean(dataSetA); | |
double datasetBMean = calculateMean(dataSetB); | |
double datasetAMedian = calculateMedian(dataSetA); | |
double datasetBMedian = calculateMedian(dataSetB); | |
double datasetAStdDev = calculateStDev(dataSetA, datasetAMean); | |
double datasetBStdDev = calculateStDev(dataSetB, datasetBMean); | |
double datasetASkew = calculateSkew(datasetAMean, datasetAMedian, datasetAStdDev); | |
double datasetBSkew = calculateSkew(datasetBMean, datasetBMedian, datasetBStdDev); | |
System.out.println("---- Dataset A ----"); | |
System.out.println("Mean: " + datasetAMean); | |
System.out.println("Median: " + datasetAMedian); | |
System.out.println("Standard Deviation: " + datasetAStdDev); | |
System.out.println("Skew: " + datasetASkew); | |
System.out.println("---- Dataset B ----"); | |
System.out.println("Mean: " + datasetBMean); | |
System.out.println("Median: " + datasetBMedian); | |
System.out.println("Standard Deviation: " + datasetBStdDev); | |
System.out.println("Skew: " + datasetBSkew); | |
} | |
/** | |
* Calculates and returns average | |
* @param dataset array of doubles | |
* @return array's mean (average) | |
*/ | |
private static double calculateMean(double[] dataset) { | |
double sum = 0; | |
for (int i=0; i < dataset.length; i++) { | |
sum += dataset[i]; | |
} | |
return sum / dataset.length; | |
} | |
/** | |
* Returns median of an unsorted (or sorted) data set | |
* @param dataset array of doubles | |
* @return median of data set | |
*/ | |
private static double calculateMedian(double[] dataset) { | |
Arrays.sort(dataset); | |
if (dataset.length % 2 == 0) { | |
return (dataset[dataset.length / 2] + dataset[(dataset.length / 2) - 1]) / 2.0; | |
} else { | |
return dataset[dataset.length/2]; | |
} | |
} | |
/** | |
* Returns standard deviation of an array of doubles | |
* @param dataset array of doubles | |
* @param mean mean of dataset | |
* @return standard deviation | |
*/ | |
private static double calculateStDev(double[] dataset, double mean) { | |
double[] workingset = new double[dataset.length]; | |
double sum = 0; | |
for (int i = 0; i < workingset.length; i++) { | |
workingset[i] = Math.pow(dataset[i] - mean, 2.0); | |
sum += workingset[i]; | |
} | |
return (Math.sqrt(sum / (double)workingset.length)); | |
} | |
/** | |
* Returns skew of dataset | |
* @param dataset array of doubles | |
* @param mean mean of dataset | |
* @param median median of dataset | |
* @param stdDev standard deviation of dataset | |
* @return | |
*/ | |
private static double calculateSkew(double mean, double median, double stdDev) { | |
return ((mean - median) * 3.0) / stdDev; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment