Market Risk Premium
Market Risk Premium#
Single Investment
Multiple Investments, a “Market” where you can buy and sell
Each investment payoff broken into sub components
The shared payout
Individual Payout
Now change it so that there are different types of bets: each having different exposures to the shared payout and different probabilities for its individual payout.
Introduce the same concepts on a continuous, instead of discrete framework
Compare to Stock Market Risk premium
Time horizon?
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
rng = np.random.default_rng()
np.random.seed(42)
You are offered the opportunity to buy into a bet on a coin toss with two possible payoffs: heads, you are paid \(150, tails, you are paid \)50. How much would you be willing to pay to participate in this bet?
I would argue that there is no obvious answer and in fact no “right” answer. It clearly depends on your personal preferences, but perhaps we can build a framework for how one could think about this opportunity. The first step is to establish the bounds for the bet: what is the least you would be willing to pay and the most. The least you would be willing to pay is \(50 because you are guaranteed to win at least this much and the maximum you would be willing to pay is \)150 because this is the most you could possibly win. Unfortunately, there is still a rather large gap of uncertainty regarding the amount to pay.
Most people who have taken a basic stats course will find themselves instinctually drawn towards the mean in answer to the amount they would pay. The mean or average is ubiquitous. We see it everywhere and it is the default metric you will hear for just about any situation where numerical justification is put forth. But what is the mean actually telling us and is it a justifiable answer for our specific scenario?
The mean or “expected value” simply tells us what the long term average of a particular even is and is given by the formula:
For the bet in question, the expected value is: $\(.5*150 +.5*50 = 100\)$
What is this telling us? That if we were able to make this bet repeatedly, our average payoff would approach 100.
df = pd.DataFrame()
number_of_bets = 1_000_000
# payouts = [150 if x >= .5 else 50 for x in rng.random(number_of_bets)]
# np.mean(payouts)
df['payouts'] = [150 if x >= .5 else 50 for x in rng.random(number_of_bets)]
df['cum_mean'] = np.cumsum(df['payouts'])/range(1, number_of_bets+1)
# plt.plot(df['cum_mean'])
That is certainly interesting, but does it help us make a decision in this particular bet right now? Keeping in mind that we are not making this bet an infinite amount of times, but only once.
I think a reasonable starting point is for you to say that for each one you would be willing to pay the Expected Value: \(E(Bet) = 100\)
number_bets = 100
bet_cost = 98
df = pd.DataFrame()
df['payout'] = [150 if x >= .5 else 50 for x in rng.random(number_bets)]
df['profit'] = df['payout'] - bet_cost
df.head()
payout | profit | |
---|---|---|
0 | 50 | -48 |
1 | 50 | -48 |
2 | 150 | 52 |
3 | 50 | -48 |
4 | 150 | 52 |
Here we can
# Geometric
sims = rng.normal(.1,.12,(100000,40))
temp = sims + 1
endings = temp.prod(axis=1)**(1/40)
e = endings-1
e.mean()
0.09363418975674648
# Arithmetic
sims = rng.normal(.1,.12,(100000,40))
temp = sims + 1
endings = temp.prod(axis=1).mean()
e = endings**(1/40)
e = e-1
e
0.10010530039251098