Thursday 12 April 2012

M-O-M vs Y-O-Y inflation rates in India

Some time back I came across this article, by one of our alumni who is currently at NIPFP, which presents some caveats and shortcomings of different measure of inflation in India in a concise manner. Since my master's thesis topic revolves around inflation; I was in a better position to appreciate the author's insightful critique. It might have been the space constrain that held the author from graphically illustrating his point in his article, I'll try and substantiate his arguments using some graphs and R.

There is a recent concern about the rising levels of inflation in India; refer to this post for some numbers that support this claim. However, in this post I wish to illustrate the crucial differences in M-O-M vs Y-O-Y measure for inflation using elementary visualizations in R. From a researchers point of view the choice of variables is something that has to be meticulously addressed and dealt with; especially if one wishes to tread the ambitious path of "inflation forecasting". Before any theoretical mumbo-jumbo one needs to decide whether to work with M-O-M or Y-O-Y rates, or the kind of seasonal adjustment that is required for the data.

Some basic definitions

Inflation rate : Is the percentage change in the consumer price index(CPI).

M-O-M or Month on month inflation rate: Is defined as the monthly percentage change in the CPI series. For eg. January 2010 inflation rate will be the %age change in CPI from December 2009.

Y-O-Y or Year on year inflation rates : Is defined as the yearly percentage change in the CPI series. For eg. January 2010 inflation rate will be the %age change in the CPI from January 2009.

Seasonally adjusted CPI: Any macroeconomic time series, which has a frequency of less than an year, has to be de-seasonalized before being fed into any model. This is basically done to eliminate the seasonal/cyclical effects that might influence the analysis.

The monthly CPI-IW(industrial worker) series was obtained from the RBI handbook of statistics and the data spans from1990M4 : 2011M6. The seasonal adjustment has been done using the X-12 ARIMA filter in EVIEWS.(I am not very proud of this confession, but there were some issues with the "x12" package in R that I could not resolve). 

The below figure shows the Y-O-Y and M-O-M measure of inflation using the seasonally adjusted and unadjusted CPI-IW series.






The difference in the seasonally adjusted and unadjusted series is not evident from the above plots. However, the difference between the M-O-M and Y-O-Y measure for inflation is surely visible by eye balling the plots. To illustrate the difference between the seasonally adjusted and unadjusted measures we plot the same measures with and without the adjustment.





The difference in the two series is not evident in the Y-O-Y rates but we can clearly see that the in M-O-M rates the dynamics gets substantially altered after the seasonal adjustment. This is fairly intuitive since computing the Y-O-Y rate is analogous to passing the series through a (1-B^12) filter(where "B" is the lag operator) which discounts the annual seasonal effect.

Another interesting observation that I made about the 2 series is that Y-O-Y rate is not I(0)(at 5% significance), i.e it has a unit root. The M-O-M rate, on the other hand, comes out clean after being fed into the adf.test() command. Now, I(0)ness is a wonderful property which brings a wry smile to every time series econometricians' face when the p-values drops below 0.01 in the adf.test(). But this apparent conundrum, where the Y-O-Y and M-O-M yield different order of integration, poses a dilemma for the researcher.

The M-O-M inflation captures the short run inflation dynamics, which has less variance and has high forecast ability, that might be helpful in portfolio adjustment for active financial investors. The Y-O-Y rates capture the long run dynamics of inflation, which has high variance and low forecast ability, that might be helpful for the central banker to track.

Here are the codes that I used for the above exercise: