title: R HoltWinters forecast package - avoiding overfitting data
body: <p>I am using the HoltWinters forecast package in R to generate forecasts from monthly call volume data.</p>
  
  <p>It works well most of the time but has a tendency to overfit data, particularly if there are special periods, for example a step change in call demand.</p>
  
  <p>In a recent example which has a step change in the middle sets alpha as 0.94, beta as 0 and gamma as 0, which generates an odd looking forecast.  </p>
  
  <pre><code>Month   Data
  1   7082
  2   6407
  3   5479
  4   5480
  5   5896
  6   6038
  7   5686
  8   6126
  9   6280
  10  6893
  11  6028
  12  5496
  13  3569
  14  3383
  15  3718
  16  3351
  17  3340
  18  3559
  19  3722
  20  3201
  21  3494
  22  2810
  23  2611
  24  2471
  25  7756
  26  6922
  27  7593
  28  6716
  29  7278
  30  7071
  </code></pre>
  
  <p>This is the R script that I have been using</p>
  
  <pre><code>scandata &lt;-read_csv("525-gash.csv");
  pages &lt;-scandata[,2];
  myts &lt;-ts(pages , start=c(2015, 1), frequency = 12)
  myforecast &lt;- HoltWinters (myts, seasonal ="additive", 
            optim.start = c(alpha = 0.2, beta = 0.1, gamma = 0.1));
  myholt = predict(myforecast, 12 , prediction.interval = FALSE);
  plot(myforecast,myholt);
  </code></pre>
  
  <p>In comparison if I set the Exponential smoothing parameters to standard accepted values - alpha as 0.2, beta as 0.1 and gamma as 0.1, I get a much better looking forecast.</p>
  
  <p>I would still like to use the auto fitting part of the forecast, but would like to put a range around alpha, beta and gamma.</p>
  
  <p>I have been trying to set limits on the automatic fitting so that alpha has to be between 0.1 and 0.5, gamma between 0.1 and 0.3 and gamma as between 0.1 and 0.3.</p>
  
  <p><a href="https://stat.ethz.ch/R-manual/R-devel/library/stats/html/HoltWinters.html" rel="noreferrer">https://stat.ethz.ch/R-manual/R-devel/library/stats/html/HoltWinters.html</a> </p>
  
  <p>It looks like this should be possible by setting the </p>
  
  <pre><code>optim.control = list() 
  </code></pre>
  
  <p>function but I have not been able to find a way to successfully set limits on alpha, beta and gamma to get this working.</p>
  
  <p>Does anyone know how to do this?</p>