Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Equiprobable Approximation to Bivariate Lognormal Returns

Authors
Affiliations
Johns Hopkins University
Econ-ARK
Johns Hopkins University
Econ-ARK

This section starts by defining a convenient notation to represent two rate-of-return shocks that are distributed according to a multivariate lognormal that allows for nonzero covariances. It next presents a computationally simple method for constructing a numerical approximation to that joint distribution. The final section uses both the numerical approximation, and more accurate (but enormously slower) standard numerical integration tools to assess the accuracy of the Campbell-Vicera analytical approximation to the solution to the optimal portfolio choice problem described in Portfolio-Multi-CRRA.

1Statistical Theory

Consider a set of two normally distributed risks

θ2,t+1∼N(−0.5Σ2,Σ2)θ1,t+1∼N(−0.5(xΣ)2,(xΣ)2)\begin{gathered}\begin{aligned} \ShkMeanOneLog_{2,t+1} & \sim \mathcal{N}(-0.5 \sigAll^{2},\sigAll^{2}) \\ \ShkMeanOneLog_{1,t+1} & \sim \mathcal{N}(-0.5 (\scale \sigAll)^{2},(\scale \sigAll)^{2}) \end{aligned}\end{gathered}

which are statistically independent (θ1,t+1⊥θ2,t+1\ShkMeanOneLog_{1,t+1} \perp \ShkMeanOneLog_{2,t+1}) even though the scale of shock 1’s standard deviation is determined by the proportionality factor x\scale multiplied by the value of shock 2’s standard deviation, Σ\sigAll. (This permits us to increase or decrease the size of both risks by changing Σ\sigAll and to adjust the relative size of risk 1 vs risk 2 by adjusting x\scale.)

The θ\ShkMeanOneLog are interpreted as the logarithms of level variables Θ\ShkMeanOne, and the means of the log variables have been chosen such that the expectations of the levels are independent of the size of the risk (cf. Math Facts). That is, defining Θi=Et[eθi,t+1]\ShkMeanOne_{i} = \Ex_{t}[e^{\ShkMeanOneLog_{i,t+1}}] for i∈{1,2}i \in \{1,2\}:

Θi≡Et[Θi,t+1]=1 ∀ ilog⁡Et[Θi,t+1]=0 ∀ i.\begin{gathered}\begin{aligned} \ShkMeanOne_{i} \equiv \Ex_{t}[\ShkMeanOne_{i,t+1}] & = 1~\forall~i \\ \log \Ex_{t}[\ShkMeanOne_{i,t+1}] & = 0~\forall~i. \end{aligned}\end{gathered}

From the first shock we can construct a log rate-of-return variable that can be represented equivalently in either of two ways:

r1,t+1=r1+0.5(xΣ)2⏞≡rˊ1+θ1,t+1=rˊ1−0.5(xΣ)2⏟=r1+0.5(xΣ)2+θ1,t+1⏟≡θ1,t+1\begin{gathered}\begin{aligned} \risky_{1,t+1} & = \overbrace{\risky_{1}+0.5(\scale \sigAll)^{2}}^{\equiv \riskyAlt_{1}}+\ShkMeanOneLog_{1,t+1} \\ & = \underbrace{\riskyAlt_{1}-0.5(\scale \sigAll)^{2}}_{=\risky_{1}}+\underbrace{0.5(\scale \sigAll)^{2}+\ShkMeanOneLog_{1,t+1}}_{\equiv \ShkLogZeroLog_{1,t+1}} \end{aligned}\end{gathered}

where θ1,t+1 ∼ N(0.,(xΣ)2)\ShkLogZeroLog_{1,t+1}~\sim~\mathcal{N}(0.,(\scale \sigAll)^{2}); the notation for θ\ShkLogZeroLog is motivated by the fact that the addition of the extra term cancels the nonzero mean of the original θ\ShkMeanOneLog. Then

