How risk neutral are you? A simple way to measure your own risk taking using pen & paper :-)

As an applied scientist and systems thinker I particularly enjoy quantifying anything to do with the ‘social’, ‘human factors’, or ‘intangibles’. This is simply because quantification allows us to answer ‘how much’ questions which are often some of the most insightful. For instance, I am much more risk adverse than my wife so I asked the question “how risk averse am I?” and am I overly cautious?

It turns out that my risk aversion makes me make decisions that are quite far from risk neutral – but now that I know may be I can change that – by the end of this post you’ll be able to measure how risk neutral you are too 🙂

As you may know, it turns out that mapping risk aversion is a fascinating area that builds on the ideas of John von Neumann one of the brightest minds of the 20th century which was responsible for major advances in game theory, utility theory and computer architecture among many other contributions.

A Simple 4 Step Way of Measuring Your Risk Aversion

1. Write out a table of 3 columns containing the following headings and values.

Monetary Value Lottery Equivalent Utility
0  0
1,000,000  1

(Note that for convenience I have set the utility of £0 to 0 and the utility of £1,000,000 to 1 but you can pick arbitrary values should you wish.)

2. Fill in the second column by asking yourself the following question for each monetary value in the table:

‘If I were offered x in cash today or a lottery ticket for a £1,000,000 prize with probability p of winning, what would the probability of winning need to be for it to be equally attractive as the cash.’

To illustrate if I were offered a guaranteed £100,000 today, for me it would be equivalent to lottery ticket for £1 million with 50/50 (p=0.5) probability of winning. It would seem that I am prepared to pay a significant premium to derisk the outcome of the lottery. My justification for this is whilst on average I would expect £500,000 in the long-run if I played the lottery many times – it’s only a one-shot scenario so it seems better to guarantee a life changing amount of money (£100,000) than gamble and leave with nothing. Of course my wife views the situation differently so her Lottery Equivalent values are different to mine.

Monetary Value Lottery Equivalent Utility
0  0 0
100  0.02
1000  0.05
10,000  0.1
100,000  0.5
1,000,000  1 1

3. Fill in the third column by using your lottery equivalent probability to convert monetary-values into utilities. This is performed as follows:

utility(monetary value) = utility(1,000,000) * lottery equivalent score + utility(0) * (1-lottery equivalent score)

To illustrate:

utility (100,000) = 1 * 0.5 + 0 * (1 – 0.5) = 0.5

You’ll notice that because I conveniently selected the utility of £1,000,000 and £0 to be 1 and 0 in step 1, the utilities are the same as lottery values but of course you can select arbitrary utilities to make the maths more complicated.

Monetary Value Lottery Equivalent Utility
0 0 0
100 0.02 0.02
1000 0.05 0.05
10,000 0.1 0.1
100,000 0.5 0.5
1,000,000 1 1

4. Plot your utility curve (monetary value vs utility) and look at the shape

UtilityCurveAs you can see my plot is far from a straight-line (risk neutral). A straight-line would mean that I value every additional monetary unit equally. However the plot above is convex indicating risk aversion – this means that for every additional monetary unit the utility is ever decreasing meaning high risk – high reward outcomes are of low interest to me. In fact you can read off the plot utility of £500k and £1m is almost the same. If on the other hand the utility curve were concave then it would indicate high risk – high reward outcomes are of most interest to me.

To measure the extent of the risk aversion / risk taking you can of course fit a statistical model. In this case its pretty trivial to identify a suitable model. Simply plotting the data on log-log graph paper does the job.

loglogIf we find the gradient of the line of best fit then it gives us a measure of risk aversion / taking i.e. a gradient of 1 is risk neutral, larger than 1 is risk taking, less than 1 is risk averse. The simplest way of doing this is to use pen and graph paper to extract the gradient of the line. However since we live in the age of computers we can use ordinary least squares regression of the log(money) vs the log(utility) to find the gradient and the intercept – this is the computational equivalent of the graph paper gradient measurement process. Performing this calculates my risk taking score to be 0.44.

What is particularly interesting about the risk taking score is that it enables you to measure how far you away from risk neutral – which is a score of 1.

ExponentialUtilityIf the gradient is set to 1 then we get a solid straight line giving us risk neutral behaviour. If we set the gradient to <1 we get risk averse behaviour and >1 we get risk taking behaviour.

If you wish to plot your own graphs or calculate your own risk score then I provide the code below for you to play with.

money <- c(0,1e2,1e3,1e4,1e5, 1e6)
p <- c(0, 0.02 , 0.05 , 0.1 , 0.5 , 1)
util <- tail(p,1)*p + head(p,1)*(1-p)

qplot(money,util, geom='smooth' , span=0.5 , main="Utility Curve")
qplot(money,util, main="Utility Curve" , log="xy") 

lu <- log(util[-1])
lmon <- log(money[-1])
exp.model <- lm ( lu  ~ lmon )
pmoney <- seq(1,1e6, by=100)
predictedU <- exp ( predict.lm(exp.model,list(lmon=log(pmoney))) )

#Create dataframes for plotting
dt <- data.frame( money, util)
pdt <- data.frame( pmoney , predictedU)
names (pdt) <- c("money" , "putil")

  ggtitle("Exponential Model of Utility Curve") +
  geom_point(aes(x=money , y=util) , dt ) +
  geom_line( aes(x=money , y=putil) , pdt , colour = "blue" , linetype="dotted" ) +
  geom_text(x=0, y=1, label=paste0("Gradient:" , signif(exp.model$coefficient[2], digits = 3) ) )

riskCurve <- function ( x , m , c )
    t <- exp(c)*x^m
    t <- t / max(t) #normalise to max utility value 1.0
    return (t) 

raverse <- riskCurve ( pmoney , exp.model$coefficients[2] , exp.model$coefficients[1])
rneutral <- riskCurve ( pmoney , 1 , exp.model$coefficients[1])
rtake <- riskCurve ( pmoney , 2+exp.model$coefficients[2] , exp.model$coefficients[1])

dra <- data.frame ( pmoney , raverse )
drn <- data.frame ( pmoney , rneutral )
drt <- data.frame ( pmoney , rtake )

  ggtitle("Exponential Model of Utility Curve") +
  geom_line( aes(x=pmoney , y=raverse) , dra , colour = "blue" , linetype="dotted" ) +
  geom_line( aes(x=pmoney , y=rneutral) , drn , colour = "black" , linetype="dotted" ) +
  geom_line( aes(x=pmoney , y=rtake) , drt , colour = "red" , linetype="dotted" ) 

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.