A framework for the timely calculation of Swiss producer prices
[ Data ] [ GitHub ] [ Web Application ]
Producer prices in Switzerland, represented by the monthly Producer Price Index (PPI) of the Swiss Federal Statistical Office (FSO), are lagged. On the one hand, price surveys of companies are conducted only every second or every third month, sometimes even only semi-annually or annually. If no survey is conducted in a month, the value of the previous month is adopted. On the other hand, there are sectors where surveys are conducted in the first quarter of the year, for example, but the results are only included in the index one month later. Under the (plausible) assumption that prices are rigid and basically do not change very quickly, this procedure works quite well. However, there are always events that cause prices to change quickly. For example, when the Swiss National Bank abolished the minimum exchange rate against the euro and the Swiss franc appreciated strongly. Also currently the strong increase in oil prices caused by the Covid-19 crisis on the one hand and the Ukraine war on the other hand might lead to quicker than normal changes of prices. In such situations, the approach of the FSO has the consequence that the PPI reflects the actual price development with a delay. Here, I present a framework to overcome these problems and calculate a more timely PPI. The code for the calculations and regularly updated data can be found on github.
I provide a framework to solve the above problems. Instead of adopting the value of the previous month, I estimate a more realistic value using various statistical methods. In addition, I lag some of the indicators to account for the fact that survey data are incorporated later. The timely PPI calculated in this way differs considerably from the original PPI. The difference in the annual inflation rate differs by almost 2 percentage points (March 2015, see Figure above). In April 2021 the difference was around 1 p.p. Moreover, the timely PPI inflation significantly leads original PPI inflation (See Figure below). There is both a significant coincident correlation as well as a significant correlation with a lag of three months with the timely index. The provided timely indices start in December 2010. To simplify life, only the series that are available over the whole sample are used. The others end up in the “rest” residual as I describe below. It would in principle be possible to apply the methodology even further back. However, in 2010 the FSO has changed it’s NOGA classification. So a series named 0.1.11 before 2010 is not necesarily the same series after 2010. Hence, this would require an accurate mapping between the pre and post 2010 series.
To navigate through the different series and view the methods used, I have developed a web application that can be accessed at the following link (if it does not work, the free monthly time is exhausted): mxbu.shinyapps.io/ppiapp/. I hope this timely index and it’s components might be useful for researchers and policymakers. Let me now provide more details on the calculations.
Tree structure of PPI
The PPI is calculated from five weighted components, which are themselves calculated from weighted components. The granularity consists of a total of six levels. However, the price surveys are only performed for the lowest category (leaf nodes). A natural approach is therefore to represent the PPI in a tree structure (using the R package data.tree), calculate a timely index for the leaf nodes and then aggregate to the other levels up to the PPI. To illustrate the tree structure, here is an example of how the index for A Agricultural and forestry products is constructed.
It is noticeable that some nodes are labeled with “rest”. This is due to the fact that the FSO does not publish all collected price indicators. However, we know the weight of the published series in the overall index and can therefore calculate a residual, which is labeled with “rest”. Since 2010, the FSO updates the weighting every five years in December. Therefore, it is possible that there is a “rest” series for the period 2010 to 2015, for example, but not from 2015 to 2020. In this case, the series from 2015 to 2020 consists of nothing but zeros.
Methodology
In the next step, a more timely index is created for all leaf nodes (including “rest” nodes). The FSO states that the surveys are carried out regularly (see above the extract from the plan). The idea was therefore to estimate a monthly series using temporal disaggregation (See Chow-Lin, 19711) with exchange rate and oil price as indicators. Unfortunately, things look different in the data. For most series, prices change very irregularly which makes the use of the Chow-Lin method impossible. In such cases, the desired values are interpolated. Fortunately, there are still some series that are collected with the regularity indicated by the FSO. In these cases, Chow-Lin can be applied. A nice example is the index for tissue (see below). We see in the disaggregated series that the index dropped sharply both just before the introduction of the minimum exchange rate and after its removal. Economically, this makes sense, moreover, the exchange rate is strongly significant. It is not possible to use the above methods at the current edge. Therefore, timely values are forecasted using an ARIMAX model with exchange rate and oil price as exogenous variables. This might lead to slight revisions at the current edge.
Framework
The timely PPI calculation requires several steps
- Set up the data tree:
2.Assign initial series and weights to tree and implement shift if needed:
3.Create rest nodes and calculate rest series:
4.Remove repeating values (indicating that there was no survey in this month):
5.Calculate timely series for leaf nodes:
6.Finally, aggregate series to PPI and components:
We end up with a tree object with the name “tree”, which contains all relevant information. The tree object can be moved along with the $ sign: tree$C$21.2
. Each “node” of the tree has the following important attributes:
-$isLeaf: TRUE = index has no subcomponents.
-$FTSI: original series of the FSO.
-$FTSI.ND: original series of the OFS, non-changing values are set to NA.
-$FTS.C: Calculated timely series.
-$FTS.AG: As control: all original series are aggregated (must be equal to FTSI).
-$FTSI.MOD.TD: if isLeaf = TRUE, model of TD.
-$FTSI.MOD.AR: if isLeaf = TRUE, model of ARIMAX to update at current edge.
Tweaks
Since some things seemed implausible, the following tweaks were made:
-Looking at the index for “pharmaceutical specialties” and “steel and light metal construction” (21.2 and 25.1) it is noticeable that from 2016 onwards there is still a step function even after removing non-chaniging values. This might be because small companies report their prices monthly while the large companies report quarterly. The reports of small companies change the index 2 digits behind the decimal point. I think these small changes are negligible and not realistic and are therefore re-estimated.
-In contrast to the temporally disaggregated series, the indices that are interpolated cannot reflect the Swiss franc shock of 2015. This is taken into account by setting the December value of these series to that of the last change.
-At the current edge, the values are updated with an ARIMAX model to avoid the step function here as well.
-All indices are set to 100 in December 2020. This might lead to a “shift”.
-
Chow, G. C., & Lin, A. L. (1971). Best linear unbiased interpolation, distribution, and extrapolation of time series by related series. The review of Economics and Statistics, 372-375. ↩
Comments You need to have a GitHub Account to comment!
Post comment