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(); }