23. Heterogeneous Beliefs and Financial Markets#

23.1. Overview#

A likelihood ratio process lies behind Lawrence Blume and David Easley’s answer to their question “If you’re so smart, why aren’t you rich?” [Blume and Easley, 2006].

Blume and Easley constructed formal models to study how differences of opinions about probabilities governing risky income processes would influence outcomes and be reflected in prices of stocks, bonds, and insurance policies that individuals use to share and hedge risks.

Note

[Alchian, 1950] and [Friedman, 1953] conjectured that, by rewarding traders with more realistic probability models, competitive markets in financial securities put wealth in the hands of better informed traders and help make prices of risky assets reflect realistic probability assessments.

Here we’ll provide an example that illustrates basic components of Blume and Easley’s analysis.

Our main tools are the likelihood ratio processes and Kullback–Leibler divergences studied in Likelihood Ratio Processes.

We’ll focus only on their analysis of an environment with complete markets in which trades in all conceivable risky securities are possible.

We’ll study two alternative arrangements:

  • perfect socialism in which individuals surrender their endowments of consumption goods each period to a central planner who then dictatorially allocates those goods

  • a decentralized system of competitive markets in which selfish price-taking individuals voluntarily trade with each other in competitive markets

The fundamental theorems of welfare economics will apply and assure us that these two arrangements end up producing exactly the same allocation of consumption goods to individuals provided that the social planner assigns an appropriate set of Pareto weights.

Note

You can learn about how the two welfare theorems are applied in modern macroeconomic models in this lecture on a planning problem and this lecture on a related competitive equilibrium. This quantecon lecture presents a recursive formulation of complete markets models with homogeneous beliefs.

Let’s start by importing some Python tools.

import matplotlib.pyplot as plt
import numpy as np
from numba import vectorize, jit
from math import gamma
from scipy.integrate import quad
from scipy.special import expit

rng = np.random.default_rng()

23.2. Review: likelihood ratio processes#

Likelihood Ratio Processes studies likelihood ratio processes in detail.

We recall the facts that we use here.

A nonnegative random variable \(W\) has one of two probability density functions, either \(f\) or \(g\).

We assume that \(f\) and \(g\) both put positive probabilities on the same intervals of possible realizations of the random variable \(W\).

For a sequence \(\{w_t\}_{t=1}^\infty\) of IID draws, the time \(t\) likelihood ratio is

\[ \ell (w_t)=\frac{f\left(w_t\right)}{g\left(w_t\right)},\quad t\geq1, \]

and the likelihood ratio process is

\[ L\left(w^{t}\right)=\prod_{i=1}^{t} \ell (w_i), \]

where \(w^t=\{ w_1,\dots,w_t\}\) is a history of observations up to and including time \(t\).

We write \(L_t = L(w^t)\).

The likelihood ratio process satisfies the recursion \(L(w^t) = \ell (w_t) L (w^{t-1})\).

Suppose that a density \(h\) generates the data.

Let \(K_f = KL(h, f)\) and \(K_g = KL(h, g)\) be the Kullback–Leibler divergences of \(f\) and \(g\) from \(h\).

The strong law of large numbers applied to \(\log L_t = \sum_{i=1}^t \log \ell(w_i)\) implies

\[ \frac{1}{t} \log L_t \rightarrow K_g - K_f \quad \text{almost surely under } h . \]

A helpful formula in Likelihood Ratio Processes derives the corresponding formula for \(\frac{1}{t} E_h [\log L_t]\).

When \(K_f < K_g\), \(L_t \rightarrow +\infty\); when \(K_f > K_g\), \(L_t \rightarrow 0\).

When \(h = f\), the drift of \(\log L_t\) is \(KL(f, g) > 0\); when \(h = g\), it is \(-KL(g, f) < 0\).

The following Python code defines \(f\) and \(g\) as two Beta densities.

# Parameters in the two Beta distributions.
F_a, F_b = 1, 1
G_a, G_b = 3, 1.2

@vectorize
def p(x, a, b):
    r = gamma(a + b) / (gamma(a) * gamma(b))
    return r * x** (a-1) * (1 - x) ** (b-1)

# The two density functions.
f = jit(lambda x: p(x, F_a, F_b))
g = jit(lambda x: p(x, G_a, G_b))

23.3. Blume and Easley’s setting#

Let the random variable \(s_t \in (0,1)\) at time \(t =0, 1, 2, \ldots\) be distributed according to the same Beta distribution with parameters \(\theta = \{\theta_1, \theta_2\}\).

We’ll denote this probability density as

\[ \pi(s_t|\theta) \]

Below, we’ll often just write \(\pi(s_t)\) instead of \(\pi(s_t|\theta)\) to save space.

Let \(s_t \equiv y_t^1\) be the endowment of a nonstorable consumption good that a person we’ll call “agent 1” receives at time \(t\).

Let a history \(s^t = [s_t, s_{t-1}, \ldots, s_0]\) be a sequence of i.i.d. random variables with joint distribution

\[ \pi_t(s^t) = \pi(s_t) \pi(s_{t-1}) \cdots \pi(s_0) \]

So in our example, the history \(s^t\) is a comprehensive record of agent \(1\)’s endowments of the consumption good from time \(0\) up to time \(t\).

If agent \(1\) were to live on an island by himself, agent \(1\)’s consumption \(c^1(s_t)\) at time \(t\) is

\[c^1(s_t) = y_t^1 = s_t. \]

But in our model, agent 1 is not alone.

23.4. Nature and agents’ beliefs#

Nature draws i.i.d. sequences \(\{s_t\}_{t=0}^\infty\) from \(\pi_t(s^t)\).

  • so \(\pi\) without a superscript is nature’s model

  • but in addition to nature, there are other entities inside our model – artificial people that we call “agents”

  • each agent has a sequence of probability distributions over \(s^t\) for \(t=0, \ldots\)

  • agent \(i\) thinks that nature draws i.i.d. sequences \(\{s_t\}_{t=0}^\infty\) from \(\{\pi_t^i(s^t)\}_{t=0}^\infty\)

    • agent \(i\) is mistaken unless \(\pi_t^i(s^t) = \pi_t(s^t)\)

Note

A rational expectations model would set \(\pi_t^i(s^t) = \pi_t(s^t)\) for all agents \(i\).

There are two agents named \(i=1\) and \(i=2\).

At time \(t\), agent \(1\) receives an endowment

\[ y_t^1 = s_t \]

of a nonstorable consumption good, while agent \(2\) receives an endowment of

\[ y_t^2 = 1 - s_t \]

The aggregate endowment of the consumption good is

\[ y_t^1 + y_t^2 = 1 \]

at each date \(t \geq 0\).

At date \(t\) agent \(i\) consumes \(c_t^i(s^t)\) of the good.

A (non wasteful) feasible allocation of the aggregate endowment of \(1\) each period satisfies

\[ c_t^1 + c_t^2 = 1 . \]

23.5. A socialist risk-sharing arrangement#

In order to share risks, a benevolent social planner dictates a history-dependent consumption allocation that takes the form of a sequence of functions

\[ c_t^i = c_t^i(s^t) \]

that satisfy

(23.1)#\[ c_t^1(s^t) + c_t^2(s^t) = 1 \]

for all \(s^t\) for all \(t \geq 0\).

To design a socially optimal allocation, the social planner wants to know what each agent \(i\) believes about the endowment sequence and how they feel about bearing risks.

As for the endowment sequences, agent \(i\) believes that nature draws i.i.d. sequences from joint densities

\[ \pi_t^i(s^t) = \pi^i(s_t) \pi^i(s_{t-1}) \cdots \pi^i(s_0) \]

As for attitudes toward bearing risks, agent \(i\) has a one-period utility function

\[ u(c_t^i) = \ln (c_t^i) \]

with marginal utility of consumption in period \(t\)

