public void ZTestPowerAnalysisConstructorTest2() { // When creating a power analysis, we have three things we can // change. We can always freely configure two of those things // and then ask the analysis to give us the third. var analysis = new ZTestPowerAnalysis(OneSampleHypothesis.ValueIsDifferentFromHypothesis); // Those are: double e = analysis.Effect; // the test's minimum detectable effect size double n = analysis.Samples; // the number of samples in the test double p = analysis.Power; // the probability of committing a type-2 error // Let's set the desired effect size and the // number of samples so we can get the power analysis.Effect = 0.2; // we would like to detect at least 0.2 std. dev. apart analysis.Samples = 60; // we would like to use at most 60 samples analysis.ComputePower(); // what will be the power of this test? double power = analysis.Power; // The power is going to be 0.34 (or 34%) // Let's set the desired power and the number // of samples so we can get the effect size analysis.Power = 0.8; // we would like to create a test with 80% power analysis.Samples = 60; // we would like to use at most 60 samples analysis.ComputeEffect(); // what would be the minimum effect size we can detect? double effect = analysis.Effect; // The effect will be 0.36 standard deviations. // Let's set the desired power and the effect // size so we can get the number of samples analysis.Power = 0.8; // we would like to create a test with 80% power analysis.Effect = 0.2; // we would like to detect at least 0.2 std. dev. apart analysis.ComputeSamples(); double samples = analysis.Samples; // We would need around 197 samples. Assert.AreEqual(196.22199335872716, samples); // 196.22199335872716 Assert.AreEqual(0.36168309642441332, effect); Assert.AreEqual(0.34062035960875625, power); }
public void SampleSizeTest1() { // Example from http://wise.cgu.edu/powermod/computing.asp double mean = 104; double stdDev = 10; int samples = 25; double hypothesizedMean = 100; OneSampleHypothesis hypothesis = OneSampleHypothesis.ValueIsGreaterThanHypothesis; ZTest target = new ZTest(mean, stdDev, samples, hypothesizedMean, hypothesis); ZTestPowerAnalysis power = (ZTestPowerAnalysis)target.Analysis; power.Size = 0.01; power.Power = 0.90; power.ComputeSamples(); double sampleSize = System.Math.Ceiling(power.Samples); Assert.AreEqual(82, sampleSize, 1e-16); }