package br.ufrgs.inf.prosoft.utils;
import org.apache.commons.math3.distribution.NormalDistribution;
import org.apache.commons.math3.stat.inference.TestUtils;
/**
* The type Statistical test.
*/
public class StatisticalTest {
/**
* Is normal distribution boolean.
*
* @param sample the sample
* @param significanceLevel the significance level
* @return the boolean
*/
public static boolean isNormalDistribution(double[] sample, double significanceLevel){
final NormalDistribution unitNormal = new NormalDistribution(0d, 1d);
//alpha significance level (equiv. 100 * (1-alpha)% confidence) where 0 < alpha < 1 use
//Significance level of 95%: 100 * (1-0.05)
//the test below compares p-value < alpha = 0.05
//As a rule of thumb, we reject the null hypothesis if p < 0.05.
//So if p < 0.05, we don't believe that our variable follows a normal distribution in our population.
return !TestUtils.kolmogorovSmirnovTest(unitNormal, sample, significanceLevel);
}
}