1  #region License Information


2  /* HeuristicLab


3  * Copyright (C) 20022015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)


4  *


5  * This file is part of HeuristicLab.


6  *


7  * HeuristicLab is free software: you can redistribute it and/or modify


8  * it under the terms of the GNU General Public License as published by


9  * the Free Software Foundation, either version 3 of the License, or


10  * (at your option) any later version.


11  *


12  * HeuristicLab is distributed in the hope that it will be useful,


13  * but WITHOUT ANY WARRANTY; without even the implied warranty of


14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the


15  * GNU General Public License for more details.


16  *


17  * You should have received a copy of the GNU General Public License


18  * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.


19  */


20  #endregion


21 


22  using System.Collections.Generic;


23  using System.Linq;


24  using HeuristicLab.MainForm;


25 


26  namespace HeuristicLab.Problems.DataAnalysis.Views {


27  [View("Error Characteristics Curve")]


28  [Content(typeof(ITimeSeriesPrognosisSolution))]


29  public partial class TimeSeriesPrognosisSolutionErrorCharacteristicsCurveView : RegressionSolutionErrorCharacteristicsCurveView {


30  public TimeSeriesPrognosisSolutionErrorCharacteristicsCurveView()


31  : base() {


32  InitializeComponent();


33  }


34 


35  public new ITimeSeriesPrognosisSolution Content {


36  get { return (ITimeSeriesPrognosisSolution)base.Content; }


37  set { base.Content = value; }


38  }


39  public new ITimeSeriesPrognosisProblemData ProblemData {


40  get {


41  if (Content == null) return null;


42  return Content.ProblemData;


43  }


44  }


45 


46  protected override IEnumerable<IRegressionSolution> CreateBaselineSolutions() {


47  foreach (var sol in base.CreateBaselineSolutions())


48  yield return sol;


49 


50  IEnumerable<double> trainingStartValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices.Select(r => r  1).Where(r => r > 0)).ToList();


51  //AR1 model


52  double alpha, beta;


53  OnlineCalculatorError errorState;


54  OnlineLinearScalingParameterCalculator.Calculate(ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices.Where(x => x > 0)), trainingStartValues, out alpha, out beta, out errorState);


55  var ar1Solution = new TimeSeriesPrognosisAutoRegressiveModel(ProblemData.TargetVariable, new double[] { beta }, alpha).CreateTimeSeriesPrognosisSolution(ProblemData);


56  ar1Solution.Name = "AR(1)";


57  yield return ar1Solution;


58  }


59  }


60  }

