/// <summary>
/// Estimates the number of samples necessary to attain the
/// required power level for the given effect size.
/// </summary>
///
/// <param name="delta">The minimum detectable difference.</param>
/// <param name="standardDeviation">The difference standard deviation.</param>
/// <param name="power">The desired power level. Default is 0.8.</param>
/// <param name="alpha">The desired significance level. Default is 0.05.</param>
/// <param name="hypothesis">The alternative hypothesis (research hypothesis) to be tested.</param>
/// <param name="proportion">The proportion of observations in the second group
/// when compared to the first group. A proportion of 2:1 results in twice more
/// samples in the second group than in the first. Default is 1.</param>
///
/// <returns>The required number of samples.</returns>
///
public static TwoSampleZTestPowerAnalysis GetSampleSize(double delta,
double standardDeviation = 1, double proportion = 1.0, double power = 0.8, double alpha = 0.05,
TwoSampleHypothesis hypothesis = TwoSampleHypothesis.ValuesAreDifferent)
{
var analysis = new TwoSampleZTestPowerAnalysis(hypothesis)
{
Effect = (delta) / standardDeviation,
Size = alpha,
Power = power,
};
analysis.ComputeSamples(proportion);
return(analysis);
}