Beispiel #1
0
        private void checarValoresFaltantes()
        {
            double mediana;
            double moda;
            string titulo = "Corrección de valor";

            for (int i = 0; i < elementsToAnalyse.Count; i++)
            {
                if (elementsToAnalyse.ElementAt(i).Equals(""))
                {
                    if (elementIsNumeric(elementsToAnalyse))
                    {
                        Stadistic.getModeAndMedian(getNumbersList(elementsToAnalyse), out moda, out mediana);
                        int value = Prompt.ShowDialog(moda.ToString(), mediana.ToString(), titulo);
                        switch (value)
                        {
                        case 1:
                            elementsToAnalyse[i] = moda.ToString();
                            break;

                        case 2:
                            elementsToAnalyse[i] = mediana.ToString();
                            break;
                        }
                    }
                    else
                    {
                        var mode = Stadistic.getCategoricalMode(elementsToAnalyse);
                        elementsToAnalyse[i] = mode;
                    }
                }
            }
        }
        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();
            }
        }
Beispiel #3
0
        /// <summary>
        /// Updates the specified stadistic.
        /// </summary>
        /// <param name="stadistic"></param>
        private void Update(Stadistic stadistic)
        {
            STrace.Trace(GetType().FullName, String.Format("Updating stadistics for index: {0} ({1})", stadistic.Index, stadistic.Table));

            using (var command = DaoFactory.CreateCommand())
            {
                command.CommandText    = stadistic.Command;
                command.CommandType    = CommandType.Text;
                command.CommandTimeout = 0;

                command.ExecuteNonQuery();

                STrace.Trace(GetType().FullName, String.Format("{0} stadistics to update.", --_stadistics));

                DoSleep();
            }
        }
Beispiel #4
0
        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();
        }
Beispiel #6
0
        /// <summary>
        /// Maps sql results into bussiness objects.
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        private IEnumerable <Stadistic> MapResults(IDbCommand command)
        {
            using (var reader = command.ExecuteReader())
            {
                var results = new List <Stadistic>();

                while (reader.Read())
                {
                    var stadistic = new Stadistic {
                        Table = reader.GetString(0), Index = reader.GetString(1), Command = reader.GetString(2)
                    };

                    results.Add(stadistic);
                }

                _stadistics = results.Count;

                STrace.Trace(GetType().FullName, String.Format("{0} stadistics to update.", _stadistics));

                return(results);
            }
        }