R1,t+1≡er1,t+1R1≡Et[R1,t+1]=er1+(xΣ)2/2log⁡Et[R1,t+1]=r1+(xΣ)2/2=rˊ1\begin{gathered}\begin{aligned} \Risky_{1,t+1} & \equiv e^{\risky_{1,t+1}} \\ \Risky_{1} \equiv\Ex_{t}[\Risky_{1,t+1}] & = e^{\risky_{1}+(\scale \sigAll)^{2}/2} \\ \log \Ex_{t}[\Risky_{1,t+1}] & = \risky_{1}+(\scale \sigAll)^{2}/2 = \riskyAlt_{1} \end{aligned}\end{gathered}

where note to avoid confusion that rˊ1≠Et[r1,t+1]\riskyAlt_{1} \neq \Ex_{t}[{{\risky}}_{1,t+1}] while log⁡Et[R1,t+1]≠r1=Et[r1,t+1]\log \Ex_{t}[\Risky_{1,t+1}] \neq \risky_{1}=\Ex_{t}[\risky_{1,t+1}].

Using Et[θ2,t+1]=−0.5Σ2\Ex_{t}[\ShkMeanOneLog_{2,t+1}] = -0.5 \sigAll^{2} and Et[(ω/x)θ1,t+1]=−0.5((ω/x)Σ)2\Ex_{t}[(\omega/\scale)\ShkMeanOneLog_{1,t+1}] = -0.5 ((\omega/\scale)\sigAll)^{2}, we can by analogy define a second return

r2,t+1≡rˊ2+ζ+(ω/x)θ1,t+1+θ2,t+1=rˊ2+ζ+(ω/x)(θ1,t+1−0.5(xΣ)2)+(θ2,t+1−0.5Σ2)=rˊ2+ζ−0.5(ω/x)(xΣ)2−0.5Σ2⏟r2+(ω/x)θt+1,1+θ2,t+1\begin{gathered}\begin{aligned} \risky_{2,t+1} & \equiv \riskyAlt_{2}+\zeta + (\omega /\scale) \ShkMeanOneLog_{1,t+1} + \ShkMeanOneLog_{2,t+1} \\ & = \riskyAlt_{2}+\zeta + (\omega /\scale) (\ShkLogZeroLog_{1,t+1}-0.5(\scale \sigAll)^{2}) + (\ShkLogZeroLog_{2,t+1}-0.5 \sigAll^{2}) \\ & = \underbrace{\riskyAlt_{2}+\zeta -0.5 (\omega/\scale)(\scale \sigAll)^2-0.5 \sigAll^{2}}_{\risky_{2}}+(\omega /\scale) \ShkLogZeroLog_{t+1,1} + \ShkLogZeroLog_{2,t+1} \end{aligned}\end{gathered}

for some constants ω\omega and ζ\zeta.

Since (ω/x)θ1,t+1(\omega/\scale)\ShkMeanOneLog_{1,t+1} is the only component of r2,t+1{\risky}_{2,t+1} that is correlated with r1,t+1{\risky}_{1,t+1},

cov⁡(r1,t+1,r2,t+1)=cov⁡(r1,t+1,(ω/x)r1,t+1)=(ω/x)cov⁡(r1,t+1,r1,t+1)⏟=x2Σ2=ωxΣ2.\begin{gathered}\begin{aligned} \cov({\risky}_{1,t+1} ,{\risky}_{2,t+1}) & = \cov({\risky}_{1,t+1} , (\omega/\scale){\risky}_{1,t+1} ) \\ & = (\omega /\scale ) \underbrace{\cov({\risky}_{1,t+1} ,{\risky}_{1,t+1} )}_{=\scale^{2}\sigAll^{2}} \\ & = \omega \scale \sigAll^{2} . \end{aligned}\end{gathered}

Thus, the parameter ω\omega controls the covariance between the risky returns. If we set ω=0\omega = 0 then r1,t+1⊥r2,t+1\risky_{1,t+1} \perp \risky_{2,t+1} (the returns are independent).

Next we want to find the value of ζ\zeta such that the expected level of the return is unaffected by Σ\sigAll (so that we will be able to explore independently the distinct effects of the components of each shock and their covariance):

R2≡Et[R2,t+1]=erˊ2\begin{gathered}\begin{aligned} \Risky_{2} \equiv \Ex_{t}[\Risky_{2,t+1}] & = e^{\riskyAlt_{2}} \end{aligned}\end{gathered}

