Accord.Tests.Statistics.TTestPowerAnalysisTest.TTestPowerAnalysisConstructorTest7 C# (CSharp) Method

TTestPowerAnalysisConstructorTest7() private method

private TTestPowerAnalysisConstructorTest7 ( ) : void
return void
        public void TTestPowerAnalysisConstructorTest7()
        {
            // 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 TTestPowerAnalysis(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.33 (or 33%)

            // 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 199 samples.

            Assert.AreEqual(198.15082094251142, samples, 1e-10);
            Assert.AreEqual(0.36770431608203374, effect);
            Assert.AreEqual(0.33167864622935495, power);
        }