private void getZScoreAbsolute() { List <double> numbers = getNumbersList(elementsToAnalyse); double average = Stadistic.getAverage(numbers); double absoluteMeanDesviation = Stadistic.getAbsoluteMeanDesviation(numbers); for (int i = 0; i < numbers.Count; i++) { numbers[i] = (numbers[i] - average) / absoluteMeanDesviation; tablaPrincipal.Rows[i].Cells[columnIndex].Value = numbers[i].ToString(); } }
private double[] makeNumericalAnalyse(List <double> elements, string columnName) { double mode; double median; double average = Stadistic.getAverage(elements); Object x = 0; int i = 0; double[] valores = new double[6]; Stadistic.getModeAndMedian(elements, out mode, out median); double standarDesviation = getStandarDesviation(elements, average); ValueMedian.Text = median.ToString(); ValueMode.Text = mode.ToString(); ValueAverage.Text = average.ToString(); ValueStandarDesviation.Text = standarDesviation.ToString(); elements.Sort(); var quartile1 = Stadistic.getFirstQuartile(elements); var quartile3 = Stadistic.getLastQuartile(elements); var interquartileRange = Stadistic.getInterquartileRange(quartile3, quartile1); valores[0] = Stadistic.getBoxPlotMin(quartile1, interquartileRange); //Minimo valores[1] = Stadistic.getBoxPlotMax(quartile3, interquartileRange); //Maximo valores[2] = quartile1; //Quartile 1 valores[3] = quartile3; // Quartile 3 valores[4] = average; // media valores[5] = median; //mediana boxplot.avg = valores[4]; boxplot.max = valores[1]; boxplot.med = valores[5]; boxplot.min = valores[0]; boxplot.q1 = valores[2]; boxplot.q3 = valores[3]; Series s = boxPlot.Series.Add(columnName); s.ChartType = SeriesChartType.BoxPlot; s.Points.Add(valores); DrawAnnotation("Mínimo - ", 0, columnName, valores); DrawAnnotation("Máximo - ", 1, columnName, valores); DrawAnnotation("Cuartil 1 - ", 2, columnName, valores); DrawAnnotation("Cuartil 2 - ", 3, columnName, valores); return(valores); }
private void correctOutliers(BoxPlotElements boxplot, List <double> numbers) { double newValue; double median; double mode; numbers = obtenerElementos(); List <double> finalNumbers = new List <double>(); finalNumbers = obtenerElementos(); numbers.Sort(); boxplot.q1 = Stadistic.getFirstQuartile(numbers); boxplot.q3 = Stadistic.getLastQuartile(numbers); var interquartil = Stadistic.getInterquartileRange(boxplot.q3, boxplot.q1); boxplot.min = Stadistic.getBoxPlotMin(boxplot.q1, interquartil); boxplot.max = Stadistic.getBoxPlotMax(boxplot.q3, interquartil); boxplot.avg = Stadistic.getAverage(numbers); Stadistic.getModeAndMedian(numbers, out mode, out median); boxplot.med = median; double diferencia = (boxplot.max - boxplot.q3) - (boxplot.q1 - boxplot.min); if (diferencia == 0) { newValue = boxplot.avg; } else { newValue = boxplot.med; } for (int i = 0; i < finalNumbers.Count; i++) { if (finalNumbers.ElementAt(i) > boxplot.max || finalNumbers.ElementAt(i) < boxplot.min) { finalNumbers[i] = newValue; tablaPrincipal.Rows[i].Cells[columnIndex].Value = newValue; } } tablaPrincipal.Refresh(); }