\[ u'(c_t^i) = \frac{1}{c_t^i} \]

Putting its beliefs about its random endowment sequence and its attitudes toward bearing risks together, agent \(i\) has intertemporal utility function

(23.2)#\[ V^i = \sum_{t=0}^{\infty} \sum_{s^t} \delta^t u(c_t^i(s^t)) \pi_t^i(s^t) , \]

where \(\delta \in (0,1)\) is an intertemporal discount factor, and \(u(\cdot)\) is a strictly increasing, concave one-period utility function.

Because \(s_t\) has a density, \(\sum_{s^t}\) stands for an integral \(\int \cdots \, ds^t\) over histories \(s^t\), here and below.

23.6. Social planner’s allocation problem#

The benevolent dictator has all the information it requires to choose a consumption allocation that maximizes the social welfare criterion

(23.3)#\[ W = \lambda V^1 + (1-\lambda) V^2 \]

where \(\lambda \in [0,1]\) is a Pareto weight that tells how much the planner likes agent \(1\) and \(1 - \lambda\) is a Pareto weight that tells how much the social planner likes agent \(2\).

Setting \(\lambda = .5\) expresses “egalitarian” social preferences.

Notice how social welfare criterion (23.3) takes into account both agents’ preferences as represented by formula (23.2).

This means that the social planner knows and respects

  • each agent’s one period utility function \(u(\cdot) = \ln(\cdot)\)

  • each agent \(i\)’s probability model \(\{\pi_t^i(s^t)\}_{t=0}^\infty\)

Consequently, it is natural to anticipate that these objects will appear in the social planner’s rule for allocating the aggregate endowment each period.

Let \(\theta_t(s^t)\) be a Lagrange multiplier on feasibility constraint (23.1) at history \(s^t\).

First-order necessary conditions for maximizing welfare criterion (23.3) subject to the feasibility constraint (23.1) are

(23.4)#\[ \lambda \delta^t \frac{\pi_t^1(s^t)}{c_t^1(s^t)} = \theta_t(s^t), \qquad (1-\lambda) \delta^t \frac{\pi_t^2(s^t)}{c_t^2(s^t)} = \theta_t(s^t) . \]

Dividing the second condition by the first gives

\[\frac{\pi_t^2(s^t)}{\pi_t^1(s^t)} \frac{(1/c_t^2(s^t))}{(1/c_t^1(s^t))} = \frac{\lambda}{1-\lambda}\]

which can be rearranged to become

(23.5)#\[ \frac{c_t^1(s^t)}{c_t^2(s^t)} = \frac{\lambda}{1-\lambda} l_t(s^t) \]

where

\[ l_t(s^t) = \frac{\pi_t^1(s^t)}{\pi_t^2(s^t)} \]

is the likelihood ratio of agent 1’s joint density to agent 2’s joint density.

The cumulative likelihood ratio \(l_t(s^t)\) is the counterpart of \(L_t\) in the review above, with \(f = \pi^1\), \(g = \pi^2\), and histories that start at date \(0\).

The one-period likelihood ratio is \(\pi^1(s_t)/\pi^2(s_t)\).

Using

\[c_t^1(s^t) + c_t^2(s^t) = 1\]

we can rewrite allocation rule (23.5) as

\[\frac{c_t^1(s^t)}{1 - c_t^1(s^t)} = \frac{\lambda}{1-\lambda} l_t(s^t)\]

or

\[c_t^1(s^t) = \frac{\lambda}{1-\lambda} l_t(s^t)(1 - c_t^1(s^t))\]

which implies that the social planner’s allocation rule is

(23.6)#\[ c_t^1(s^t) = \frac{\lambda l_t(s^t)}{1-\lambda + \lambda l_t(s^t)} \]

If we define a temporary or continuation Pareto weight process as

\[ \lambda_t(s^t) = \frac{\lambda l_t(s^t)}{1-\lambda + \lambda l_t(s^t)}, \]

then we can represent the social planner’s allocation rule as

\[ c_t^1(s^t) = \lambda_t(s^t) \]

and of course

\[ c_t^2(s^t) = 1- \lambda_t(s^t) . \]

Substituting \(c_t^1(s^t) = \lambda_t(s^t)\) into the first condition in (23.4) gives

(23.7)#\[ \theta_t(s^t) = \delta^t \bigl[\lambda \pi_t^1(s^t) + (1-\lambda) \pi_t^2(s^t)\bigr] . \]

The multiplier \(\theta_t(s^t)\) is the planner’s shadow price of one unit of consumption at date \(t\) after history \(s^t\), measured in units of social welfare \(W\).

23.7. If you’re so smart, \(\ldots\)#

Let’s compute some values of limiting allocations (23.6) for some interesting possible limiting values of the likelihood ratio process \(l_t(s^t)\).

As our first case, let’s suppose that the two agents have identical beliefs, \(\pi^1 = \pi^2\), so that

\[l_t (s^t)= 1 \ \text{ for all } t; \quad c_t^1 = \lambda\]
  • In this case, the consumption allocation stays put at a \(\lambda, 1 - \lambda\) split between the two agents.

As our second case, let’s suppose that

\[l_\infty (s^\infty) = 0; \quad c_\infty^1 = 0\]
  • In this case, agent 2 is “smarter” than agent 1, and agent 1’s share of the aggregate endowment converges to zero.

As our third case, let’s suppose that

\[l_\infty (s^\infty)= \infty; \quad c_\infty^1 = 1\]
  • In this case, agent 1 is smarter than agent 2, and agent 1’s share of the aggregate endowment converges to 1.

Kullback–Leibler divergences of the agents’ beliefs from nature’s density determine which case occurs.

Let

\[ KL(\pi, \pi^i) = \int \pi(s) \log \frac{\pi(s)}{\pi^i(s)} \, ds . \]

When nature draws \(s_t\) IID from \(\pi\), \(\log l_t(s^t) = \sum_{j=0}^t \log [\pi^1(s_j)/\pi^2(s_j)]\) is a sum of IID random variables with mean

\[ E_\pi \left[\log \frac{\pi^1(s)}{\pi^2(s)}\right] = KL(\pi, \pi^2) - KL(\pi, \pi^1) . \]

The strong law of large numbers implies

(23.8)#\[ \frac{1}{t} \log l_t(s^t) \rightarrow KL(\pi, \pi^2) - KL(\pi, \pi^1) \quad \text{almost surely}. \]

Formula (23.8) is the formula in A helpful formula of Likelihood Ratio Processes with \(h = \pi\), \(f = \pi^1\), and \(g = \pi^2\).

It implies:

  • if \(KL(\pi, \pi^1) < KL(\pi, \pi^2)\), then \(l_t \rightarrow +\infty\) and \(c_t^1 \rightarrow 1\)

  • if \(KL(\pi, \pi^1) > KL(\pi, \pi^2)\), then \(l_t \rightarrow 0\) and \(c_t^1 \rightarrow 0\)

  • if \(KL(\pi, \pi^1) = KL(\pi, \pi^2)\) and \(\pi^1 \neq \pi^2\), then \(\log l_t\) is a random walk with zero drift and positive variance; its \(\limsup\) is \(+\infty\) and its \(\liminf\) is \(-\infty\), so \(c_t^1\) swings between values near \(0\) and values near \(1\) and never settles down

Exercise 23.3 studies the third case.

“Smarter” means closer to nature’s \(\pi\) in Kullback–Leibler divergence.

An agent with correct beliefs, \(\pi^i = \pi\), has \(KL(\pi, \pi^i) = 0\) and drives out any agent whose beliefs differ.

Sandroni [2000] and Blume and Easley [2006] prove market selection results of this kind for more general economies.

Note

These three cases are somehow telling us about how relative wealths of the agents evolve as time passes.

  • when the two agents have identical beliefs and \(\lambda \in (0,1)\), agent 1’s wealth share stays at \(\lambda\) perpetually.

  • when agent 1 is smarter and \(\lambda \in (0,1)\), agent 1 eventually “owns” the entire continuation endowment and agent 2 eventually “owns” nothing.

  • when agent 2 is smarter and \(\lambda \in (0,1)\), agent 2 eventually “owns” the entire continuation endowment and agent 1 eventually “owns” nothing.

We define continuation wealths precisely after we construct a competitive equilibrium price system below.

Soon we’ll do some simulations that will shed further light on possible outcomes.

But before we do that, let’s take a detour and study the “shadow prices” \(\theta_t(s^t)\) in (23.7) for the social planning problem.

We shall soon see that these shadow prices can readily be converted to “equilibrium prices” for a competitive equilibrium.

Doing this will allow us to connect our analysis with claims by [Alchian, 1950] and [Friedman, 1953] that transfers of wealth coming from trades in competitive asset markets eventually make prices of risky assets reflect realistic probability assessments.

23.8. Competitive equilibrium prices#

Two fundamental welfare theorems for general equilibrium models lead us to anticipate that there is a connection between the allocation that solves the social planning problem we have been studying and the allocation in a competitive equilibrium with complete markets in contingent claims to time- and history-dependent consumption goods.

Note

For the two welfare theorems and their history, see https://en.wikipedia.org/wiki/Fundamental_theorems_of_welfare_economics. Again, for applications to a classic macroeconomic growth model, see this lecture on a planning problem and this lecture on a related competitive equilibrium

Such a connection prevails for our model.

We’ll sketch it now.

In a competitive equilibrium, no social planner dictatorially collects everybody’s endowments and then reallocates them.

Instead, there is a comprehensive centralized market that meets at one point in time.

There are prices at which price-taking agents can buy or sell whatever goods that they want.

Trade is multilateral in the sense that a “Walrasian auctioneer” who lives outside the model finds prices at which supply equals demand for every good.

Each agent faces a budget constraint.

That budget constraint requires that the total value of the agent’s endowment stream be at least as large as the total value of its consumption stream.

These values are computed at price vectors that the agents take as given – the agents are “price-takers” who assume that they can buy or sell whatever quantities that they want at those prices.

Suppose that at time \(-1\), before time \(0\) starts, agent \(i\) can purchase one unit \(c_t(s^t)\) of consumption at time \(t\) after history \(s^t\) at price \(p_t(s^t)\).

The price vector is very long:

  • there is one price \(p_t(s^t)\) for each history \(s^t\) at every date \(t = 0, 1, \ldots, \).

  • so there are as many prices as there are histories and dates.

The auctioneer sets these prices at time \(-1\), before the economy starts.

The market meets once at time \(-1\).

At times \(t =0, 1, 2, \ldots\) trades made at time \(-1\) are simply executed, i.e., the promised deliveries are made.

  • in the background, there is an “enforcement” procedure that forces agents to carry out the exchanges or “deliveries” that they agreed to at time \(-1\).

We want to study how agents’ probability models influence equilibrium prices.

Agent \(i\) faces a single intertemporal budget constraint

(23.9)#\[ \sum_{t=0}^\infty\sum_{s^t} p_t(s^t) c_t^i (s^t) \leq \sum_{t=0}^\infty\sum_{s^t} p_t(s^t) y_t^i (s^t) \]

Because \(s_t\) has a density, \(p_t(s^t)\) is a price density: \(p_t(s^t) \, ds^t\) is the time \(-1\) price of one unit of consumption at date \(t\) delivered if the history lands in a small set \(ds^t\) around \(s^t\).

According to budget constraint (23.9), trade is multilateral in the following sense

  • imagine that agent \(i\) first sells his random endowment stream \(\{y_t^i (s^t)\}\) and then uses the proceeds (i.e., his “wealth”) to purchase a random consumption stream \(\{c_t^i (s^t)\}\).

Agent \(i\) attaches a Lagrange multiplier \(\mu_i\) to budget constraint (23.9) and once-and-for-all chooses a consumption plan \(\{c^i_t(s^t)\}_{t=0}^\infty\) that maximizes criterion (23.2) subject to budget constraint (23.9).

This means that the agent \(i\) chooses many objects, namely, \(c_t^i(s^t)\) for all \(s^t\) for \(t = 0, 1, 2, \ldots\).

For convenience, let’s remind ourselves of criterion \(V^i\) defined in (23.2):

\[ V^i = \sum_{t=0}^{\infty} \sum_{s^t} \delta^t u(c_t^i(s^t)) \pi_t^i(s^t) \]

First-order necessary conditions for maximizing objective \(V^i\) defined in (23.2) with respect to \(c_t^i(s^t)\) are

\[ \delta^t u'(c^i_t(s^t)) \pi_t^i(s^t) = \mu_i p_t(s^t) , \]

which we can rearrange to obtain

(23.10)#\[ p_t(s^t) = \frac{ \delta^t \pi_t^i(s^t)}{\mu_i c^i_t(s^t)} \]

for \(i=1,2\).

If we divide equation (23.10) for agent \(1\) by the appropriate version of equation (23.10) for agent 2, impose the feasibility condition \(c^2_t(s^t) = 1 - c^1_t(s^t)\), and do some algebra, we’ll obtain

(23.11)#\[ c_t^1(s^t) = \frac{\mu_2 l_t(s^t)}{\mu_1 + \mu_2 l_t(s^t)} . \]

We now embark on an extended “guess-and-verify” exercise that involves matching objects in our competitive equilibrium with objects in our social planning problem.

  • we’ll match consumption allocations in the planning problem with equilibrium consumption allocations in the competitive equilibrium

  • we’ll match “shadow” prices in the planning problem with competitive equilibrium prices.

Formula (23.11) has the same form as formula (23.6) with \(\lambda/(1-\lambda) = \mu_2/\mu_1\).

Setting \(\mu_1 = 1-\lambda\) and \(\mu_2 = \lambda\) makes the two formulas agree.

Only the ratio \(\mu_2/\mu_1\) matters for the allocation.

  • multiplying \(\mu_1\) and \(\mu_2\) by a positive constant and dividing all prices \(p_t(s^t)\) by the same constant leaves budget constraints and first-order conditions unchanged

  • choosing that constant amounts to choosing a numeraire or normalization for the price system \(\{p_t(s^t)\}_{t=0}^\infty\)

Note

For information about how a numeraire must be chosen to pin down the absolute price level in a model like ours that determines only relative prices, see https://en.wikipedia.org/wiki/Numéraire.

The ratio \(\mu_2/\mu_1\) is not a normalization.

Budget constraints (23.9) pin it down, and with it the Pareto weight \(\lambda\), as we show below.

If we set \(\mu_1 = 1-\lambda\) and \(\mu_2 = \lambda\), substitute formula (23.11) for \(c_t^1(s^t)\) into formula (23.10), and rearrange, we obtain

\[ p_t(s^t) = \frac{\delta^t}{\lambda(1-\lambda)} \pi_t^2(s^t) \bigl[1 - \lambda + \lambda l_t(s^t)\bigr] \]

or

(23.12)#\[ p_t(s^t) = \frac{\delta^t}{\lambda(1-\lambda)} \bigl[(1 - \lambda) \pi_t^2(s^t) + \lambda \pi_t^1(s^t)\bigr] \]

Comparing (23.12) with (23.7) shows that \(p_t(s^t) = \theta_t(s^t)/(\lambda(1-\lambda))\).

Competitive equilibrium prices are proportional to the planner’s shadow prices.

The normalization \(\mu_1 = 1/\lambda\) and \(\mu_2 = 1/(1-\lambda)\) makes them equal: \(p_t(s^t) = \theta_t(s^t)\).

According to formula (23.12), we have the following possible limiting cases:

  • when \(l_\infty = 0\), \(c_\infty^1 = 0 \) and tails of competitive equilibrium prices reflect agent \(2\)’s probability model \(\pi_t^2(s^t)\) according to \(p_t(s^t) \propto \delta^t \pi_t^2(s^t) \)

  • when \(l_\infty = \infty\), \(c_\infty^1 = 1 \) and tails of competitive equilibrium prices reflect agent \(1\)’s probability model \(\pi_t^1(s^t)\) according to \(p_t(s^t) \propto \delta^t \pi_t^1(s^t) \)

  • for small \(t\)’s, competitive equilibrium prices reflect both agents’ probability models.

23.8.1. The competitive equilibrium Pareto weight#

Let \(E^i[s] = \int s \, \pi^i(s) \, ds\) be agent \(i\)’s expected value of \(s_t\).

Substituting allocation (23.6) and prices (23.12) into agent 1’s budget constraint (23.9) with \(y_t^1 = s_t\) and imposing equality gives

\[ \lambda = \lambda E^1[s] + (1-\lambda) E^2[s] , \]

or

(23.13)#\[ \lambda = \frac{E^2[s]}{1 - E^1[s] + E^2[s]} . \]

Exercise 23.1 asks you to verify this.

Agent 2’s budget constraint then holds by Walras’ law.

Finding Pareto weights at which the planner’s allocation satisfies every agent’s budget constraint is the method of Negishi [1960].

The left side of the first equation is agent 1’s share of total wealth at time \(-1\).

The right side is the market value of agent 1’s endowment stream divided by the market value of the aggregate endowment stream.

For \(\pi^1 = f = \text{Beta}(1, 1)\) and \(\pi^2 = g = \text{Beta}(3, 1.2)\), \(E^1[s] = 1/2\), \(E^2[s] = 5/7\), and \(\lambda = 10/17 \approx 0.588\).

Agent 2 expects agent 1’s endowment to be high.

Agent 2’s beliefs raise the price of claims on agent 1’s endowment and make agent 1 rich.

The simulations below set \(\lambda = 0.5\).

By the second welfare theorem, that allocation is a competitive equilibrium after a time \(-1\) transfer of wealth from agent 1 to agent 2.

23.8.2. Wealth#

Agent \(i\)’s continuation wealth at history \(s^t\) is the value of its continuation consumption plan in units of date \(t\) consumption:

\[ W_t^i(s^t) = \frac{1}{p_t(s^t)} \sum_{\tau=t}^\infty \int p_\tau(s^\tau) c_\tau^i(s^\tau) \, ds_{t+1} \cdots ds_\tau . \]

With logarithmic utility, first-order condition (23.10) implies

(23.14)#\[ W_t^i(s^t) = \frac{c_t^i(s^t)}{1-\delta} . \]

Total wealth \(W_t^1(s^t) + W_t^2(s^t) = 1/(1-\delta)\) is the value of a claim to the aggregate endowment.

Agent 1’s wealth share equals its consumption share \(c_t^1(s^t) = \lambda_t(s^t)\).

The limiting cases above describe wealth shares as well as consumption shares.

23.8.3. Arrow prices and market selection#

Let \(q(s_{t+1}|s^t) = p_{t+1}(s^{t+1})/p_t(s^t)\) be the Arrow price density at history \(s^t\) of claims to consumption at \(t+1\) contingent on \(s_{t+1}\), measured in units of date \(t\) consumption.

Formula (23.12) and \(\pi_{t+1}^i(s^{t+1}) = \pi^i(s_{t+1}) \pi_t^i(s^t)\) imply

(23.15)#\[ q(s_{t+1}|s^t) = \delta \bigl[\lambda_t(s^t) \pi^1(s_{t+1}) + (1-\lambda_t(s^t)) \pi^2(s_{t+1})\bigr] . \]

Arrow prices equal \(\delta\) times a mixture of the two agents’ one-period densities.

Wealth shares are the mixing weights.

Integrating (23.15) over \(s_{t+1}\) shows that a one-period riskless bond costs \(\delta\) at every history.

The continuation Pareto weight

\[ \lambda_t(s^t) = \frac{\lambda l_t(s^t)}{\lambda l_t(s^t) + 1 - \lambda} \]

is the posterior probability on model \(\pi^1\) of a Bayesian who puts prior probability \(\lambda\) on model \(\pi^1\) and \(1-\lambda\) on model \(\pi^2\) and then observes \(s^t\), as in Likelihood Ratio Processes and Bayesian Learning.

The bracketed term in (23.15) is that Bayesian’s predictive density of \(s_{t+1}\).

Competitive markets price risks as if such a Bayesian set prices.

Formula (23.15) makes the Alchian–Friedman conjecture precise.

When agent 1’s beliefs are correct, \(\pi^1 = \pi\), formula (23.8) implies \(\lambda_t \rightarrow 1\).

Arrow prices then converge to \(\delta \pi(s_{t+1})\) and reflect true probabilities.

When neither agent’s beliefs are correct and \(KL(\pi, \pi^1) \neq KL(\pi, \pi^2)\), Arrow prices converge to \(\delta\) times the one-period density of the agent whose beliefs are closer to \(\pi\) in Kullback–Leibler divergence.

Markets then select the less wrong model, and prices do not converge to the truth.

23.9. Simulations#

Now let’s implement some simulations when agent \(1\) believes marginal density

\[\pi^1(s_t) = f(s_t) \]

and agent \(2\) believes marginal density

\[ \pi^2(s_t) = g(s_t) \]

where \(f\) and \(g\) are Beta distributions like ones that we used in earlier sections of this lecture.

Meanwhile, we’ll assume that nature believes a marginal density

\[ \pi(s_t) = h(s_t) \]

where \(h(s_t)\) is perhaps a mixture of \(f\) and \(g\).

First, we write a function to compute the likelihood ratio process

def compute_likelihood_ratios(sequences, f, g):
    """Compute likelihood ratios and cumulative products."""
    l_ratios = f(sequences) / g(sequences)
    L_cumulative = np.cumprod(l_ratios, axis=1)
    return l_ratios, L_cumulative

Let’s compute the Kullback–Leibler discrepancies by quadrature integration.

def compute_KL(f, g):
    """
    Compute KL divergence KL(f, g)
    """
    integrand = lambda w: f(w) * np.log(f(w) / g(w))
    val, _ = quad(integrand, 1e-5, 1-1e-5)
    return val

We also create a helper function to compute KL divergence with respect to a reference distribution \(h\)

def compute_KL_h(h, f, g):
    """
    Compute KL divergence with reference distribution h
    """

    Kf = compute_KL(h, f)
    Kg = compute_KL(h, g)

    return Kf, Kg

Let’s write a Python function that computes agent 1’s consumption share

def simulate_blume_easley(sequences, f_belief=f, g_belief=g, λ=0.5):
    """Simulate Blume-Easley model consumption shares."""
    l_ratios, l_cumulative = compute_likelihood_ratios(sequences, f_belief, g_belief)
    c1_share = λ * l_cumulative / (1 - λ + λ * l_cumulative)
    return l_cumulative, c1_share

Now let’s use this function to generate sequences in which

  • nature draws from \(f\) each period, or

  • nature draws from \(g\) each period, or

  • nature flips a fair coin each period to decide whether to draw from \(f\) or \(g\)

λ = 0.5
T = 100
N = 10000

# Nature follows f, g, or mixture
s_seq_f = rng.beta(F_a, F_b, (N, T))
s_seq_g = rng.beta(G_a, G_b, (N, T))

h = jit(lambda x: 0.5 * f(x) + 0.5 * g(x))
model_choices = rng.random((N, T)) < 0.5
s_seq_h = np.empty((N, T))
s_seq_h[model_choices] = rng.beta(F_a, F_b, size=model_choices.sum())
s_seq_h[~model_choices] = rng.beta(G_a, G_b, size=(~model_choices).sum())

l_cum_f, c1_f = simulate_blume_easley(s_seq_f)
l_cum_g, c1_g = simulate_blume_easley(s_seq_g)
l_cum_h, c1_h = simulate_blume_easley(s_seq_h)

Before looking at the figure below, have some fun by guessing whether agent 1 or agent 2 will have a larger and larger consumption share as time passes in our three cases.

To make better guesses, let’s visualize instances of the likelihood ratio processes in the three cases.

fig, axes = plt.subplots(2, 3, figsize=(15, 10))

titles = ["Nature = f", "Nature = g", "Nature = mixture"]
data_pairs = [(l_cum_f, c1_f), (l_cum_g, c1_g), (l_cum_h, c1_h)]

for i, ((l_cum, c1), title) in enumerate(zip(data_pairs, titles)):
    # Likelihood ratios
    ax = axes[0, i]
    for j in range(min(50, l_cum.shape[0])):
        ax.plot(l_cum[j, :], alpha=0.3, color='blue')
    ax.set_yscale('log')
    ax.set_xlabel('time')
    ax.set_ylabel('Likelihood ratio $l_t$')
    ax.set_title(title)
    ax.axhline(y=1, color='red', linestyle='--', alpha=0.5)

    # Consumption shares
    ax = axes[1, i]
    for j in range(min(50, c1.shape[0])):
        ax.plot(c1[j, :], alpha=0.3, color='green')
    ax.set_xlabel('time')
    ax.set_ylabel("Agent 1's consumption share")
    ax.set_ylim([0, 1])
    ax.axhline(y=λ, color='red', linestyle='--', alpha=0.5)

plt.tight_layout()
plt.show()
_images/20d917752992f5b834ccea37f566f57fc9310f77b2a685c1d7be5ccf7d8ad785.png

In the left panel, nature chooses \(f\). Agent 1’s consumption reaches \(1\) very quickly.

In the middle panel, nature chooses \(g\). Agent 1’s consumption ratio tends to move towards \(0\) but not as fast as in the first case.

In the right panel, nature flips coins each period. Agent 1’s consumption share again moves toward \(1\), more slowly than in the left panel.

The figures in the top panel remind us of the discussion in this section of Likelihood Ratio Processes.

We invite readers to revisit that section and try to infer the relationships among \(D_{KL}(f\|g)\), \(D_{KL}(g\|f)\), \(D_{KL}(h\|f)\), and \(D_{KL}(h\|g)\).

Let’s compute values of KL divergence

shares = [np.mean(c1_f[:, -1]), np.mean(c1_g[:, -1]), np.mean(c1_h[:, -1])]
Kf_g, Kg_f = compute_KL(f, g), compute_KL(g, f)
Kf_h, Kg_h = compute_KL_h(h, f, g)

print(f"Final shares: f={shares[0]:.3f}, g={shares[1]:.3f}, mix={shares[2]:.3f}")
print(f"KL divergences: \nKL(f,g)={Kf_g:.3f}, KL(g,f)={Kg_f:.3f}")
print(f"KL(h,f)={Kf_h:.3f}, KL(h,g)={Kg_h:.3f}")
Final shares: f=1.000, g=0.000, mix=0.923
KL divergences: 
KL(f,g)=0.759, KL(g,f)=0.344
KL(h,f)=0.073, KL(h,g)=0.281

We find that \(KL(f,g) > KL(g,f)\) and \(KL(h,g) > KL(h,f)\).

The first inequality tells us that the average “surprise” from having belief \(g\) when nature chooses \(f\) is greater than the “surprise” from having belief \(f\) when nature chooses \(g\).

This explains the difference between the first two panels we noted above.

The second inequality tells us that agent 1’s belief distribution \(f\) is closer to nature’s pick than agent 2’s belief \(g\).

By formula (23.8), \(\log l_t\) drifts upward at rate \(KL(f,g) = 0.759\) per period when nature draws from \(f\) and at rate \(KL(h,g) - KL(h,f) = 0.208\) per period when nature draws from the mixture \(h\).

The drift has the same sign in the left and right panels and is about 3.6 times smaller in the right panel.

To make this idea more concrete, let’s compare two cases:

  • agent 1’s belief distribution \(f\) is close to agent 2’s belief distribution \(g\);

  • agent 1’s belief distribution \(f\) is far from agent 2’s belief distribution \(g\).

We use the two distributions visualized below

def plot_distribution_overlap(ax, x_range, f_vals, g_vals, 
                            f_label='f', g_label='g', 
                            f_color='blue', g_color='red'):
    """Plot two distributions with their overlap region."""
    ax.plot(x_range, f_vals, color=f_color, linewidth=2, label=f_label)
    ax.plot(x_range, g_vals, color=g_color, linewidth=2, label=g_label)
    
    overlap = np.minimum(f_vals, g_vals)
    ax.fill_between(x_range, 0, overlap, alpha=0.3, color='purple', label='Overlap')
    ax.set_xlabel('x')
    ax.set_ylabel('Density')
    ax.legend()
    
# Define close and far belief distributions
f_close = jit(lambda x: p(x, 1, 1))
g_close = jit(lambda x: p(x, 1.1, 1.05))

f_far = jit(lambda x: p(x, 1, 1))
g_far = jit(lambda x: p(x, 3, 1.2))

# Visualize the belief distributions
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))

