Expected utility theory states people maximise expected utility, not expected value, in choosing between risky prospects.
Expected utility is calculated by weighting the utility of each outcome by its probability and summing.
\mathbb{E}[U(X)] = \sum_{i=1}^n p_i U(x_i)
Outcomes typically represent final wealth positions, not just payoffs, so decisions depend on current wealth. The formula incorporating initial wealth used for calculating expected utility is:
\mathbb{E}[U(W+X)] = \sum_{i=1}^n p_i U(W+x_i)
Expected utility theory allows the examination of an agent’s attitude toward risk, which can be risk aversion, risk neutrality, or risk seeking.
A risk-averse person prefers a sure amount to a gamble with the same expected value.
U(\mathbb{E}[X]) > \mathbb{E}[U(X)]
A risk-seeking person prefers a gamble to a sure amount of the same expected value.
U(\mathbb{E}[X]) < \mathbb{E}[U(X)]
A risk-neutral person is indifferent between a gamble and receiving its expected value with certainty.
U(\mathbb{E}[X]) = \mathbb{E}[U(X)]
Certainty equivalent (CE) is the amount of money that makes a person indifferent between taking a gamble and taking the money. For risk-averse individuals, CE < \mathbb{E}[X]; for risk-neutral, CE = \mathbb{E}[X]; for risk-seeking, CE > \mathbb{E}[X].
8.1 Introduction
Under expected utility theory, people do not seek to maximize expected value but instead, maximize expected utility.
Under expected utility theory, people choose between risky prospects (prospect being another word for lottery or gamble common in the literature) by comparing expected utility values. An agent would pick the option that maximises their expected utility.
8.2 Calculating expected utility
Consider a prospect with final outcomes x_1, ..., x_n, with each outcome occurring with probability p_1, ..., p_n. Each outcome would deliver utility U(x_i).
X=(p_1, x_1;\ p_2, x_2; ...\ ;\ p_n, x_n)
For example, the prospect might be a coin flip that delivers a win of $10 for heads and a loss of $10 for tails. We would represent this prospect as:
X=(0.5, \$10;\ 0.5, -\$10)
Expected utility, E[U(X)], is calculated using the following formula:
You can think of this formula as comprising the following steps:
Define utility U(x_i) over final outcomes x_1, ..., x_n
Weight the utility of each outcome U(x_i) by the probability p_i of outcome x_i
Add the weighted utilities.
For the coin toss that delivers a win or loss of $10, we would write:
E[U(X)]=0.5\times U(\$10)+0.5\times U(-\$10)
There is an important note regarding outcomes x_1, ..., x_n. Typically, these outcomes are not just the payoffs from the gamble, but rather the agent’s final position. If the agent has wealth of $100 and is offered a coin flip to win or lose $10, the outcomes are typically taken to be $90 and $110. Their decision depends on their current wealth. As a result, expected utility is often represented as in this equation:
Returning to our coin toss example, if our starting wealth was $100, the expected utility of the coin toss is:
E[U(X)]=0.5\times U(\$110)+0.5\times U(\$90)
8.3 Attitudes toward risk
Expected utility theory allows us to examine an agent’s attitude toward risk.
There are three possible attitudes toward risk: risk aversion, risk neutrality, and risk seeking.
If a person prefers a sure amount to a gamble with the same expected value, they are risk averse. That is, the utility of the expected value of X is greater than the expected utility of X.
U(E[X])>E[U(X)]
If a person prefers a gamble to a sure amount of the same expected value, they are risk-seeking. That is, the expected utility of X is greater than the utility of the expected value of X.
U(E[X])<E[U(X)]
If a person is indifferent between a gamble and receiving the expected value of the gamble with certainty, they are risk neutral. That is. the utility of the expected value of X is equal to the expected utility of X.
U(E[X])=E[U(X)]
8.3.1 Certainty equivalent
One useful concept in the analysis of attitudes to risk is the certainty equivalent. The certainty equivalent (CE) of a gamble X is the amount of money such that you are indifferent between taking the gamble and taking the money. That is, the utility of the certainty equivalent is equal to the expected utility of the gamble.
u(CE)=E[U(X)]
For a risk-averse person, the certainty equivalent of the bet is less than the expected value of the gamble. The certainty equivalent is equal to the expected value in the case of risk neutrality. A risk-seeking person would have a certainty equivalent higher than the expected value of the gamble.
I will now look at each of the attitudes in turn.
8.3.2 Risk aversion
A risk-averse person prefers a sure amount to a gamble with the same expected value. If I strongly prefer $10 for certain to a gamble with an expected value of $10, I am risk averse. The certainty equivalent of the prospect for this person would be less than $10.
The following chart illustrates. The x-axis is the amount of the good over which the person receives utility. In the case of monetary gambles of the type we are talking about, the x-axis is the amount of money. The y-axis is the utility the person receives from that money.
The utility curve is a plot of the utility function for each amount of money.
Code
library(ggplot2)u <-function(x){log(x)}df <-data.frame(x=seq(1,220,0.1),y=NA)df$y <-u(df$x)#Variables for plot (may not match labels as not done to scale)#Payoffs from gamblep1 <-0.5x1 <-30#lossp2 <-0.5x2 <-200#winev <- p1*x1+p2*x2 #expected value of gamblexc <-115#certain outcomece <-exp(p1*u(x1)+p2*u(x2)) #certainty equivalentpx2 <-(ev-x1)/(x2-x1)risk_aversion_plot_1 <-ggplot(mapping =aes(x, y)) +#Plot the utility curvegeom_line(data = df) +geom_vline(xintercept =0, linewidth=0.25)+geom_hline(yintercept =0, linewidth=0.25)+labs(x ="x", y ="U(x)")+# Set the themetheme_minimal()+#remove numbers on each axistheme(axis.text.x =element_blank(),axis.text.y =element_blank(),axis.title=element_text(size=14,face="bold"),axis.title.y =element_text(angle=0, vjust=0.5))+#set limits - need to include room for labelscoord_cartesian(xlim =c(-25, 220), ylim =c(-0.1, 6))risk_aversion_plot_1
The gamble shown in this chart has two possible outcomes, x_1 and x_2. An outcome of x_1 would result in utility U(x_1). An outcome of x_2 would result in utility U(x_2).
Code
risk_aversion_plot_2 <- risk_aversion_plot_1+#Add labels x1, U(x1) and line to curve indicating eachannotate("text", x = x1, y =0, label ="x1", size =4, hjust =0.5, vjust =1.5)+annotate("segment", x = x1, y =0, xend = x1, yend =u(x1), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(x1), xend = x1, yend =u(x1), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(x1), label ="U(x1)", size =4, hjust =1.05, vjust =0.6)+#Add labels x2, U(x2) and line to curve indicating eachannotate("text", x = x2, y =0, label ="x2", size =4, hjust =0.4, vjust =1.5)+annotate("segment", x = x2, y =0, xend = x2, yend =u(x2), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(x2), xend = x2, yend =u(x2), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(x2), label ="U(x2)", size =4, hjust =1.05, vjust =0.45)risk_aversion_plot_2
I have drawn a straight dash-dot line between the points on the utility curve for each of those outcomes. The expected utility from any gamble involving those two outcomes would fall on that line. Where on that line would depend on the probability of each outcome, and it would occur at a point in line with the expected value of the gamble. You can see the expected value of the gamble marked on the x-axis. If we extend up from that point, we can read the expected utility of the gamble, E[U(X)], from the y-axis.
Code
risk_aversion_plot_3 <- risk_aversion_plot_2+#Add line to curve indicating utility of expected valueannotate("segment", x = xc, y =0, xend = xc, yend =u(xc), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(xc), xend = xc, yend =u(xc), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(xc), label ="U[E(X)]", size =4, hjust =1.05, vjust =0.3)+#Add expected utility lineannotate("segment", x = x1, xend = x2, y =u(x1), yend =u(x2), linewidth =0.5, colour ="black", linetype="dotdash")+#Add labels E[X], E[U(X)] and curve indicating eachannotate("text", x = ev, y =0, label ="E[X]", size =4, hjust =0.4, vjust =1.5)+annotate("segment", x = ev, y =0, xend = ev, yend =u(x1)+(u(x2)-u(x1))*px2, linewidth =0.5, colour ="black", linetype="dashed")+annotate("segment", x =0, y =u(x1)+(u(x2)-u(x1))*px2, xend = ev, yend =u(x1)+(u(x2)-u(x1))*px2, linewidth =0.5, colour ="black", linetype="dashed")+annotate("text", x =0, y =u(x1)+(u(x2)-u(x1))*px2, label ="E[U(X)]", size =4, hjust =1.05, vjust =0.45)risk_aversion_plot_3
One way to think about why projecting the expected value onto the expected utility line identifies the expected utility of the bet is that each of the expected value and expected utility are weighted by the same probabilities. They both lie the same horizontal distance between the two potential outcomes.
In this example, the line between the utility of the two outcomes is always below the utility curve. That is, for any probabilities involving those two outcomes (except one of those outcomes with certainty), the expected utility of the prospect is less than the utility of the expected value of the prospect. In mathematical terms:
U(E[x])>E[U(x)]
The expected utility line between the two outcomes is always below the utility curve as the curve is concave. A concave curve leads to risk aversion. The greater the curvature, the more risk averse the agent is.
Finally, the horizontal dashed line identifying E[U(X)] allows us to identify the certainty equivalent of the gamble. At the point on the x-axis marked CE, the utility from the certainty equivalent is equal to the expected utility of the prospect with expected value E[X]. As the certainty equivalent is less than the expected value, this provides another way of saying that the person is risk averse.
Code
risk_aversion_plot_4 <- risk_aversion_plot_3+#Add vertical line indicating certainty equivalent and labelled "CE"annotate("segment", x = ce, xend = ce, y =0, yend =u(ce), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x = ce, y =0, label ="CE", size =4, hjust =0.4, vjust =1.5)risk_aversion_plot_4
8.3.2.1 Absolute and relative risk aversion
In studying economics, you may encounter two measures of risk aversion: absolute risk aversion and relative risk aversion.
Absolute risk aversion is a measure of how risk averse a person is at any particular level of wealth. A person with constant absolute risk aversion (CARA) responds to a fixed sum bet in the same way, whatever their wealth.
For example, when faced with a 50-50 bet to win $20 or lose $10, they will make the same decision regardless of whether they have $100 or $1,000,000 in their bank account.
Relative risk aversion is a measure of how an individual’s risk aversion scales with their wealth. A person with constant relative risk aversion (CRRA) would respond to a bet risking a certain proportion of their wealth in the same way, whatever their wealth. This means that as their wealth increases, the absolute amount they’re willing to risk increases, but it remains a constant proportion of their total wealth.
For example, someone with constant relative risk aversion would always respond in the same way to a 50-50 bet to win 50% of their wealth, lose 40% of their wealth, regardless of whether that loss involves a possible $400 out of $1,000 or $400,000 out of $1,000,000.
Constant absolute risk aversion utility functions are often used in theoretical models due to their mathematical simplicity. However, constant relative risk aversion utility functions are generally considered more realistic for modelling human behaviour, as people tend to adjust their risk-taking based on their wealth.
One feature of constant relative risk aversion utility functions, such as log utility, is that people become less risk averse (as measured by absolute risk aversion) as their wealth increases. For a bet of a certain sum, they will be more likely to accept that bet at higher wealth.
This above plot is of a utility function with constant relative risk aversion. You can see that as the level of wealth increases, the utility function becomes increasingly linear. This reduction in curvature reflects the declining absolute risk aversion and results in bets of fixed value being more likely to be accepted at higher wealth.
8.3.3 Risk neutrality
A risk-neutral person is an expected value maximiser. They are indifferent between $10 for certain and a gamble with an expected value of $10. The certainty equivalent of the prospect for a person considering this gamble would also be $10.
The following chart illustrates. Again, we have two possible outcomes, x_1 and x_2, with resulting utility U(x_1) and U(x_2).
A line between the points on the utility curve for each of those outcomes lies on the utility curve itself. For any probability, the utility of the expected value and the expected utility are the same.
Code
library(ggplot2)u <-function(x){ x}df <-data.frame(x=seq(1,220,0.1),y=NA)df$y <-u(df$x)#Variables for plot (may not match labels as not done to scale)#Payoffs from gamblep1 <-0.5x1 <-30#lossp2 <-0.5x2 <-200#winev <- p1*x1+p2*x2 #expected value of gamblexc <-115#certain outcomece <-p1*u(x1)+p2*u(x2) #certainty equivalentpx2 <-(ev-x1)/(x2-x1)ggplot(mapping =aes(x, y)) +#Plot the utility curvegeom_line(data = df) +geom_vline(xintercept =0, linewidth=0.25)+geom_hline(yintercept =0, linewidth=0.25)+labs(x ="x", y ="U(x)")+# Set the themetheme_minimal()+#remove numbers on each axistheme(axis.text.x =element_blank(),axis.text.y =element_blank(),axis.title=element_text(size=14,face="bold"),axis.title.y =element_text(angle=0, vjust=0.5))+#set limits - need to include room for labelscoord_cartesian(xlim =c(-40, 220), ylim =c(-0.25, 220))+#Add labels x1, U(x1) and line to curve indicating eachannotate("text", x = x1, y =0, label ="x1", size =4, hjust =0.5, vjust =1.5)+annotate("segment", x = x1, y =0, xend = x1, yend =u(x1), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(x1), xend = x1, yend =u(x1), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(x1), label ="U(x1)", size =4, hjust =1.05, vjust =0.6)+#Add line to curve indicating utility of expected valueannotate("segment", x = xc, y =0, xend = xc, yend =u(xc), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(xc), xend = xc, yend =u(xc), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(xc), label ="U[E(X)]=E[U(X)]", size =4, hjust =1.05, vjust =0.3)+#Add labels x2, U(x2) and line to curve indicating eachannotate("text", x = x2, y =0, label ="x2", size =4, hjust =0.4, vjust =1.5)+annotate("segment", x = x2, y =0, xend = x2, yend =u(x2), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(x2), xend = x2, yend =u(x2), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(x2), label ="U(x2)", size =4, hjust =1.05, vjust =0.45)+#Add labels E[X], E[U(X)] and curve indicating eachannotate("text", x = ev, y =0, label ="E[X]=CE", size =4, hjust =0.4, vjust =1.5)
8.3.4 Risk seeking
A risk-seeking person prefers a gamble to a sure sum equal to the expected value of that gamble. The certainty equivalent is more than the expected value of the gamble. The gamble has value in and of itself.
The following chart illustrates. Again I have drawn a dash-dot-dot line between the points on the utility curve for each of those outcomes. That line is always above the utility curve. That is, for any probabilities involving those two outcomes (except one of those outcomes with certainty), the expected utility of the prospect is more than the utility of the expected value of the prospect.
Code
library(ggplot2)u <-function(x){ x^1.5}df <-data.frame(x=seq(1,220,0.1),y=NA)df$y <-u(df$x)#Variables for plot (may not match labels as not done to scale)#Payoffs from gamblep1 <-0.5x1 <-30#lossp2 <-0.5x2 <-200#winev <- p1*x1+p2*x2 #expected value of gamblexc <-115#certain outcomece <-(p1*u(x1)+p2*u(x2))^(1/1.5) #certainty equivalentpx2 <-(ev-x1)/(x2-x1)ggplot(mapping =aes(x, y)) +#Plot the utility curvegeom_line(data = df) +geom_vline(xintercept =0, linewidth=0.25)+geom_hline(yintercept =0, linewidth=0.25)+labs(x ="x", y ="U(x)")+# Set the themetheme_minimal()+#remove numbers on each axistheme(axis.text.x =element_blank(),axis.text.y =element_blank(),axis.title=element_text(size=14,face="bold"),axis.title.y =element_text(angle=0, vjust=0.5))+#set limits - need to include room for labelscoord_cartesian(xlim =c(-25, 220), ylim =c(-0.25, 3000))+#Add labels x1, U(x1) and line to curve indicating eachannotate("text", x = x1, y =0, label ="x1", size =4, hjust =0.5, vjust =1.5)+annotate("segment", x = x1, y =0, xend = x1, yend =u(x1), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(x1), xend = x1, yend =u(x1), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(x1), label ="U(x1)", size =4, hjust =1.05, vjust =0.6)+#Add line to curve indicating utility of expected valueannotate("segment", x = xc, y =0, xend = xc, yend =u(xc), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(xc), xend = xc, yend =u(xc), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(xc), label ="U[E(X)]", size =4, hjust =1.05, vjust =0.3)+#Add expected utility lineannotate("segment", x = x1, xend = x2, y =u(x1), yend =u(x2), linewidth =0.5, colour ="black", linetype="dotdash")+#Add labels x2, U(x2) and line to curve indicating eachannotate("text", x = x2, y =0, label ="x2", size =4, hjust =0.4, vjust =1.5)+annotate("segment", x = x2, y =0, xend = x2, yend =u(x2), linewidth =0.5, colour ="black", linetype="dotted")+annotate("segment", x =0, y =u(x2), xend = x2, yend =u(x2), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x =0, y =u(x2), label ="U(x2)", size =4, hjust =1.05, vjust =0.45)+#Add labels E[X], E[U(X)] and curve indicating eachannotate("text", x = ev, y =0, label ="E[X]", size =4, hjust =0.4, vjust =1.5)+annotate("segment", x = ev, y =0, xend = ev, yend =u(x1)+(u(x2)-u(x1))*px2, linewidth =0.5, colour ="black", linetype="dashed")+annotate("segment", x =0, y =u(x1)+(u(x2)-u(x1))*px2, xend = ev, yend =u(x1)+(u(x2)-u(x1))*px2, linewidth =0.5, colour ="black", linetype="dashed")+annotate("text", x =0, y =u(x1)+(u(x2)-u(x1))*px2, label ="E[U(X)]", size =4, hjust =1.05, vjust =0.45)+#Add vertical line indicating certainty equivalent and labelled "CE" plus line extending to utility curveannotate("segment", x = ce, xend = ce, y =0, yend =u(ce), linewidth =0.5, colour ="black", linetype="dotted")+annotate("text", x = ce, y =0, label ="CE", size =4, hjust =0.4, vjust =1.5)+annotate("segment", x =0, y =u(ce), xend = ce, yend =u(ce), linewidth =0.5, colour ="black", linetype="dotted")
The expected utility line between the two outcomes is always above the utility curve as the curve is convex. A convex curve leads to risk-seeking behaviour.