regardless of the values of x\scale and Σ\sigAll. Using (5), we therefore need:

Et[eζ+(ω/x)θ1,t+1+θ2,t+1]=1log⁡Et[eζ+(ω/x)θ1,t+1+θ2,t+1]=0.\begin{gathered}\begin{aligned} \Ex_{t}[e^{\zeta+ (\omega/\scale)\ShkMeanOneLog_{1,t+1} + \ShkMeanOneLog_{2,t+1}}] & = 1 \\ \log \Ex_{t}[e^{\zeta+ (\omega/\scale)\ShkMeanOneLog_{1,t+1} + \ShkMeanOneLog_{2,t+1}}] & = 0. \end{aligned}\end{gathered}

Using standard facts about lognormals (cf. Math Facts), and for convenience defining ω^=(Σ/x)ω\hat{\omega}= (\sigAll/\scale) \omega, we have

0.=ζ−0.5ω^x2−0.5Σ2+0.5ω^2x2+0.5Σ2=ζ−0.5x2ω^(1−ω^)ζ=0.5(ω^−ω^2)x2=0.5(ωx−ω2)Σ2\begin{gathered}\begin{aligned} 0. & = \zeta - 0.5 \hat{\omega} \scale^{2} - 0.5 \sigAll^{2} + 0.5\hat{\omega}^{2}\scale^{2}+0.5 \sigAll^{2} \\ & = \zeta -0.5 \scale^{2} \hat{\omega}(1-\hat{\omega}) \\ \zeta & = 0.5 (\hat{\omega}-\hat{\omega}^{2}) \scale^{2} = 0.5 (\omega \scale-\omega^{2}) \sigAll^{2} \end{aligned}\end{gathered}

which means that we can rewrite (5) directly as

r2,t+1=rˊ2+0.5(ωx−ω2)Σ2+(ω/x)θ1,t+1+θ2,t+1=rˊ2+0.5(ωx−ω2)Σ2−0.5(ω/x)(xΣ)2−0.5Σ2+(ω/x)θt+1,1+θ2,t+1=rˊ2+0.5ωxΣ2−0.5ωxΣ2−0.5ω2Σ2−0.5Σ2+(ω/x)θt+1,1+θ2,t+1=rˊ2−(1+ω2)0.5Σ2⏟r2+(ω/x)θt+1,1+θ2,t+1.\begin{gathered}\begin{aligned} \risky_{2,t+1} & = \riskyAlt_{2}+0.5 (\omega \scale-\omega^{2}) \sigAll^{2} + (\omega /\scale) \ShkMeanOneLog_{1,t+1} + \ShkMeanOneLog_{2,t+1} \\ & = \riskyAlt_{2}+0.5 (\omega \scale-\omega^{2}) \sigAll^{2} -0.5 (\omega/\scale)(\scale \sigAll)^2-0.5 \sigAll^{2}+(\omega /\scale) \ShkLogZeroLog_{t+1,1} + \ShkLogZeroLog_{2,t+1} \\ & = \riskyAlt_{2}+0.5 \omega \scale \sigAll^{2} -0.5 \omega\scale \sigAll^2 - 0.5 \omega^{2} \sigAll^{2}-0.5 \sigAll^{2}+(\omega /\scale) \ShkLogZeroLog_{t+1,1} + \ShkLogZeroLog_{2,t+1} \\ & = \underbrace{\riskyAlt_{2} - (1+\omega^{2})0.5 \sigAll^{2}}_{\risky_{2}}+(\omega /\scale) \ShkLogZeroLog_{t+1,1} + \ShkLogZeroLog_{2,t+1} . \end{aligned}\end{gathered}

Hence, from the independent mean-one lognormally distributed shocks Θ1\ShkMeanOne_{1} and Θ2\ShkMeanOne_{2}, we have constructed a pair of jointly lognormally distributed shocks whose covariance is controlled by the parameter ω\omega, whose relative and absolute variances are controlled by the parameters x\scale and Σ\sigAll, and whose means are r1\risky_{1} and r2\risky_{2}.