x_range = np.linspace(0.001, 0.999, 200)

# Close beliefs
f_close_vals = [f_close(x) for x in x_range]
g_close_vals = [g_close(x) for x in x_range]
plot_distribution_overlap(ax1, x_range, f_close_vals, g_close_vals,
                         f_label='f (Beta(1, 1))', g_label='g (Beta(1.1, 1.05))')
ax1.set_title(f'Close Beliefs')

# Far beliefs
f_far_vals = [f_far(x) for x in x_range]
g_far_vals = [g_far(x) for x in x_range]
plot_distribution_overlap(ax2, x_range, f_far_vals, g_far_vals,
                         f_label='f (Beta(1, 1))', g_label='g (Beta(3, 1.2))')
ax2.set_title(f'Far Beliefs')

plt.tight_layout()
plt.show()
_images/c768db56a84d6665c9c77bffda6ed8320b068560afc18fe1edf00b95f9dd4c7b.png

Let’s draw the same consumption ratio plots as above for agent 1.

We replace the simulation paths with median and percentiles to make the figure cleaner.

In the third column, nature draws from \(h = \text{Beta}(2, 1.5)\), a different \(h\) from the mixture used above.

Staring at the figure below, can we infer the relation between \(KL(f,g)\) and \(KL(g,f)\)?

From the right panel, can we infer the relation between \(KL(h,g)\) and \(KL(h,f)\)?

fig, axes = plt.subplots(2, 3, figsize=(15, 10))
nature_params = {'close': [(1, 1), (1.1, 1.05), (2, 1.5)],
                 'far':   [(1, 1), (3, 1.2),   (2, 1.5)]}
nature_labels = ["Nature = f", "Nature = g", "Nature = h = Beta(2, 1.5)"]
colors = {'close': 'blue', 'far': 'red'}

threshold = 1e-5  # "close to zero" cutoff

for row, (f_belief, g_belief, label) in enumerate([
                        (f_close, g_close, 'close'),
                        (f_far, g_far, 'far')]):
    
    for col, nature_label in enumerate(nature_labels):
        params = nature_params[label][col]
        s_seq = rng.beta(params[0], params[1], (1000, 200))
        _, c1 = simulate_blume_easley(s_seq, f_belief, g_belief, λ)
        
        median_c1 = np.median(c1, axis=0)
        p10, p90 = np.percentile(c1, [10, 90], axis=0)
        
        ax = axes[row, col]
        color = colors[label]
        ax.plot(median_c1, color=color, linewidth=2, label='Median')
        ax.fill_between(range(len(median_c1)), p10, p90, alpha=0.3, color=color, label='10–90%')
        ax.set_xlabel('time')
        ax.set_ylabel("Agent 1's share")
        ax.set_ylim([0, 1])
        ax.set_title(nature_label)
        ax.axhline(y=λ, color='gray', linestyle='--', alpha=0.5)
        below = np.where(median_c1 < threshold)[0]
        above = np.where(median_c1 > 1-threshold)[0]
        if below.size > 0: first_zero = (below[0], True)
        elif above.size > 0: first_zero = (above[0], False)
        else: first_zero = None
        if first_zero is not None:
            ax.axvline(x=first_zero[0], color='black', linestyle='--',
                       alpha=0.7, 
                       label=fr'Median $\leq$ {threshold}' if first_zero[1]
                       else fr'Median $\geq$ 1-{threshold}')
        ax.legend()

plt.tight_layout()
plt.show()
_images/a94119000a5bafb9f455757a3a0793b584270c781638e81341a72ef82b72f81e.png

Holding to our guesses, let’s calculate the four values

# Nature's density in the third column
h_beta = jit(lambda x: p(x, 2, 1.5))

# Close case
Kf_g, Kg_f = compute_KL(f_close, g_close), compute_KL(g_close, f_close)
Kf_h, Kg_h = compute_KL_h(h_beta, f_close, g_close)

print(f"KL divergences (close): \nKL(f,g)={Kf_g:.3f}, KL(g,f)={Kg_f:.3f}")
print(f"KL(h,f)={Kf_h:.3f}, KL(h,g)={Kg_h:.3f}")

# Far case
Kf_g, Kg_f = compute_KL(f_far, g_far), compute_KL(g_far, f_far)
Kf_h, Kg_h = compute_KL_h(h_beta, f_far, g_far)

print(f"KL divergences (far): \nKL(f,g)={Kf_g:.3f}, KL(g,f)={Kg_f:.3f}")
print(f"KL(h,f)={Kf_h:.3f}, KL(h,g)={Kg_h:.3f}")
KL divergences (close): 
KL(f,g)=0.003, KL(g,f)=0.003
KL(h,f)=0.108, KL(h,g)=0.082
KL divergences (far): 
KL(f,g)=0.759, KL(g,f)=0.344
KL(h,f)=0.108, KL(h,g)=0.241

