public static TestResult RunBetweenTest(List <double> x, List <double> y, BetweenGroupTest bt) { Sample sm1 = new Sample(x); Sample sm2 = new Sample(y); switch (bt) { case BetweenGroupTest.Anova: return(Sample.OneWayAnovaTest(sm1, sm2).Factor.Result); case BetweenGroupTest.Kolmogorov: return(Sample.KolmogorovSmirnovTest(sm1, sm2)); case BetweenGroupTest.Kruskal: return(Sample.KruskalWallisTest(sm1, sm2)); case BetweenGroupTest.MannWhitney: return(Sample.MannWhitneyTest(sm1, sm2)); case BetweenGroupTest.StudentT: return(Sample.StudentTTest(sm1, sm2)); default: return(null); } }
protected void TestDoWorkBetween(BetweenGroupTest bt) { Dictionary <int, List <RSplitUnit <double> > > units = DataToProcess.GetGroupedList(); int cnt = units.Count; List <List <double> > rankData = new List <List <double> > (); foreach (KeyValuePair <int, List <RSplitUnit <double> > > kvp in units) { List <double> x = new List <double> (); List <double> y = new List <double> (); ExtractXYLists(kvp.Value, x, y); rankData.Add(y); } List <List <TestResult> > results = new List <List <TestResult> > (); for (int i = 0; i < cnt - 1; i++) { List <TestResult> tsr = new List <TestResult> (); for (int j = i + 1; j < cnt; j++) { tsr.Add(StatsTester.RunBetweenTest(rankData [i], rankData [j], bt)); } results.Add(tsr); } Gtk.Application.Invoke(delegate { AssignResultsToTable(results, cnt, bt); }); }
protected void AssignResultsToTable(List <List <TestResult> > results, int groupCount, BetweenGroupTest bt) { for (int i = 0; i < groupCount - 1; i++) { for (int j = 0; j < groupCount - 1 - i; j++) { if (showStatRadio.Active) { SampleComparisons [i] [j + 1 + i].Text = results [i] [j].Statistic.ToString("G7"); } else { if (results [i] [j].Statistic > 0) { SampleComparisons [i] [j + 1 + i].Text = results [i] [j].RightProbability.ToString("e2"); } else { SampleComparisons [i] [j + 1 + i].Text = results [i] [j].LeftProbability.ToString("e2"); } } } } }