To sum up, the process can be described in either of two ways:

(r1,t+1r2,t+1)∼(N(r1,x2Σ2)N(r2,x2Σ2))=(N(rˊ1−0.5(xΣ)2,x2Σ2)N(rˊ2−(1+ω2)0.5Σ2,Σ2))\left(\begin{array}{c}\risky_{1,t+1} \\ \risky_{2,t+1} \end{array}\right) \sim \left(\begin{array}{c}\mathcal{N}(\risky_{1},\scale^{2} \sigAll^{2}) \\ \mathcal{N}(\risky_{2}, \phantom{\scale^{2}} \sigAll^{2}) \end{array}\right) = \left(\begin{array}{c}\mathcal{N}(\riskyAlt_{1}-0.5(\scale\sigAll)^{2},\scale^{2} \sigAll^{2}) \\ \mathcal{N}(\riskyAlt_{2} - (1+\omega^{2})0.5 \sigAll^{2}, \sigAll^{2}) \end{array}\right)

with covariance matrix

(σ12σ12σ12σ22)≡((xΣ)2xωΣ2xωΣ2(ω2+1)Σ2)\left(\begin{array}{ccc}\sigma_1^2 & \sigma_{12} \\ \sigma_{12}& \sigma_2^2\end{array}\right) \equiv \left(\begin{array}{ccc}(\scale \sigAll)^2 & \scale \omega \sigAll^{2} \\ \scale \omega \sigAll^{2} & (\omega^{2}+1)\sigAll^{2}\end{array}\right)

where a final useful result that follows from (12) and (6) is

corr(r1,t+1,r2,t+1)≡cov⁡(r1,t+1,r2,t+1)/σ1σ2=ω/(1+ω2)0.5.\begin{gathered}\begin{aligned} \text{corr}({\risky}_{1,t+1} ,{\risky}_{2,t+1}) & \equiv \cov({\risky}_{1,t+1} ,{\risky}_{2,t+1})/\sigma_{1}\sigma_{2} \\ & = \omega/(1+\omega^{2})^{0.5} . \end{aligned}\end{gathered}

2Computational Theory

To reduce clutter, define R~i=Ri,t+1\tilde{\Risky}_{i}=\Risky_{i,t+1} and interpret E\Ex as Et[]\Ex_{t}[], so that we can write the expectation of some function h\hFunc that depends on the realization of the return shocks as:

E[h(R~1,R~2)]=∫R‾1Rˉ1∫R‾2Rˉ2h(R~1,R~2)dF(R~1,R~2)\begin{gathered}\begin{aligned} \Ex[\hFunc(\tilde{\Risky}_{1},\tilde{\Risky}_{2})] & = \int_{\underline{{\Risky}}_{1}}^{\bar{\Risky}_{1}}\int_{\underline{\Risky}_{2}}^{\bar{\Risky}_{2}} \hFunc(\tilde{\Risky}_{1},\tilde{\Risky}_{2}) d\FFunc(\tilde{\Risky}_{1},\tilde{\Risky}_{2}) \end{aligned}\end{gathered}

where F(R~1,R~2)\FFunc(\tilde{\Risky}_{1},\tilde{\Risky}_{2}) is the cumulative distribution function for a multivariate lognormal with the covariance matrix defined by (12).[1]

Standard numerical computation software can compute this double integral, but at such a slow speed as to be unusable for many purposes.

Computation of the expectation can be massively speeded up by advance construction of a numerical approximation to F(R~1,R~2)\FFunc(\tilde{\Risky}_{1},\tilde{\Risky}_{2}).

Such approximations often take the approach of replacing the distribution function with a discretized approximation to it; appropriate weights w[i,j]w[i,j] are attached to each of a finite set of points indexed by ii and jj, and the approximation to the integral is given by:

E[h(R~1,R~2)]≈∑i=1n∑j=1mh(R^1[i,j],R^2[i,j])w[i,j]\begin{gathered}\begin{aligned} \Ex[\hFunc(\tilde{\Risky}_{1},\tilde{\Risky}_{2})] & \approx \sum_{i=1}^{n}\sum_{j=1}^{m} \hFunc(\hat{\Risky}_{1}[i,j],\hat{\Risky}_{2}[i,j])w[i,j] \end{aligned}\end{gathered}

where various methods are used for constructing the weights w[i,j]w[i,j] and the nodes (corresponding to the {i,j}\{i,j\} pairs). The matrices R^1\hat{\Risky}_{1} and R^2\hat{\Risky}_{2} contain the conditional mean values of R~1\tilde{\Risky}_{1} and R~2\tilde{\Risky}_{2} associated with each of the regions.

Perhaps the most popular such method is Gauss-Hermite interpolation (see Judd (1998) for an exposition, or Kopecky & Suen (2010) for a recent candidate for a better choice). Here, we will pursue a particularly simple and intuitive alternative: Equiprobable discretization. In this method, m=nm=n and boundaries on the joint CDF are determined in such a way as to divide up the total probability mass into submasses of equal size (each of which therefore has a mass of n−2n^{-2}). This is conceptually easier if we represent the underlying shocks as statistically independent, as with Θ1\ShkMeanOne_{1} and Θ2\ShkMeanOne_{2} above; in that case, each submass is a square region in the Θ1\ShkMeanOne_{1} and Θ2\ShkMeanOne_{2} grid. We then compute the average value of Θ1\ShkMeanOne_{1} and Θ2\ShkMeanOne_{2} conditional on their being located in each of the subdivisions of the range of the CDF. Since Θ1\ShkMeanOne_{1} and Θ2\ShkMeanOne_{2} are IID, the representation of the approximating summation is even simpler than (15):

E[h(R~1,R~2)]≈n−2∑i=1n∑j=1nh(R1(Θ^1[i],Θ^2[j]),R2(Θ^1[i],Θ^2[j]))\begin{gathered}\begin{aligned} \Ex\left[\hFunc\left(\tilde{\Risky}_{1},\tilde{\Risky}_{2}\right)\right] & \approx n^{-2} \sum_{i=1}^{n}\sum_{j=1}^{n} \hFunc\left(\Risky_{1}(\hat{\ShkMeanOne}_{1}[i],\hat{\ShkMeanOne}_{2}[j]),\Risky_{2}(\hat{\ShkMeanOne}_{1}[i],\hat{\ShkMeanOne}_{2}[j])\right) \end{aligned}\end{gathered}

where Ri(Θ1,Θ2)\Risky_{i}(\ShkMeanOne_{1},\ShkMeanOne_{2}) are the (linear) functions relating the return shocks to the IID shocks.

3Computational Results

Portfolio Share By Method as a Function of \omega

Figure 1:Portfolio Share By Method as a Function of ω\omega

Figure 1 compares the computed optimal portfolio share for a numerical solution using the built-in numerical optimizer and maximization functions (the lowest, black, locus), the Campbell-Viceira solution (the highest, red locus) and an equiprobable approximation using 20 approximation points (green, middle) as well as the solution using the equiprobable approximation at an evenly-spaced grid of points (blue dots).

Careful examination indicates that the numerical approximation is quite close to the full numerical solution, while the CV approximation diverges substantially from the numerical answer. The tradeoff is that the equiprobable solution is about 2000 times slower than the CV approximation, while the direct solution is more than 100 times slower than the equiprobable solution. Depending on the requirements of the problem being examined, these differences in efficiency can make a tremendous difference in the feasibility of a research project.[2]

Footnotes
  1. Under the lognormal assumption, R~‾i=0\underline{\tilde{\Risky}}_{i}=0 and Rˉi=∞\bar{\Risky}_{i}=\infty for both shocks i∈{1,2}i \in \{1,2\}.

  2. Details can be found in the Mathematica notebook associated with this section.

References
  1. Judd, K. L. (1998). Numerical Methods in Economics. The MIT Press.
  2. Kopecky, K. A., & Suen, R. M. H. (2010). Finite State Markov-Chain Approximations To Highly Persistent Processes. Review of Economic Dynamics, 13(3), 701–714. 10.1016/j.red.2010.02.002