Solved – Exponential Regression to Forecast Future Growth

linearnonlinear regressionregression

I need to use Exponential Regression to forecast the future earnings of a company. I have the past 10 years of quarterly data.

I can do linear regression but the data is not in a linear fashion. It is more exponential in nature. I want to do an exponential transformation on the data and then use linear regression on that.

My question is, when I calculate the exponential growth from quarter to quarter, should I annualize this number or should I keep it as is.

For example, let's say I have the following data:

Date        Profit  Growth  Annualized Growth Rate
01/01/2005  100.00      
04/01/2005  101.50  1.50%   6.08%
07/01/2005  103.02  1.50%   6.02%
10/01/2005  104.00  0.95%   3.76%
01/01/2006  106.00  1.92%   7.63%
04/01/2006  107.40  1.32%   5.36%
07/01/2006  109.90  2.33%   9.34%
10/01/2006  110.30  0.36%   1.44%
01/01/2007  112.90  2.36%   9.35%
04/01/2007  114.30  1.24%   5.03%
07/01/2007  116.10  1.57%   6.32%
10/01/2007  117.80  1.46%   5.81%
01/01/2008  119.50  1.44%   5.73%
04/01/2008  121.30  1.51%   6.04%
07/01/2008  123.90  2.14%   8.60%
10/01/2008  125.00  0.89%   3.52%
01/01/2009  126.40  1.12%   4.44%
04/01/2009  128.80  1.90%   7.70%
07/01/2009  130.10  1.01%   4.05%
10/01/2009  132.00  1.46%   5.79%
01/01/2010  134.90  2.20%   8.72%
04/01/2010  136.20  0.96%   3.91%
07/01/2010  138.50  1.69%   6.77%
10/01/2010  140.20  1.23%   4.87%
01/01/2011  142.90  1.93%   7.64%
04/01/2011  145.10  1.54%   6.24%
07/01/2011  147.80  1.86%   7.46%
10/01/2011  149.40  1.08%   4.29%
01/01/2012  151.50  1.41%   5.58%
04/01/2012  154.00  1.65%   6.62%
07/01/2012  159.00  3.25%   13.02%
10/01/2012  158.20  -0.50%  -2.00%
01/01/2013  162.00  2.40%   9.53%
04/01/2013  163.45  0.90%   3.63%
07/01/2013  165.00  0.95%   3.80%
10/01/2013  168.50  2.12%   8.42%
01/01/2014  170.30  1.07%   4.24%
04/01/2014  174.30  2.35%   9.53%
07/01/2014  175.00  0.40%   1.61%
10/01/2014  178.00  1.71%   6.80%
01/01/2015  181.50  1.97%   7.80%
04/01/2015  185.00  1.93%   7.82%

I want to take this data and say based on this, I project that the Profit in 4/1/2025 will be X.

What would be the best approach to do this?

My thinking is to use either the Growth or the Annualized Growth Rate (not sure which), do a linear regression on that. Then using that linear regression I could forecast that for quarter X the growth rate will be Y so therefore the profit should be Z. Then for quarter X+1 the growth rate will be Y+1 so therefore the profit should be Z+1. (not literally plus 1 but you get the point).

Am I on the right track?

Best Answer

This seems to be a lot simpler than you are imagining. You have quarterly data (please note, in an international forum, that presenting dates as month/day/year is not a universal default). You can fit an exponential directly in various ways, including as a generalized linear model with log link.

Here are some sample Stata results. Any good software should allow something similar if not identical. A quirk here is that for Stata quarterly dates are defined by an origin 1960q1 = 0, but this affects only the intercept below. An equation would be in those terms, with some rounding, exp(1.918 + 0.0149 quarter).

The key qualification here is whether you want to apply exponential smoothing instead. Otherwise the small print is that standard errors are very small, yet different assumptions about error family would change them. Nor does the model fit take any account of error dependence structure in time.

To get a forecast for a future time, plug in the future time to the equation.

In turn, this analysis may go further than is deserved, as these data are too well behaved for me to believe that they are real data. Similarly, the idea that you can get credible forecasts a decade ahead is one of the conventional absurdities in this area, so I leave that there.

. glm profit quarter, link(log) vce(robust)

Iteration 0:   log pseudolikelihood = -52.435485  
Iteration 1:   log pseudolikelihood = -43.130423  
Iteration 2:   log pseudolikelihood = -40.142152  
Iteration 3:   log pseudolikelihood = -40.142152  

Generalized linear models                         No. of obs      =         42
Optimization     : ML                             Residual df     =         40
                                                  Scale parameter =   .4157979
Deviance         =  16.63191795                   (1/df) Deviance =   .4157979
Pearson          =  16.63191795                   (1/df) Pearson  =   .4157979

Variance function: V(u) = 1                       [Gaussian]
Link function    : g(u) = ln(u)                   [Log]

                                                  AIC             =   2.006769
Log pseudolikelihood = -40.14215238               BIC             =  -132.8749

------------------------------------------------------------------------------
             |               Robust
      profit |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
     quarter |   .0149248   .0000545   273.99   0.000     .0148181    .0150316
       _cons |   1.917651   .0106924   179.35   0.000     1.896695    1.938608
------------------------------------------------------------------------------

enter image description here

Related Question