Beispiel #1
0
        private void CalculatePairwiseTest(string groupName)
        {
            var columnNames = stringConvertibleMatrixView.Content.ColumnNames.ToList();
            int colIndex    = columnNames.IndexOf(groupName);

            columnNames = columnNames.Where(x => x != groupName).ToList();

            double[][] newData = FilterDataForPairwiseTest(colIndex);

            var rowNames = new[] { "p-Value of Mann-Whitney U", "Adjusted p-Value of Mann-Whitney U",
                                   "p-Value of T-Test", "Adjusted p-Value of T-Test", "Cohen's d", "Hedges' g" };

            DoubleMatrix pValsMatrix = new DoubleMatrix(rowNames.Length, columnNames.Count());

            pValsMatrix.ColumnNames = columnNames;
            pValsMatrix.RowNames    = rowNames;

            double mwuBothTails;
            double tTestBothTails;

            double[] mwuPValues           = new double[newData.Length];
            double[] tTestPValues         = new double[newData.Length];
            bool[]   decision             = null;
            double[] adjustedMwuPValues   = null;
            double[] adjustedTtestPValues = null;
            int      cnt = 0;

            for (int i = 0; i < newData.Length; i++)
            {
                mwuBothTails    = PairwiseTest.MannWhitneyUTest(data[colIndex], newData[i]);
                tTestBothTails  = PairwiseTest.TTest(data[colIndex], newData[i]);
                mwuPValues[i]   = mwuBothTails;
                tTestPValues[i] = tTestBothTails;

                if (mwuBothTails > significanceLevel)
                {
                    cnt++;
                }
            }

            adjustedMwuPValues   = BonferroniHolm.Calculate(significanceLevel, mwuPValues, out decision);
            adjustedTtestPValues = BonferroniHolm.Calculate(significanceLevel, tTestPValues, out decision);

            for (int i = 0; i < newData.Length; i++)
            {
                pValsMatrix[0, i] = mwuPValues[i];
                pValsMatrix[1, i] = adjustedMwuPValues[i];
                pValsMatrix[2, i] = tTestPValues[i];
                pValsMatrix[3, i] = adjustedTtestPValues[i];
                pValsMatrix[4, i] = SampleSizeDetermination.CalculateCohensD(data[colIndex], newData[i]);
                pValsMatrix[5, i] = SampleSizeDetermination.CalculateHedgesG(data[colIndex], newData[i]);
            }

            Invoke(new Action(() => {
                pairwiseStringConvertibleMatrixView.Content = pValsMatrix;
                pairwiseStringConvertibleMatrixView.DataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            }));

            ShowPairwiseResult(cnt);
        }
        public void HedgesGTest2()
        {
            //compared to R effsize package/cohen.d(..,hedges.correction=TRUE)
            var result = SampleSizeDetermination.CalculateHedgesG(x, z);

            Assert.AreEqual(1.507722, Math.Round(result, 6));
        }
        public void HedgesGTest1()
        {
            //compared to R effsize package/cohen.d(..,hedges.correction=TRUE)
            var result = SampleSizeDetermination.CalculateHedgesG(x, y);

            Assert.AreEqual(0.1986369, Math.Round(result, 7));
        }
        public void CohensdTest2()
        {
            //compared to R lsr package/cohenD(..)
            var result = SampleSizeDetermination.CalculateCohensD(x, z);

            Assert.AreEqual(1.57424, Math.Round(result, 5));
        }
        public void CohensdTest1()
        {
            //compared to R lsr package/cohenD(..)
            var result = SampleSizeDetermination.CalculateCohensD(x, y);

            Assert.AreEqual(0.2074003, Math.Round(result, 7));
        }
        private void AddSampleSizeText()
        {
            sampleSizeTextBox.Text = string.Empty;
            var usableRuns = Content.Where(r => r.Visible).ToList();

            if (!yAxisComboBox.DroppedDown)
            {
                yAxisValue = (string)yAxisComboBox.SelectedItem;
            }

            List <double?> yValue = usableRuns.Select(x => GetValue(x, yAxisValue)).ToList();

            if (yValue.Any(x => !x.HasValue))
            {
                return;
            }

            double estimatedSampleSize = SampleSizeDetermination.DetermineSampleSizeByEstimatingMean(yValue.Select(x => x.Value).ToArray());

            sampleSizeTextBox.Text = estimatedSampleSize.ToString();
        }