I have started up working on my agent-based model again. Although the modelling work is extremely preliminary (I have a working model, but it is arguably silly), it suggests to me a natural way to discuss topics like this. In the case of inflation aggregates, there has been a lot of ink spilled about aggregation problems, both by heterodox authors (post-Keynesians, and even Austrians) as well as the mainstream. If I were attempting to write an advanced text on inflation (my plan is to write one after dealing with the easy stuff in a primer), I would have to wade through that literature. The problem with that literature is straightforward: my eyes glaze over when reading it, and I suspect that many readers of my summary would end up in the same boat.
The way to do an end run around the dead hand of obscure ancient academic arguments is to look at concrete examples of the real problems that crop up in analysis. Blair Fix’s statistical analysis is one way to do it. Another way would be to use models that illustrate how problems develop. The advantage of using models is that people can endlessly nitpick about statistical methodology, whereas models are transparent. Unfortunately, my framework is not yet at a stage to offer simulation data, but I can explain the issues involves in behavioural rule development (which are currently in progress).
What I am Not Referring To
Since these arguments are extremely preliminary, I want to keep this article as short as possible. I can see a number of misinterpretations of the thesis, so I will run through them first.
Aggregate CPI is (possibly) useful in the following contexts.
Attempting to measure the change of something resembling “the cost of living.” How well the CPI does this is an entirely different argument, but it is arguably why most people are interested in the CPI.
The reader’s job involves forecasting or trading the CPI. Sure, that’s nice. The thing is that some people spend their working lives trying to forecast the outcomes of sports events, but those outcomes are not normally considered important for the macro-economy.
Central banks target consumer price indices. This drags the inflation aggregates into the macro-economy discussion by brute force. However, central banks could do something like target gold prices, which turns the gold price from an insignificant piece of trivia (other than for gold traders or producers) into a variable of wider concern.
With those out of the way, the concern is: is the change in the aggregate CPI otherwise of concern? The classic example of such logic is the use of “real” interest rates: we judge whether the policy interest rate are “restrictive” or not by subtracting the aggregate inflation rate from the nominal rate.1 This is not a trivial issue: conventional thinking results in the expectation that the economy is constantly about to spin off into a inflationary/deflationary spiral. For example, if the aggregate CPI rises, then “real” interest rates fall if nominal interest rates do not go up, which allegedly causes more inflationary pressures.
Single Good Model
We can start with a model with a single traded good. For example, imagine an ahistorical video game simulation of a city state from 4000 years ago with a fiat currency, and monetary transactions mainly consist of paying workers with money, and they buy some foodstuff. Everything else would be non-modelled exchange transactions (e.g., family members make clothing).
In this case, the price of food is obviously important for the simulation, and is interchangeable with an aggregate consumer price measure. Such a single commodity economy is entirely standard in conventional aggregated macro models. (I am currently working with a single good model in my agent-based framework, so as to allow “calibration” of the model versus conventional ones.)
What happens as we add new traded commodities?
Another Foodstuff: No Problem
If we added another type of food — for example, have “grain” and “meat” — it would slot in fairly easily. We might have a class division of consumption (rich households eat more meat), but if we have households who eat both, there would be a consumption function that would trade off consumption based on price. We could then imagine creating an aggregate measure of “food prices” for which the aggregate makes some sense.
Adding A Multi-Use Good: Problems
Instead, let us imagine that we add wood as the second good. It would be consumed by households to provide heating and to cook food. But it also is used in production processes, as well as a capital good (build trading ships, buildings).
Now we can ask: what do the decision rules of the agents look like? For firms within the model, they are going to look at the state of the “food” and “wood” markets separately. If the simulation wanted to capture the reality of agrarian societies, the “food market” would be sensitive to variable crop yields (although real societies would have diversified food sources). “Wood” output might be somewhat more stable, but presumably sensitive to new supply sources, etc.
The aggregated price might only matter to the consumption decisions of households — if we believed neoclassical consumption functions. But if we assumed that out model households behaved like modern Canadians, even there we run into problems. Wood would also be used to build houses, and so aggregate savings decisions would be driven by the housing market. And what drives the housing market? Once again, if the society is like modern Canada, that would depend on whether foreign students are coming in (from countries with capital controls) and buying expensive houses.
(My wood example is matched by the real world situation of energy prices. Although we do not think of energy sources as being capital goods, they are critically important for almost all production processes. Moreover, things like the oil market is a global affair, and thus not sensitive to things like monetary policy in a small country.)
In summary, the only place where the aggregate price index might “normally” show up in agent decision rules is in the household consumption function — and it is unclear whether that behaviour matches the way that households behave in the real world, or it an assumption that is forced into the model because it gives the desired results.
I used scare quotes around “normally” since there is an important exception — indexation.
The Indexation Exception
One easy way to embed the aggregate price index into agent behaviour is to have them index prices. This could either be literally indexing prices, or “indirect indexing”: adjusting prices to match the changes in the local currency versus a “hard currency” (or gold, in the Gold Standard era).
In commodities markets, a standard trading adage is a variant of the following “high prices are the cure for high prices.” If we look at individual markets, any price spikes due to shortages is met by changes of behaviour of producers and consumers. If we are to believe the clergy of the free market, price signals are key component of capitalism. As such, different markets will follow different paths. However, indexing all transactions has the effect of dragging them all in a coherent fashion.
As such, it might not be a complete surprise that inflation was highest in the developed countries when cost of living adjustments were the most potent, and developing countries that have high foreign exchange pass through into prices have the most difficulties with inflation. (It is usually safe to ignore emerging market strategists’ discussions of developed country inflation since they over-estimate exchange rate pass through by at least two orders of magnitude.)
One of the advantages of agent-based modelling is that we can see the effect of adding indexation to some contracts, and see whether my guess about those dynamics holds up in model economies. With an aggregated model, the feedback effects of indexation would be trivially baked into the model.
Concluding Remarks
Outside of the few obvious exceptions, it is probably safest to treat aggregated price indices as the output of economic dynamics, but its usefulness as an input is far more questionable. The prices underlying the index have their own dynamics, and so the only way to deal with them is to simulate each component separately.
Monetarists have an objection to that conventional description that only makes sense to Monetarists.
《the price of food is obviously important for the simulation》
ReplyDeleteWhat sets the price, and how is that not arbitrary?
《If the simulation wanted to capture the reality of agrarian societies, the “food market” would be sensitive to variable crop yields》
Do we see farmers producing more as prices fall? Is food overproduction such the norm that Trump had to strong-arm Canada and China into buying vast agricultural overproduction? Are you assuming scarcity and arbitrarily introducing it into your model?
What if prices are primarily moved by irrational expectations? Remember when oil spiked over trader fears about a Libya war that didn't actually happen? But did prices go up immediately, based on irrational, panic-driven fears of arbitrary traders?
Shouldn't you really model supply chains as payment chains in reverse?
Do power plants start with finance?
“ What sets the price, and how is that not arbitrary?”
DeleteThere is a market with orders, like a financial or commodities futures market. Agent sell at a markup over costs, and since this is a single good economy, the only input now is labour. The labour costs are essentially arbitrary, largely determined by the JG wage.
I have a new article that describes the state of the model. As a quick summary, all behavioural logic is as simple as possible. More complex behaviour requires the agent’s having more information, and I need to build up the data gathering. Also, the model needs some agents to set prices somewhat blindly to populate markets. When the model initialises, there are no orders in the market, and so there is no information to determine input/output costs.
The current model is extremely stable, which is not surprising. Production is deterministic, and there are no capital goods. Nothing can generate a business cycle. I need this as I want to make sure the model behaves as expected - I already had one bug that resulted in money disappearing.
This comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDelete