Пример #1
0
        public static TestResult RunPairedTest(List <double> x, List <double> y, PairedTest pt)
        {
            BivariateSample s = new BivariateSample();

            s.Add(x, y);

            switch (pt)
            {
            case PairedTest.KendallTau:
                return(s.KendallTauTest());

            case PairedTest.PearsonR:
                return(s.PearsonRTest());

            case PairedTest.SpearmanRho:
                return(s.SpearmanRhoTest());

            case PairedTest.StudentT:
                return(s.PairedStudentTTest());

            default:
                return(null);
            }
        }
Пример #2
0
        public void KendallNullDistributionTest()
        {
            // pick independent distributions for x and y, which needn't be normal and needn't be related
            Distribution xDistrubtion  = new LogisticDistribution();
            Distribution yDistribution = new ExponentialDistribution();
            Random       rng           = new Random(314159265);

            // generate bivariate samples of various sizes
            //int n = 64; {
            foreach (int n in TestUtilities.GenerateIntegerValues(4, 64, 8))
            {
                Sample       testStatistics   = new Sample();
                Distribution testDistribution = null;

                for (int i = 0; i < 128; i++)
                {
                    BivariateSample sample = new BivariateSample();
                    for (int j = 0; j < n; j++)
                    {
                        sample.Add(xDistrubtion.GetRandomValue(rng), yDistribution.GetRandomValue(rng));
                    }

                    TestResult result = sample.KendallTauTest();
                    testStatistics.Add(result.Statistic);
                    testDistribution = result.Distribution;
                }

                //TestResult r2 = testStatistics.KolmogorovSmirnovTest(testDistribution);
                //Console.WriteLine("n={0} P={1}", n, r2.LeftProbability);
                //Assert.IsTrue(r2.RightProbability > 0.05);

                Console.WriteLine("{0} {1}", testStatistics.PopulationVariance, testDistribution.Variance);
                Assert.IsTrue(testStatistics.PopulationMean.ConfidenceInterval(0.95).ClosedContains(testDistribution.Mean));
                Assert.IsTrue(testStatistics.PopulationVariance.ConfidenceInterval(0.95).ClosedContains(testDistribution.Variance));
            }
        }