We find that in the first case, \(KL(f,g) \approx KL(g,f)\) and both are relatively small, so although either agent 1 or agent 2 will eventually consume everything, convergence displayed in the first two panels on the top is pretty slow.

In the first two panels at the bottom, we see convergence occurring faster (as indicated by the black dashed line) because the divergence gaps \(KL(f, g)\) and \(KL(g, f)\) are larger.

Since \(KL(f,g) > KL(g,f)\), we see faster convergence in the first panel at the bottom when nature chooses \(f\) than in the second panel where nature chooses \(g\).

The third column holds nature’s \(h\) and agent 1’s \(f\) fixed and changes agent 2’s \(g\).

In both rows, \(KL(h,f) = 0.108\).

The close \(g\) has \(KL(h,g) = 0.082 < KL(h,f)\), so agent 1’s consumption share drifts toward \(0\).

The far \(g\) has \(KL(h,g) = 0.241 > KL(h,f)\), so agent 1’s consumption share goes to \(1\).

Agent 1 loses to the close \(g\) and wins against the far \(g\).

In each case the winner is the agent whose beliefs have the smaller KL divergence from \(h\).

These outcomes agree with formula (23.8) and with A helpful formula in Likelihood Ratio Processes.

23.11. Exercises#

Exercise 23.1

Agent 1’s endowment is \(y_t^1 = s_t\) and agent 2’s endowment is \(y_t^2 = 1 - s_t\).

Let \(E^i[s] = \int s \, \pi^i(s) \, ds\).

Take prices (23.12) and allocation (23.6) as given.

  1. Show that agent 1’s budget constraint (23.9) holds with equality if and only if \(\lambda\) satisfies (23.13).

  2. Show that \(\lambda\) is agent 1’s share of total wealth at time \(-1\).

  3. Show that continuation wealth satisfies (23.14).

  4. Derive Arrow-price formula (23.15).

  5. Set \(\pi^1 = f = \text{Beta}(1, 1)\), \(\pi^2 = g = \text{Beta}(3, 1.2)\), and \(\delta = 0.9\). Compute \(\lambda\) from (23.13). Use Monte Carlo simulation to compute the values of agent 1’s consumption and endowment streams when \(\lambda\) satisfies (23.13) and when \(\lambda = 0.5\).

Exercise 23.2

Suppose that agent \(i\) has its own discount factor \(\delta_i\), so that

\[ V^i = \sum_{t=0}^{\infty} \sum_{s^t} \delta_i^t u(c_t^i(s^t)) \pi_t^i(s^t) . \]

Keep all other assumptions of the planning problem.

  1. Show that the planner’s allocation satisfies

    \[ \frac{c_t^1(s^t)}{c_t^2(s^t)} = \frac{\lambda}{1-\lambda} \left(\frac{\delta_1}{\delta_2}\right)^t l_t(s^t) . \]
  2. Show that when nature draws \(s_t\) IID from \(\pi\),

    \[ \frac{1}{t} \log \frac{c_t^1(s^t)}{c_t^2(s^t)} \rightarrow \bigl[\log \delta_1 - KL(\pi, \pi^1)\bigr] - \bigl[\log \delta_2 - KL(\pi, \pi^2)\bigr] \quad \text{almost surely}. \]

    The quantity \(\log \delta_i - KL(\pi, \pi^i)\) is agent \(i\)’s survival index.

  3. Let nature draw from the mixture \(h = 0.5 f + 0.5 g\) with \(f = \text{Beta}(1, 1)\) and \(g = \text{Beta}(3, 1.2)\), as in the right panels of our first figure. Agent 1 believes \(f\) and agent 2 believes \(g\). For which values of \(\delta_1/\delta_2\) does agent 1’s consumption share converge to \(1\)?

  4. Set \(\delta_2 = 0.99\) and \(\lambda = 0.5\). Simulate agent 1’s consumption share for values of \(\delta_1\) on both sides of the threshold you found.

Exercise 23.3

Let nature draw \(s_t\) IID from \(\pi = \text{Beta}(2, 2)\), let agent 1 believe \(\pi^1 = \text{Beta}(2, 3)\), and let agent 2 believe \(\pi^2 = \text{Beta}(3, 2)\).

