示例#1
0
        private void BtnDATA_Click(object sender, RoutedEventArgs e)
        {
            Data.GetCsv();
            columArraySource = Data.Array;
            columArray       = new double[Data.parametrs.Count][];
            colum            = Data.parametrs.Count;
            for (int i = 0; i < colum; i++)
            {
                columArray[i] = DiscriptiveStatistics.Rationing_MaxMin(columArraySource[i]);
            }
            StackPanel stp = new StackPanel();

            stp.Orientation = Orientation.Horizontal;
            for (int i = 0; i < Data.Array.Length; i++)
            {
                double[]  buf = Data.Array[i];
                TextBlock lv  = new TextBlock();
                lv.Width  = 100;
                lv.Height = Data.Array[0].Length * 18;
                lv.Text  += Data.parametrs[i] + "\n";
                for (int j = 0; j < buf.Length; j++)
                {
                    lv.Text += buf[j] + "\n";
                }
                stp.Children.Add(lv);
            }
            scv.Content = stp;
            //columArray = columArraySource;
        }
示例#2
0
        private double[] point(double[] arr, int CountInterval)
        {
            double max = DiscriptiveStatistics.Max(arr);
            double min = DiscriptiveStatistics.Min(arr);

            double[] points = new double[CountInterval + 1];
            for (int i = 0; i < points.Length; i++)
            {
                points[i] = max - i * (max - min) / CountInterval;
            }

            return(points.OrderBy(x => x).ToArray());
        }
示例#3
0
        //private void BtnOpenFile_Click(object sender, RoutedEventArgs e)
        //{
        //    OpenFileDialog FileOT = new OpenFileDialog();
        //    FileOT.Filter = "All files (*.*)|*.*|TXT text (*.txt)|*.txt";
        //    if (FileOT.ShowDialog() == true)
        //    {
        //        Stream ms = new FileStream(FileOT.FileName, FileMode.Open);
        //        lblNameFile.Content = FileOT.FileName;
        //        byte[] array = new byte[ms.Length];
        //        ms.Read(array, 0, array.Length);
        //        string buf = Encoding.Default.GetString(array);
        //        s = buf.ToLower();
        //    }
        //    sampleSource = DiscriptiveStatistics.GetSample(s);
        //    tbDiscrStat_source.Text = DiscriptiveStatistics.Output_descriptive_statistics(sampleSource);
        //    tblSourceSample.Text = DiscriptiveStatistics.Output(sampleSource);
        //}
        //private void BtnRationing_Click(object sender, RoutedEventArgs e)
        //{
        //    try
        //    {
        //        sampleRationing = DiscriptiveStatistics.Rationing_MaxMin(sampleSource);
        //        tblRationning.Text = DiscriptiveStatistics.Output(sampleRationing);
        //        tbDiscrStat_Ration.Text = DiscriptiveStatistics.Output_descriptive_statistics(sampleRationing);
        //    }
        //    catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка"); }
        //}
        //private void BtnSaveFile_Click(object sender, RoutedEventArgs e)
        //{
        //    SaveFileDialog sd = new SaveFileDialog();
        //    sd.Filter = "All files (*.*)|*.*|TXT text (*.txt)|*.txt";
        //    if (sd.ShowDialog() == true)
        //    {
        //        File.WriteAllText(sd.FileName, DiscriptiveStatistics.Save(sampleRationing));
        //    }
        //}

        #endregion

        #region  аспределение
        private double[] Get_theretical_frequency_Laplas(double[] arr, double[][] intervalArray)
        {
            double X_aver = DiscriptiveStatistics.Average(arr);
            double disp   = Math.Sqrt(DiscriptiveStatistics.Dispersion(arr));

            double[] P = new double[intervalArray.Length];
            for (int i = 0; i < P.Length; i++)
            {
                double[] buf = intervalArray[i];
                P[i]  = DiscriptiveStatistics.GetValueLaplasFunction(Math.Round(Math.Abs((buf[0] - X_aver) / disp), 2)) * DiscriptiveStatistics.GetValueLaplasFunction(Math.Round(Math.Abs((buf[buf.Length - 1] - X_aver) / disp), 2));
                P[i] *= buf.Length;
            }
            return(P);
        }
