コード例 #1
0
 public void SetData(SeriesData data, SeriesVariable variable, MovingAverageForm.MASpecification maProperties)
 {
     this.data = data;
     this.variable = variable;
     this.maProperties = maProperties;
     this.lblVariable.Text = variable.VariableName;
     this.update();
 }
コード例 #2
0
        public void MovingAverage()
        {
            SelectAnalyzedVariable dlg = new SelectAnalyzedVariable(this.data.SeriesVariables);
            dlg.ShowDialog();
            if (dlg.DialogResult == DialogResult.OK)
            {
                MovingAverageForm maForm = new MovingAverageForm();
                maForm.SetVariable(dlg.SelectedVariable);
                maForm.ShowDialog();
                if (maForm.DialogResult == DialogResult.Yes)
                {

                    if (maForm.MaProperties.isSingleMA)
                    {
                        if (maForm.IsStoreSmoothed)
                        {
                            SeriesVariable var = new SeriesVariable(maForm.SmoothedName, "Smoothed Value of MA(" + maForm.MaProperties.orde +
                                ") analysis of variable '" + dlg.SelectedVariable.VariableName + "'");
                            int lag = dlg.SelectedVariable.SeriesValues.Count - maForm.MaProperties.includedObservations;
                            var.InitializeItem(dlg.SelectedVariable.SeriesValues.Count);
                            for (int i = 0; i < lag; i++) var[i] = double.NaN;
                            for (int i = lag; i < lag + maForm.MaProperties.orde; i++) var[i] = double.NaN;
                            for (int i = lag + maForm.MaProperties.orde; i < maForm.MaProperties.includedObservations + lag; i++) var[i] = maForm.MaTable.singleSmoothed[i - lag];
                            this.data.SeriesVariables.Add(var);
                            this.seriesDataList.Refresh();
                        }

                        if (maForm.IsStorePredicted)
                        {
                            SeriesVariable var = new SeriesVariable(maForm.PredictedName, "Predicted Value of MA(" + maForm.MaProperties.orde +
                                ") analysis of variable '" + dlg.SelectedVariable.VariableName + "'");
                            int lag = dlg.SelectedVariable.SeriesValues.Count - maForm.MaProperties.includedObservations;
                            var.InitializeItem(dlg.SelectedVariable.SeriesValues.Count);
                            for (int i = 0; i < lag; i++) var[i] = double.NaN;
                            for (int i = lag; i < lag + maForm.MaProperties.orde; i++) var[i] = double.NaN;
                            for (int i = lag + maForm.MaProperties.orde; i < maForm.MaProperties.includedObservations + lag; i++) var[i] = maForm.MaTable.predicted[i - lag];
                            this.data.SeriesVariables.Add(var);
                            this.seriesDataList.Refresh();
                        }

                        if (maForm.IsStoreResidual)
                        {
                            SeriesVariable var = new SeriesVariable(maForm.ResidualName, "Residual Value of MA(" + maForm.MaProperties.orde +
                                ") analysis of variable '" + dlg.SelectedVariable.VariableName + "'");
                            int lag = dlg.SelectedVariable.SeriesValues.Count - maForm.MaProperties.includedObservations;
                            var.InitializeItem(dlg.SelectedVariable.SeriesValues.Count);
                            for (int i = 0; i < lag; i++) var[i] = double.NaN;
                            for (int i = lag; i < lag + maForm.MaProperties.orde; i++) var[i] = double.NaN;
                            for (int i = lag + maForm.MaProperties.orde; i < maForm.MaProperties.includedObservations + lag; i++) var[i] = maForm.MaTable.residual[i - lag];
                            this.data.SeriesVariables.Add(var);
                            this.seriesDataList.Refresh();
                        }
                    }
                    else
                    {
                        if (maForm.IsStoreSmoothed)
                        {
                            SeriesVariable var = new SeriesVariable(maForm.SmoothedName, "Smoothed Value of MA(" + maForm.MaProperties.orde +
                                "X" + maForm.MaProperties.orde + ") analysis of variable '" + dlg.SelectedVariable.VariableName + "'");
                            int lag = dlg.SelectedVariable.SeriesValues.Count - maForm.MaProperties.includedObservations;
                            var.InitializeItem(dlg.SelectedVariable.SeriesValues.Count);
                            for (int i = 0; i < lag; i++) var[i] = double.NaN;
                            for (int i = lag; i < lag + (2 * (maForm.MaProperties.orde - 1)); i++) var[i] = double.NaN;
                            for (int i = lag + (2 * (maForm.MaProperties.orde - 1)); i < maForm.MaProperties.includedObservations + lag; i++) var[i] = maForm.MaTable.doubleSmoothed[i - lag];
                            this.data.SeriesVariables.Add(var);
                            this.seriesDataList.Refresh();
                        }
                        if (maForm.IsStorePredicted)
                        {
                            SeriesVariable var = new SeriesVariable(maForm.PredictedName, "Predicted Value of MA(" + maForm.MaProperties.orde +
                                "X" + maForm.MaProperties.orde + ") analysis of variable '" + dlg.SelectedVariable.VariableName + "'");
                            int lag = dlg.SelectedVariable.SeriesValues.Count - maForm.MaProperties.includedObservations;
                            var.InitializeItem(dlg.SelectedVariable.SeriesValues.Count);
                            for (int i = 0; i < lag; i++) var[i] = double.NaN;
                            for (int i = lag; i < lag + (2 * (maForm.MaProperties.orde - 1)); i++) var[i] = double.NaN;
                            for (int i = lag + (2 * (maForm.MaProperties.orde - 1)); i < maForm.MaProperties.includedObservations + lag; i++) var[i] = maForm.MaTable.predicted[i - lag];
                            this.data.SeriesVariables.Add(var);
                            this.seriesDataList.Refresh();
                        }
                        if (maForm.IsStoreResidual)
                        {
                            SeriesVariable var = new SeriesVariable(maForm.ResidualName, "Residual Value of MA(" + maForm.MaProperties.orde +
                                "," + maForm.MaProperties.orde + ") analysis of variable '" + dlg.SelectedVariable.VariableName + "'");
                            int lag = dlg.SelectedVariable.SeriesValues.Count - maForm.MaProperties.includedObservations;
                            var.InitializeItem(dlg.SelectedVariable.SeriesValues.Count);
                            for (int i = 0; i < lag; i++) var[i] = double.NaN;
                            for (int i = lag; i < lag + (2 * (maForm.MaProperties.orde - 1)); i++) var[i] = double.NaN;
                            for (int i = lag + (2 * (maForm.MaProperties.orde - 1)); i < maForm.MaProperties.includedObservations + lag; i++) var[i] = maForm.MaTable.residual[i - lag];
                            this.data.SeriesVariables.Add(var);
                            this.seriesDataList.Refresh();
                        }
                    }

                    MAResultTabPage maTabPage = new MAResultTabPage();

                    maTabPage.Title = "Moving Average : '" + dlg.SelectedVariable.VariableName + "'";

                    if (maForm.IsForecastedDataGridChecked)
                    {
                        if (maForm.MaProperties.isSingleMA)
                        {
                            maTabPage.SetData(this.data, dlg.SelectedVariable, maForm.MaProperties,
                                maForm.MaTable, maForm.SmaForecast(maForm.ForecastingStep));
                        }
                        else
                        {
                            maTabPage.SetData(this.data, dlg.SelectedVariable, maForm.MaProperties,
                                maForm.MaTable, maForm.DmaForecast(maForm.ForecastingStep));
                        }
                    }
                    else
                    {
                        maTabPage.SetData(this.data, dlg.SelectedVariable, maForm.MaProperties,
                            maForm.MaTable, null);
                    }
                    maTabPage.IsMaModelSummaryVisible = maForm.IsMaModelSummaryChecked;
                    maTabPage.IsSmoothingVisible = maForm.IsSmoothingChecked;
                    maTabPage.IsMovingAverageDataGridVisible = maForm.IsMovingAverageDataGridChecked;
                    maTabPage.IsForecastedDataGridVisible = maForm.IsForecastedDataGridChecked;
                    maTabPage.IsActualAndPredictedGraphVisible = maForm.IsActualAndPredictedGraphChecked;
                    maTabPage.IsActualAndPredictedGraphVisible = maForm.IsActualAndPredictedGraphChecked;
                    maTabPage.IsActualAndSmoothedGraphVisible = maForm.IsActualAndSmoothedGraphChecked;
                    maTabPage.IsActualAndForecastedGraphVisible = maForm.IsActualAndForecastedGraphChecked;
                    maTabPage.IsActualVsPredictedGraphVisible = maForm.IsActualVsPredictedGraphChecked;
                    maTabPage.IsResidualGraphVisible = maForm.IsResidualGraphChecked;
                    maTabPage.IsResidualVsActualGraphVisible = maForm.IsResidualVsActualGraphChecked;
                    maTabPage.IsResidualVsPredictedGraphVisible = maForm.IsResidualVsPredictedGraphChecked;

                    maTabPage.DrawControl();

                    maTabPage.IsDrawn = true;
                    this.tabControlResult.AddTab(maTabPage);
                    this.tabControlResult.SelectedItem = maTabPage;

                    this.tabControlData.SelectedTab = this.tabPageResult;

                }
            }
        }
コード例 #3
0
 public void SetData(SeriesData data, SeriesVariable variable, 
     MovingAverageForm.MASpecification maProperties,
     MovingAverageForm.MAComponent maTable, double[] forecasted)
 {
     this.data = data;
     this.variable = variable;
     this.maProperties = maProperties;
     this.maTable = maTable;
     this.forecasted = forecasted;
 }