I am trying to help a friend in statistics and this question involving time series came up and I did not know what to do. I tried searching different stack exchange forums for answers, but I believe this might be to basic because I could find none. Now to the problem at hand:

The product sales in a business (billions of swedish crowns, SEC) have been the follwoing during the last three years.

| Year | Q. I | Q. II | Q. III | Q. IV |
| 2012 | 2.4 | 2.9 | 2.8 | 3.8 |
| 2013 | 2.7 | 3.2 | 3.2 | 4.3 |
| 2014 | 3.2 | 3.7 | 3.6 | 4.8 |

a) Seasonally adjust the time series with multiplicative model.

I am sorry for the bad table, this was the best I could do. How do we seasoanlly adjust the data? I know that this means that we try to account for the variability of different seasons, but how do we go about this in this example? I have found out that the multiplicative model is

\begin{align} \hat{y} = T\cdot S\cdot C\cdot I \end{align}

where $T$, $S$, $C$ and $I$ denote trend, seasonal, cylical and irregular component, respectively. So how do I compute these components? (I found this on wikipedia).

  • 2
    $\begingroup$ Your question essentially seems to be "how to estimate seasonal factors for a time series?". There are a number of methods of doing this, which makes this question too broad. For starters, see this. $\endgroup$
    – Dayne
    Nov 30, 2020 at 13:29
  • $\begingroup$ @Dayne Yes this is what I am trying to figure out. Thank you. $\endgroup$ Dec 1, 2020 at 14:01

1 Answer 1


Step 0: Need annual data, so add up the quarters. Then, apply a log transform to all the annual data converting from a multiplicative to a linear model analysis. You will also need the average of the annual logs.

Step 1: Working with just annual figures as logs, take the first difference between points. If there is only a simple underlying linear trend for the annual data this should produce a near constant differences between years (equates to a slope estimate upon, for example, 'averaging' differences). This is the Trend estimate here based from 2 differences produced from taking the difference of 3 annual figures converted to logs.

Step 2: Take second differences (the difference in the two 1st differences expressed in log values). This results here in just one number. If large then likely a Cyclical component, otherwise assume a value of zero and this is then a measure of the noise level (here referenced as the irregular component).

Step 3: Construct a fitted 3 point trend model for the log data. This annual log model is: Average of logs + Trend x time + Cyclical x time^2 where possible time values are 1, 2 and 3.

At this point, I would take the anti-log (for base 10, compute 10^(log)) for all of the fitted annual log points going back to a dollar analysis (and not the log of dollars).

Note, if there is both no Trend or Cyclical components (values are/near zero), then, the geometric mean (from the inverse of the average of the logs, the remaining term in log fit model) is the forecast for each year with a random irregular component (with an expected mean of zero).

Step 4: Compare (by dividing) say Quarter 1 to the [fitted model value (note: real dollars and not log value of dollars) for that year divided by four]. Similarly, repeat for the other quarters comparing again to respective Annual dollar Fit/4. 'Average' these respective quarter seasonal effects to arrive at your Seasonal quarter adjustment factors. Note, a functional value of 0.25 implies no seasonal effect, you are obtaining 1/4 of the annual. One could, per the cited Wikipedia reference, represent this season factor as 100 (from 400 times 0.25, and in the case of 400 times 0.30, this would be 120 implying a strong seasonal effect and to forecast the full year from this one quarter only, then multiply by 4 and divide by 1.2 as it usually over-represents the full year).

Done, you have a full Seasonal Trend Cyclical model.

Note: I have used the term average in quotes (namely 'average'), where one may decide to perform a more advanced weighting procedure to arrive at say a Trend estimate using, for example, a Least-Squares or even more advanced fitting algorithm data permitting.

  • $\begingroup$ -1 This is a grossly overcomplicated answer to a simple question. $\endgroup$
    – whuber
    Nov 30, 2020 at 14:49
  • $\begingroup$ Or, I view it as a potentially very complex issue (namely, seasonal time series analysis) obviously being introduced with more simple assumptions in likely a non-technical course. The concept of taking differences is not complex and accurately relates to trend analysis. Let the consumer of my suggested steps be the judge. $\endgroup$
    – AJKOER
    Nov 30, 2020 at 15:53
  • $\begingroup$ Now, it is true my answer is perhaps more complex than needed to answer this apparent homework exercise, but in such a course there could be a more data extensive project! My answer could be of aid in such a product as well. $\endgroup$
    – AJKOER
    Nov 30, 2020 at 16:30
  • $\begingroup$ If my step by step answer is indeed too complex, has anyone reviewed the reference provided by Dayne in a comment above (that was upvoted)? The latter includes topics of 'exponential smoothing', which I would suggest is, indeed, a "grossly overcomplicated" topic for this introductory question, and the source still, I would argue, does provides but limited assistant in directly answering the question. $\endgroup$
    – AJKOER
    Nov 30, 2020 at 16:41
  • $\begingroup$ Thank you for the extensive answer @AJKOER. It seems as though the fitted model you used is not dependent on the seasonally adjusted data, since you compute season adjustment factors at step 4. Is season adjustment implicit in some way? $\endgroup$ Dec 1, 2020 at 14:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.