Index: branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/TimeSeriesPrognosisAutoRegressiveModel.cs
===================================================================
--- branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/TimeSeriesPrognosisAutoRegressiveModel.cs	(revision 8477)
+++ branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/TimeSeriesPrognosisAutoRegressiveModel.cs	(revision 8486)
@@ -22,4 +22,5 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -65,9 +66,13 @@
         int row = rowsEnumerator.Current;
         int horizon = horizonsEnumerator.Current;
+        if (row - TimeOffset < 0) {
+          yield return Enumerable.Repeat(double.NaN, horizon);
+          continue;
+        }
+
         double[] prognosis = new double[horizon];
-
         for (int h = 0; h < horizon; h++) {
           double estimatedValue = 0.0;
-          for (int i = 1; i < TimeOffset; i++) {
+          for (int i = 1; i <= TimeOffset; i++) {
             int offset = h - i;
             if (offset >= 0) estimatedValue += prognosis[offset] * Phi[i - 1];
@@ -90,4 +95,9 @@
       foreach (int row in rows) {
         double estimatedValue = 0.0;
+        if (row - TimeOffset < 0) {
+          yield return double.NaN;
+          continue;
+        }
+
         for (int i = 1; i <= TimeOffset; i++) {
           estimatedValue += targetVariables[row - i] * Phi[i - 1];
Index: branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/TimeSeriesPrognosisMovingAverageModel.cs
===================================================================
--- branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/TimeSeriesPrognosisMovingAverageModel.cs	(revision 8477)
+++ branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/TimeSeriesPrognosisMovingAverageModel.cs	(revision 8486)
@@ -60,15 +60,15 @@
         int horizon = horizonsEnumerator.Current;
         int startIndex = row - WindowSize;
+        if (startIndex < 0) {
+          yield return Enumerable.Repeat(double.NaN, horizon);
+          continue;
+        }
 
-        if (startIndex < 0) startIndex = 0;
-        int count = row - startIndex - 1;
-
-        List<double> targetValues = dataset.GetDoubleValues(TargetVariable, Enumerable.Range(startIndex, count)).ToList();
+        List<double> targetValues = dataset.GetDoubleValues(TargetVariable, Enumerable.Range(startIndex, WindowSize)).ToList();
         int position = 0;
         for (int i = 0; i < horizon; i++) {
-          double prognosis = targetValues.GetRange(position, count).Average();
+          double prognosis = targetValues.GetRange(position, WindowSize).Average();
           targetValues.Add(prognosis);
-          if (count < WindowSize) count++;
-          else position++;
+          position++;
         }
         yield return targetValues.GetRange(targetValues.Count - horizon, horizon);
@@ -80,13 +80,10 @@
 
     public IEnumerable<double> GetEstimatedValues(Dataset dataset, IEnumerable<int> rows) {
-      return GetPrognosedValues(dataset, rows, rows.Select(r => 1)).SelectMany(e => e);
-    }
-    public IEnumerable<double> GetEstimatedValues(Dataset dataset, IEnumerable<int> rows, int x) {
       var targetValues = dataset.GetReadOnlyDoubleValues(TargetVariable).ToList();
       foreach (int row in rows) {
-        yield return targetValues.GetRange(row - WindowSize, WindowSize).Average();
+        if (row - WindowSize < 0) yield return double.NaN;
+        else yield return targetValues.GetRange(row - WindowSize, WindowSize).Average();
       }
     }
-
 
     public ITimeSeriesPrognosisSolution CreateTimeSeriesPrognosisSolution(ITimeSeriesPrognosisProblemData problemData) {
Index: branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblemData.cs
===================================================================
--- branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblemData.cs	(revision 8477)
+++ branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblemData.cs	(revision 8486)
@@ -1578,5 +1578,8 @@
     }
 
-    public TimeSeriesPrognosisProblemData() : this(defaultDataset, defaultAllowedInputVariables, defaultTargetVariable) { }
+    public TimeSeriesPrognosisProblemData()
+      : this(defaultDataset, defaultAllowedInputVariables, defaultTargetVariable) {
+      TrainingPartition.Start = 50;
+    }
     public TimeSeriesPrognosisProblemData(Dataset dataset, IEnumerable<string> allowedInputVariables, string targetVariable)
       : base(dataset, allowedInputVariables, targetVariable) {
@@ -1587,4 +1590,6 @@
       TestHorizonParameter.Hidden = true;
 
+      TrainingPartition.Start = Math.Min((int)(TrainingPartition.Size * 0.2), 50);
+
       RegisterParameterEventHandlers();
     }
