当前位置: 首页>>代码示例>>C#>>正文


C# Histogram.ChiSquaredTest方法代码示例

本文整理汇总了C#中Histogram.ChiSquaredTest方法的典型用法代码示例。如果您正苦于以下问题:C# Histogram.ChiSquaredTest方法的具体用法?C# Histogram.ChiSquaredTest怎么用?C# Histogram.ChiSquaredTest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Histogram的用法示例。


在下文中一共展示了Histogram.ChiSquaredTest方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PermutationDistribution

        public void PermutationDistribution()
        {
            // We want to test that GetRandomPermutation actually samples all permutations equally

            // Don't let n get too big or we will have a ridiculously large number of bins
            for (int n = 2; n < 8; n++) {

                // Build a mapping that assign each permutation a unique integer index from 0 to (n! - 1)
                Dictionary<Permutation, int> index = new Dictionary<Permutation, int>();
                int count = 0;
                foreach (Permutation p in Permutation.Permutations(n)) {
                    index.Add(p, count);
                    count++;
                }

                // Create a historgram of randomly generated permutation indexes
                Histogram histogram = new Histogram(count);
                Random rng = new Random(2);
                for (int i = 0; i < 8 * count; i++) {
                    Permutation p = Permutation.GetRandomPermutation(n, rng);
                    histogram.Bins[index[p]].Increment();
                }

                //for (int i = 0; i < count; i++) {
                //    Console.WriteLine("{0} {1}", i, bins[i].Counts);
                //}

                TestResult result = histogram.ChiSquaredTest(new DiscreteUniformDistribution(0, count - 1));
                Console.WriteLine(result.RightProbability);
                Assert.IsTrue(result.RightProbability > 0.01);

            }
        }
开发者ID:JackDetrick,项目名称:metanumerics,代码行数:33,代码来源:PermutationTest.cs

示例2: ChiSquareDistribution

        public void ChiSquareDistribution()
        {
            int B = 8;
            Random rng = new Random(0);
            //BinomialDistribution d = new BinomialDistribution(0.25, 6);
            //DiscreteUniformDistribution d = new DiscreteUniformDistribution(0, 4);
            //BernoulliDistribution d = new BernoulliDistribution(0.25);
            DiscreteDistribution d = new PoissonDistribution(2.0);

            Sample s = new Sample();
            ChiSquaredDistribution nullDistribution = null;
            for (int i = 0; i < 512; i++) {

                Histogram h = new Histogram(B);
                for (int j = 0; j < 1024; j++) {
                    int k = d.GetRandomValue(rng);
                    h.Add(k);
                    //if (k < h.Count) h[k].Increment();
                    //h[d.GetRandomValue(rng)].Increment();
                }
                TestResult cr = h.ChiSquaredTest(d);
                nullDistribution = (ChiSquaredDistribution) cr.Distribution;
                //Console.WriteLine(((ChiSquaredDistribution) cr.Distribution).DegreesOfFreedom);
                s.Add(cr.Statistic);

            }

            Console.WriteLine(nullDistribution.DegreesOfFreedom);
            TestResult kr = s.KuiperTest(nullDistribution);
            Console.WriteLine(kr.LeftProbability);
        }
开发者ID:JackDetrick,项目名称:metanumerics,代码行数:31,代码来源:FutureTest.cs

示例3: TwoSampleKS2

        public void TwoSampleKS2()
        {
            int n = 2 * 3 * 3; int m = 2 * 2 * 3;
            Random rng = new Random(0);
            NormalDistribution d = new NormalDistribution();

            Histogram h = new Histogram((int) AdvancedIntegerMath.LCM(n, m) + 1);

            //int[] h = new int[AdvancedIntegerMath.LCM(n, m) + 1];

            int count = 1000;
            for (int i = 0; i < count; i++) {

                Sample A = new Sample();
                for (int j = 0; j < n; j++) A.Add(d.GetRandomValue(rng));
                Sample B = new Sample();
                for (int j = 0; j < m; j++) B.Add(d.GetRandomValue(rng));

                TestResult r = Sample.KolmogorovSmirnovTest(A, B);
                int k = (int) Math.Round(r.Statistic * AdvancedIntegerMath.LCM(n, m));
                //Console.WriteLine("{0} {1}", r.Statistic, k);
                h[k].Increment();
                //h[k] = h[k] + 1;

            }

            KolmogorovTwoSampleExactDistribution ks = new KolmogorovTwoSampleExactDistribution(n, m);
            double chi2 = 0.0; int dof = 0;
            for (int i = 0; i < h.Count; i++) {
                double ne = ks.ProbabilityMass(i) * count;
                Console.WriteLine("{0} {1} {2}", i, h[i].Counts, ne);
                if (ne > 4) {
                    chi2 += MoreMath.Sqr(h[i].Counts - ne) / ne;
                    dof++;
                }
            }
            Console.WriteLine("chi^2={0} dof={1}", chi2, dof);

            TestResult r2 = h.ChiSquaredTest(ks);
            ChiSquaredDistribution rd = (ChiSquaredDistribution) r2.Distribution;
            Console.WriteLine("chi^2={0} dof={1} P={2}", r2.Statistic, rd.DegreesOfFreedom, r2.RightProbability);
        }
开发者ID:JackDetrick,项目名称:metanumerics,代码行数:42,代码来源:FutureTest.cs

示例4: DiscreteDistributionRandomValues

        public void DiscreteDistributionRandomValues()
        {
            foreach (DiscreteDistribution distribution in distributions) {

                int max;
                if (distribution.Maximum < 128) {
                    max = distribution.Maximum + 1;
                } else {
                    max = (int) Math.Round(distribution.Mean + 2.0 * distribution.StandardDeviation);
                }
                Console.WriteLine("{0} {1}", distribution.GetType().Name, max);

                Histogram h = new Histogram(max);

                Random rng = new Random(314159265);
                for (int i = 0; i < 1024; i++) h.Add(distribution.GetRandomValue(rng));
                TestResult result = h.ChiSquaredTest(distribution);
                Console.WriteLine("{0} {1}", result.Statistic, result.RightProbability);
                Assert.IsTrue(result.RightProbability > 0.05);

            }
        }
开发者ID:JackDetrick,项目名称:metanumerics,代码行数:22,代码来源:DiscreteDistributionTest.cs


注:本文中的Histogram.ChiSquaredTest方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。