Set \(\lambda = 0.5\).

  1. Show that \(KL(\pi, \pi^1) = KL(\pi, \pi^2)\).

  2. Show that agent 1’s consumption share \(c_t^1\) does not converge.

  3. Simulate many paths and plot histograms of \(c_t^1\) at \(t = 10, 100, 2000\).

Exercise 23.4

In this exercise, each of our two agents is a Bayesian who does not know whether nature draws from \(f\) or from \(g\).

In this exercise and the following ones, dates start at \(t = 1\): the history is \(s^t = (s_1, \ldots, s_t)\).

The following two models are on the table

\[ f(s^t) = f(s_1) f(s_2) \cdots f(s_t) \]

and

\[ g(s^t) = g(s_1) g(s_2) \cdots g(s_t) \]

as is an associated likelihood ratio process

\[ L(s^t) = \frac{f(s^t)}{g(s^t)} . \]

The two agents share \(f\) and \(g\) but have different prior probabilities \(\pi^1_0, \pi^2_0 \in (0,1)\) on model \(f\).

Agent \(i\)’s joint density of \(s^t\) is the prior-weighted mixture

(23.16)#\[ m^i(s^t) = \pi^i_0 f(s^t) + (1- \pi^i_0) g(s^t) . \]

As in Likelihood Ratio Processes and Bayesian Learning, Bayes’ law implies that agent \(i\)’s posterior probability on model \(f\) after observing \(s^t\) is

\[ \pi^i_t = \frac{ \pi^i_0 L(s^t)}{ \pi^i_0 L(s^t) + 1-\pi^i_0 } . \]

Joint density (23.16) is a product of one-step-ahead predictive densities:

\[ m^i(s^t) = \prod_{j=1}^{t} \left[\pi^i_{j-1} f(s_j) + (1-\pi^i_{j-1}) g(s_j)\right] . \]

The predictive density of \(s_j\) uses the posterior \(\pi^i_{j-1}\) that agent \(i\) forms before observing \(s_j\).

We now hand probability models (23.16) for \(i=1,2\) to the social planner.

  1. Show that the likelihood ratio \(l_t(s^t) = m^1(s^t)/m^2(s^t)\) satisfies

    \[ l_t(s^t) = \frac{\pi^1_0 L(s^t) + 1-\pi^1_0}{\pi^2_0 L(s^t) + 1-\pi^2_0} , \]

    and find the limits of agent 1’s consumption share when nature draws from \(f\) and when nature draws from \(g\).

  2. Set \(f \sim \text{Beta}(1.5, 1)\), \(g \sim \text{Beta}(1, 1.5)\), and \(\lambda = 0.5\). Write Python code that simulates posteriors and consumption shares for prior pairs \((\pi^1_0, \pi^2_0) = (0.3, 0.7), (0.7, 0.3), (0.1, 0.9)\) when nature draws from \(f\) and when nature draws from \(g\).

  3. Does either agent’s consumption share converge to zero? How do the priors \(\pi^1_0\) and \(\pi^2_0\) affect outcomes?

Exercise 23.5

In the previous exercise, we purposefully set the two beta distributions to be relatively close to each other.

That made it challenging to distinguish the distributions.

Now let’s study outcomes when the distributions are further apart.

Let’s set \(f \sim \text{Beta}(2, 5)\) and \(g \sim \text{Beta}(5, 2)\).

Please use the Python code you have written to study outcomes.

Exercise 23.6

Two agents have different beliefs about three possible models.

Assume \(f(x) \geq 0\), \(g(x) \geq 0\), and \(h(x) \geq 0\) for \(x \in X\) with:

  • \(\int_X f(x) dx = 1\)

  • \(\int_X g(x) dx = 1\)

  • \(\int_X h(x) dx = 1\)

Each model asserts that \(s_t\) is IID, so that \(f(s^t) = f(s_1) \cdots f(s_t)\), and similarly for \(g\) and \(h\).

Let \(\pi^{f,i}_0\), \(\pi^{g,i}_0\), and \(\pi^{h,i}_0\) be agent \(i\)’s prior probabilities on models \(f\), \(g\), and \(h\).

We’ll consider two agents:

  • Agent 1: \(\pi^{f,1}_0 = \pi^{g,1}_0 = 1/2\), \(\pi^{h,1}_0 = 0\) (attaches positive probability only to models \(f\) and \(g\))

  • Agent 2: \(\pi^{f,2}_0 = \pi^{g,2}_0 = \pi^{h,2}_0 = 1/3\) (attaches equal weights to all three models)

Let \(f\) and \(g\) be two beta distributions with \(f \sim \text{Beta}(3, 2)\) and \(g \sim \text{Beta}(2, 3)\), and set \(h = x f + (1-x) g\) with \(x = 0.5\).

Agent \(i\)’s joint density of \(s^t\) is

\[ m^i(s^t) = \pi^{f,i}_0 f(s^t) + \pi^{g,i}_0 g(s^t) + \pi^{h,i}_0 h(s^t) . \]

Bayes’ Law tells us that agent \(i\)’s posterior probabilities on models \(f\) and \(g\) are

\[ \pi^{f,i}(s^t) = \frac{\pi^{f,i}_0 f(s^t)}{m^i(s^t)} \]

and

\[ \pi^{g,i}(s^t) = \frac{\pi^{g,i}_0 g(s^t)}{m^i(s^t)} . \]

Please simulate and visualize evolutions of posterior probabilities and consumption allocations when:

  • Nature permanently draws from \(f\)

  • Nature permanently draws from \(g\)

Exercise 23.7

Now consider two agents with extreme priors about three models.

Consider the same setup as the previous exercise, but now:

  • Agent 1: \(\pi^{f,1}_0 = \pi^{g,1}_0 = \frac{\epsilon}{2} > 0\) and \(\pi^{h,1}_0 = 1 - \epsilon\), where \(\epsilon\) is close to \(0\) (e.g., \(\epsilon = 0.01\))

  • Agent 2: \(\pi^{f,2}_0 = \pi^{g,2}_0 = 0\) and \(\pi^{h,2}_0 = 1\) (rigid belief in model \(h\))

Set \(f \sim \text{Beta}(1, 1)\), \(g \sim \text{Beta}(3, 1.2)\), and \(h \sim \text{Beta}(1.2, 1.1)\).

Model \(h\) is close to \(f\) and far from \(g\) as measured by KL divergence.

Please simulate and visualize evolutions of posterior probabilities and consumption allocations when:

  • Nature permanently draws from \(f\)

  • Nature permanently draws from \(g\)