# CRRA utility application

I fitted a CRRA utility function to daily S&P 500 returns in R. (As for instance in Optimal Option Portfolio Strategies, page 10)

expostutility = function(x,y) { mean( (1/(1-y)) * ((1+x)^(1-y)) ) }
test = na.omit(diff(log(getSymbols('SPY', from='2010-01-01', auto.assign = F)[,4])))
expostutility(test, 5); expostutility(test, 20)


For 5: -0.249841 For 20: -0.05321077 Why is the stock market utility higher for higher risk aversion? (Using (correctly) simple returns instead of log does not change the fact.)

EDIT:

test1=rnorm(1000, mean=0.01, sd=0.01)
test2=rnorm(1000, mean=0.01, sd=0.05)
expostutility(test1, 2)
expostutility(test2, 2)
expostutility(test1, 10)
expostutility(test2, 10)


Here the second series has less utility than the first; the ordering is always correct. But there is much higher overall utility with higher gamma (i.e., risk aversion). (?) Maybe EU can not be interpreted as such as has to be converted to certainty equivalents?

• Usually one works with the utility of end of period wealth (i.e. $W_{t+1}$), not of returns. See section 2.3 on Page 9. Basically I would work with with $1+r$, not with $r$. – Alex C Apr 17 '17 at 22:52
• It is just as incorrect to call a CRRA function with a negative value as it is to call a sqrt function with a negative value. If stocks go up 5 percent the utility is $U(1.05)$, of they go down 5 percent the utility is $U(0.95)$ – Alex C Apr 17 '17 at 23:17
• Hi Alex! Yes, it's 1+r in the formula. I have seen exactly this formula in another paper called Do constraints improve portfolio performance? – Felix Dietrich Apr 18 '17 at 12:39
• You are using test1=rnorm(1000, mean=0.01, sd=0.01). That's wrong. It should be test1=1.0+rnorm(1000, mean=0.01, sd=0.01). – Alex C Apr 18 '17 at 12:50
• I substituted W by 1+r in the function, see: ((1+x)^(1-y)) – Felix Dietrich Apr 18 '17 at 14:41