using Distributions, Plots, LaTeXStrings, LinearAlgebra, Statistics, Random, QuantEcon, NLsolveAssignment 7
Student Name/Number:
Instructions
- Edit the above cell to include your name and student number.
- Submit just this
ipynbto Canvas. Do not rename, it associates your student number with the submission automatically.
Question 1
Consider the original formulation of the asset pricing equations with the stochastic discount factor \(m_{t+1}\) in the Lucas tree model with the Price-to-Dividend Ratio
\[ v(X_t) = {\mathbb E}_t \left[ m_{t+1} \frac{d_{t+1}}{d_t} (1 + v(X_{t+1})) \right] \]
where
\[ m_{t+1} = \beta \frac{u'(c_{t+1})}{u'(c_t)} \]
Furthermore, we will consider there may be two processes for \(m_{t+1}\) and the dividends:
\[ \frac{c_{t+1}}{c_t} = G_c(X_{t+1}) \]
and
\[ \frac{d_{t+1}}{d_t} = G_d(X_{t+1}) \]
With this, the price-dividend ratio equation becomes:
\[ v(X_t) = \beta {\mathbb E}_t \left[ G_c(X_{t+1})^{-\gamma} G_d(X_{t+1}) (1 + v(X_{t+1})) \right] \]
and if \(X_t \in S\) is a Markov chain with transition probabilities \(P(X_t, X_{t+1})\) then the price-dividend ratio equation becomes:
\[ v(x) = \beta \sum_{x'\in S} G_c(x')^{-\gamma} G_d(x') (1 + v(x'))P(x,x') \]
The price of the asset itself follows,
\[ p(x) = \beta \sum_{x'\in S} G_c(x')^{-\gamma} (G_d(x') x + p(x'))P(x,x') \]
Part (a)
In the original lucas tree model, we had that \(G_c(x) = G_d(x) = G(x)\). i.e., perfect correlation between the consumption and dividend growth processes.
This meant we could write the price-dividend ratio equation as:
\[ v(x) = \beta \sum_{x'\in S} G(x')^{1 -\gamma} (1 + v(x'))P(x,x') \]
And if we stack up the \(v(x)\) as a vector for each \(x \in S\) then we can write this as a linear system, define,
\[ J_{ij} \equiv G(x_j)^{1 - \gamma} P_{ij} \]
Then the recursive equation (with \(\mathbb{1}\) a stack of ones) is
\[ v = \beta J (\mathbb{1} + v) \]
with solution
\[ v = \left( I - \beta J \right)^{-1} \beta J \mathbb{1} \]
Putting this into code with a discretized Markov chain from an AR(1) process with a slight tweak from our original code
# Do not modify this code directly
function asset_pricing_model(; beta = 0.96, gamma = 2.0, G = exp,
rho = 0.9, sigma = 0.02, N = 25)
mc = tauchen(N, rho, sigma)
G_x = G.(mc.state_values)
return (; beta, gamma, mc, G, G_x)
end
# price/dividend ratio of the Lucas tree
function tree_price(ap)
(; beta, mc, gamma, G) = ap
P = mc.p
y = mc.state_values'
J = P .* G.(y) .^ (1 - gamma)
@assert maximum(abs, eigvals(J)) < 1 / beta # check stability
v = (I - beta * J) \ sum(beta * J, dims = 2)
return (;v)
end
ap = asset_pricing_model(;rho = 0.9) # change default arguments here.
sol = tree_price(ap)
plot(ap.G_x, sol.v, xlabel = L"G(x_t)", label = L"v(x_t)", title="Price-to-dividend ratio")Change this code to plot the price-dividend ratio equation for a smaller autocorrelation of \(\rho = 0.1\).
# Modify your code hereInterpret differences in the equation, including the scale and the slope
Answer:
(double click to edit your answer)
Part (b)
Now, suppose we want to modify the original model so that the growth rate of dividends is inversely correlated with the growth rate of consumption. Specifically, let the relationship between consumption and dividends be as follows:
\[ c_{t+1} = G(X_{t+1}) c_t \quad \text{and} \quad d_{t+1} = {G(-X_{t+1})} d_t \]
Because \(G(X_{t+1}) = \exp(X_{t+1})\), this means we have
\[ m_{t+1} = \beta \exp(X_{t+1})^{-\gamma} \]
and
\[ \frac{d_{t+1}}{d_t} = \frac{1}{\exp(X_{t+1})} \]
What is the new price-dividend ratio equation? You can write this out in LaTeX or keep it simple and describe the changes relative to the previous equation.
Answer:
(double click to edit your answer)
Part (c)
Take the following code from above for the standard Lucas tree (with perfectly correlated growth rate of dividends and consumption of that asset) and modify it to solve for the price-dividend ratio equation for the new model using the formula above. Note some small changes in the parameters
# modify here
function new_asset_pricing_model(; beta = 0.96, gamma = 2.0, G = exp,
rho = 0.7, sigma = 0.02, N = 25)
mc = tauchen(N, rho, sigma)
G_x = G.(mc.state_values)
return (; beta, gamma, mc, G, G_x)
end
function new_tree_price(ap)
(; beta, mc, gamma, G) = ap
P = mc.p
y = mc.state_values'
J = P .* G.(y) .^ (1 - gamma)
@assert maximum(abs, eigvals(J)) < 1 / beta # check stability
v = (I - beta * J) \ sum(beta * J, dims = 2)
return (;v)
end
ap = new_asset_pricing_model(;rho = 0.78, gamma = 1.2)
sol = new_tree_price(ap)
plot(ap.G_x, sol.v, xlabel = L"G(x_t)", label = L"v(x_t)", title="Price-to-dividend ratio")Interpret this result compared to the previous example with perfectly correlated growth rates. In particular, discuss the differences in magnitudes.
Answer:
(double click to edit your answer)