Skip to content

Instantly share code, notes, and snippets.

@kevinjstewart
Last active August 29, 2015 14:21
Show Gist options
  • Save kevinjstewart/fb00cbdd4d772126851b to your computer and use it in GitHub Desktop.
Save kevinjstewart/fb00cbdd4d772126851b to your computer and use it in GitHub Desktop.
Statistics Assignment
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