BookmarkSubscribeRSS Feed
Calcite | Level 5

We want to implement simple exponential smoothing model  to minimize mean square error by optimizing smoothing weights.


We are using proc ESM for the same. The formula used for forecasting the values is :


Ft+1 = αYt+ (1-α) Ft                                 


Ft+1=    forecast for the next period

α     =    smoothing constant

Yt=   observed value of series in period t (default rate)

Ft=    old forecast for period t


We have read that in order to start the algorithm the first forecasted value is taken as first actual value i.e. :


Ft =Yt


where  Ft is forecasted value for first iteration and Yt is the actual value.


When we are running the proc esm code , the first forecasted value in output dataset is not equal to the first actual value.


Please find the attached excel sheet of Time Series Data :input data and corresponding output data.


Level smoothing weight(α ) is taken as :0.6833 (automatically optimized by proc esm) and mean square error comes out to be :0.00264115


Please let us know how the first predicted value is being calculated in the output table.



Super User

Please include your code and log.


Can you post your reference that states the restriction that the first estimate is the lagged value? 



Calcite | Level 5


proc esm data=solver out=p outest=u outstat=h outfor=k lead=1 print=all printdetails; /*solver- name of dataset as given in excel sheet*/

id date interval=year; /*date is date column in dataset*/

forecast ft; /* ft is column in dataset for which we are forecasting values (values same as in excel-sheet)*/



There are no errors or warnings  in the log.


In the attached pdf it is given to start the algorithm first predicted value is taken as first actual value but after running the code it is not so.


SAS Employee

Hello -

Check out "Smoothing State Initialization" here:

As you already noticed ESM does not go for the approach you described.





Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 3 in conversation