示例#4
0
        private double[] theoretical_freq(double[] arr, double sum, double[] xn, int CountInterval)
        {
            double X_aver = DiscriptiveStatistics.Average(arr);
            double disp   = Math.Sqrt(DiscriptiveStatistics.Dispersion(arr));

            double[] m_t = new double[CountInterval];
            double   h   = (DiscriptiveStatistics.Max(arr) - DiscriptiveStatistics.Min(arr)) / CountInterval;

            for (int i = 0; i < m_t.Length; i++)
            {
                double u   = (xn[i] - X_aver) / disp;
                double f_u = 1 / (Math.Sqrt(2 * Math.PI) * Math.Pow(Math.E, (u * u) / 2));
                m_t[i] = sum * h / disp * f_u;
            }
            return(m_t);
        }
示例#5
0
 private void output(double[][] arr)
 {
     for (int i = 0; i < colum; i++)
     {
         string s = "";
         string t = "";
         s += (i + 1).ToString() + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Average(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Amount(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.StandartError(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Median(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Fashion(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.StandartDeviation(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Dispersion(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Excess(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Asymmetry(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Interval(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Min(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", DiscriptiveStatistics.Max(arr[i])) + "\n\n";
         t += "\t\n\n\n";
         s += string.Format("{0:F2}", arr[i].Length) + "\n\n";
         t += "\t\n\n\n";
         stpDiscrStat.Children.Add(new TextBlock {
             Text = s
         });
         stpDiscrStat.Children.Add(new TextBlock {
             Text = t
         });
     }
 }
示例#6
0
        private void Btn_Pair_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                koeffPair = new DenseMatrix(colum, colum);
                for (int i = 0; i < colum; i++)
                {
                    for (int j = i; j < colum; j++)
                    {
                        koeffPair[i, j] = koeffPair[j, i] = DiscriptiveStatistics.PairKoeff(columArray[i], columArray[j]);
                    }
                }

                DenseMatrix t_Matrix = T_Matrix_Koeff(koeffPair);

                tbMatrix.Text  = Output_R(koeffPair);
                tbMatrix.Text += "Коэффициент значим при t > 1.96\n";
                tbMatrix.Text += Output_R(t_Matrix);
                #region Окружность
                var X_Y = new List <KeyValuePair <double, double> >()
                {
                    new KeyValuePair <double, double>(150, 0),
                    new KeyValuePair <double, double>(250, 40),

                    new KeyValuePair <double, double>(270, 90),
                    new KeyValuePair <double, double>(270, 190),

                    new KeyValuePair <double, double>(250, 250),
                    new KeyValuePair <double, double>(150, 295),

                    new KeyValuePair <double, double>(40, 250),
                    new KeyValuePair <double, double>(10, 190),

                    new KeyValuePair <double, double>(10, 90),
                    new KeyValuePair <double, double>(40, 40)
                };
                foreach (KeyValuePair <double, double> x in X_Y)
                {
                    Ellipse l = new Ellipse();
                    l.Width = l.Height = 5;
                    l.Fill  = Brushes.Red;
                    Canvas.SetTop(l, x.Value);
                    Canvas.SetLeft(l, x.Key);
                    cnvMain.Children.Add(l);
                }
                for (int i = 0; i < colum; i++)
                {
                    for (int j = i + 1; j < colum; j++)
                    {
                        if (i != j && koeffPair[i, j] >= 0.3 && koeffPair[i, j] < 0.5)
                        {
                            Line l = new Line();
                            l.X1              = X_Y[i].Key;
                            l.X2              = X_Y[j].Key;
                            l.Y1              = X_Y[i].Value;
                            l.Y2              = X_Y[j].Value;
                            l.Stroke          = Brushes.Red;
                            l.StrokeThickness = 1;
                            cnvMain.Children.Add(l);
                        }
                        if (i != j && koeffPair[i, j] >= 0.5 && koeffPair[i, j] < 0.7)
                        {
                            Line l = new Line();
                            l.X1              = X_Y[i].Key;
                            l.X2              = X_Y[j].Key;
                            l.Y1              = X_Y[i].Value;
                            l.Y2              = X_Y[j].Value;
                            l.Stroke          = Brushes.Yellow;
                            l.StrokeThickness = 1;
                            cnvMain.Children.Add(l);
                        }
                        if (i != j && koeffPair[i, j] >= 0.7 && koeffPair[i, j] < 1)
                        {
                            Line l = new Line();
                            l.X1              = X_Y[i].Key;
                            l.X2              = X_Y[j].Key;
                            l.Y1              = X_Y[i].Value;
                            l.Y2              = X_Y[j].Value;
                            l.Stroke          = Brushes.Green;
                            l.StrokeThickness = 1;
                            cnvMain.Children.Add(l);
                        }
                    }
                }
                #endregion
            }
            catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка"); }
        }