public void WriteStatistical(double[] dataAr, string rowName) { if (DataConvertationClass.IsUndefinedElement(dataAr)) { return; } double mid = Statistical.Middle(dataAr); double disp = Statistical.Dispersion(dataAr); double skewn = Statistical.Skewness(dataAr); double kurt = Statistical.Kurtosis(dataAr); double jb = Statistical.JB(dataAr, 0); richTextBox.SelectionFont = new Font("Arial", 12, FontStyle.Bold); richTextBox.SelectedText = "\nСтатистичні характеристики."; richTextBox.SelectionAlignment = HorizontalAlignment.Center; richTextBox.SelectionFont = new Font("Arial", 12, FontStyle.Bold); richTextBox.SelectedText = "\nРяд \"" + rowName + "\"."; richTextBox.SelectionAlignment = HorizontalAlignment.Center; richTextBox.SelectedText = "\n"; richTextBox.SelectionFont = new Font("Arial", 10); richTextBox.SelectionAlignment = HorizontalAlignment.Left; richTextBox.SelectionIndent = 15; richTextBox.SelectedText = "\nСереднє\t\t\t" + mid.ToString("F4") + "\v"; richTextBox.SelectedText = "\nДисперсія\t\t\t" + disp.ToString("F4") + "\v"; richTextBox.SelectedText = "\nКоофіцієнт асиметрії\t\t" + skewn.ToString("F4") + "\v"; richTextBox.SelectedText = "\nЕксцес\t\t\t" + kurt.ToString("F4") + "\v"; richTextBox.SelectedText = "\nЖака-Бера\t\t\t" + jb.ToString("F4") + "\v"; }
private void Draw() { if (DataConvertationClass.IsUndefinedElement(_dataAr)) { MessageBox.Show(Text + ". Існують не визначені елементи!"); return; } dataGridView1.ColumnCount = _degree + 2; dataGridView1.RowCount = 2; dataGridView1[0, 0].Value = "Автокореляції"; dataGridView1[0, 1].Value = "ЧАКФ"; double[] ACArray = Statistical.ACF(_dataAr, _degree); double[] PACArray = Statistical.PACF(_dataAr, _degree); double[] XList = new double[_degree + 1]; for (int i = 1; i < dataGridView1.ColumnCount; i++) { dataGridView1.Columns[i].Name = (i - 1).ToString(); dataGridView1[i, 0].Value = ACArray[i - 1].ToString("F6"); if (Math.Abs(ACArray[i - 1]) >= level) { dataGridView1[i, 0].Style.ForeColor = Color.Red; } else { dataGridView1[i, 0].Style.ForeColor = Color.Black; } dataGridView1[i, 1].Value = PACArray[i - 1].ToString("F6"); if (Math.Abs(PACArray[i - 1]) >= level) { dataGridView1[i, 1].Style.ForeColor = Color.Red; } else { dataGridView1[i, 1].Style.ForeColor = Color.Black; } XList[i - 1] = i - 1; } dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; ZedGraph.LineObj levelLine1 = new ZedGraph.LineObj(Color.Red, -1, level, _degree + 1, level); levelLine1.Line.Width = 2; ZedGraph.LineObj levelLine2 = new ZedGraph.LineObj(Color.Red, -1, -level, _degree + 1, -level); levelLine2.Line.Width = 2; ZedGraph.GraphPane ACpane = ACzedGraphControl.GraphPane; ACpane.CurveList.Clear(); ACpane.GraphObjList.Clear(); ACpane.Title.Text = "Автокореляція"; ACpane.XAxis.Title.IsVisible = false; ACpane.XAxis.MajorGrid.IsVisible = true; ACpane.XAxis.MajorGrid.DashOn = 1; ACpane.XAxis.MajorGrid.DashOff = 1; ACpane.XAxis.Scale.Min = 0; ACpane.XAxis.Scale.Max = ACArray.Length; ACpane.YAxis.Title.IsVisible = false; ACpane.YAxis.MajorGrid.IsVisible = true; ACpane.YAxis.MajorGrid.DashOn = 1; ACpane.YAxis.MajorGrid.DashOff = 1; ACpane.YAxis.Scale.Min = -2; ACpane.YAxis.Scale.Max = 2; ZedGraph.PointPairList ACList = new ZedGraph.PointPairList(XList, ACArray); ACpane.AddBar("", ACList, Color.BlanchedAlmond); ACpane.GraphObjList.Add(levelLine1); ACpane.GraphObjList.Add(levelLine2); ACzedGraphControl.Refresh(); ZedGraph.GraphPane PACpane = PACzedGraphControl.GraphPane; PACpane.CurveList.Clear(); PACpane.GraphObjList.Clear(); PACpane.Title.Text = "ЧАКФ"; PACpane.XAxis.Title.IsVisible = false; PACpane.XAxis.MajorGrid.IsVisible = true; PACpane.XAxis.MajorGrid.DashOn = 1; PACpane.XAxis.MajorGrid.DashOff = 1; PACpane.XAxis.Scale.Min = 0; PACpane.XAxis.Scale.Max = ACArray.Length; PACpane.YAxis.Title.IsVisible = false; PACpane.YAxis.MajorGrid.IsVisible = true; PACpane.YAxis.MajorGrid.DashOn = 1; PACpane.YAxis.MajorGrid.DashOff = 1; PACpane.YAxis.Scale.Min = -2; PACpane.YAxis.Scale.Max = 2; ZedGraph.PointPairList PACList = new ZedGraph.PointPairList(XList, PACArray); PACpane.AddBar("", PACList, Color.BlanchedAlmond); PACpane.GraphObjList.Add(levelLine1); PACpane.GraphObjList.Add(levelLine2); PACzedGraphControl.Refresh(); }
public static Matrix MatrixForNonstatTest(double[] dataAr, bool IsAVG, bool IsTrend, string ParamsAR) { int CountClumns = 1; if (IsAVG) { CountClumns++; } if (IsTrend) { CountClumns++; } int CountRows; int startDataAr; string[] prmAR; double[] diffDataAr; if (!String.IsNullOrEmpty(ParamsAR)) { prmAR = ParamsAR.Split(';'); CountClumns = CountClumns + prmAR.Length; CountRows = dataAr.Length - 1 - int.Parse(prmAR[prmAR.Length - 1]); startDataAr = 1 + int.Parse(prmAR[prmAR.Length - 1]); double[] tmp = new double[dataAr.Length]; dataAr.CopyTo(tmp, 0); DataConvertationClass.DifferRow(ref tmp, 1); diffDataAr = new double[tmp.Length - 1]; Array.Copy(tmp, 1, diffDataAr, 0, diffDataAr.Length); } else { prmAR = new string[0]; diffDataAr = new double[0]; CountRows = dataAr.Length - 1; startDataAr = 1; } Matrix H = new Matrix(CountRows, CountClumns); int nowClmn = 0; if (IsAVG) { for (int i = 0; i < H.CountRows; i++) { H[i, 0] = 1; } nowClmn++; } if (IsTrend) { for (int i = 0; i < H.CountRows; i++) { H[i, nowClmn] = startDataAr + i + 1; } nowClmn++; } for (int i = 0; i < H.CountRows; i++) { H[i, nowClmn] = dataAr[startDataAr + i - 1]; } nowClmn++; if (!String.IsNullOrEmpty(ParamsAR)) { for (int k = 0; k < prmAR.Length; k++) { int p = int.Parse(prmAR[k]); for (int i = 0; i < H.CountRows; i++) { H[i, nowClmn + k] = diffDataAr[i + p]; } } } return(H); }