Methods: Partial Moments Utility

Share:

Description

An interesting Utility function characterized by upper to lower partial moments.

Usage

1
pmUtility(data, threshold, urc, lrc, lmoment = 1, umoment = 1)

Arguments

data

A data vector of differences or returns for which the utility is to be calculated.

threshold

The threshold value for dividing upper to lower utility.

urc

Upper Partial Moment Utility Risk Aversion Coefficient.

lrc

Lower Partial Moment Utility Risk Aversion Coefficient.

lmoment

Lower Moment (need not be integer, but must be positive).

umoment

Upper Moment (need not be integer, but must be positive).

Value

An object of class PMU

Note

Has methods for show, plot and lines.
This is an interesting utility allowing for the representation of the well known S-shaped utilty discussed in Kahnemann and Tversky's prospect theory. Alternatively, and depending on the coefficients chosen, an inverse S-shaped utility can be constructed. Portfolio optimization with respect to this utility function is non-trivial as it is non-quasi concave, and genetic optimization methods have been suggested.

Author(s)

Alexios Ghalanos

References

Farinelli, S. and Tibiletti, L. , Sharpe thinking in asset ranking with one-sided measures, European Journal of Operational Research Volume 185, Issue 3, 16 March 2008, Pages 1542-1547.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
## Not run: 
data(djiaret)
# Test18: Partial Moments Utility Test and Plots (S-Shaped)
putil1<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,
lmoment=0.2,umoment=0.2)
show(putil1)
plot(putil1,col=2)
putil2<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,lmoment=0.3,
umoment=0.3)
lines(putil2,col=3,text.col=3)
putil3<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,lmoment=0.4,
umoment=0.4)
lines(putil3,col=4)
putil4<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,lmoment=1.2,
umoment=0.4)
lines(putil4,col=5,text.col=5)
abline(v=0,col="grey")
leg.text<-c(paste("LM=",putil1@lmoment,", UM=",putil1@umoment,", LC=",putil1@lrc,", UC=",putil1@urc,sep=""),
paste("LM=",putil2@lmoment,", UM=",putil2@umoment,", LC=",putil2@lrc,", UC=",putil2@urc,sep=""),
paste("LM=",putil3@lmoment,", UM=",putil3@umoment,", LC=",putil3@lrc,", UC=",putil3@urc,sep=""),
paste("LM=",putil4@lmoment,", UM=",putil4@umoment,", LC=",putil4@lrc,", UC=",putil4@urc,sep=""))
legend("topleft",legend=leg.text,col=2:5,fill=2:5,cex=0.8)


# Test19: Partial Moments Utility Test and Plots (Inverse S-Shaped)
putil1<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,lmoment=2.2, 
umoment=2.2)
show(putil1)
plot(putil1,col=2)
putil2<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,lmoment=2.3,
umoment=2.3)
lines(putil2,col=3,text.col=3)
putil3<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,lmoment=2.4,
umoment=2.4)
lines(putil3,col=4)
putil4<-pmUtility(as.matrix(djiaret[,1]),threshold=0,urc=1,lrc=1,lmoment=2.5,
umoment=2.5)
lines(putil4,col=5,text.col=5)
abline(v=0,col="grey")
leg.text<-c(paste("LM=",putil1@lmoment,", UM=",putil1@umoment,", LC=",putil1@lrc,", UC=",putil1@urc,sep=""),
paste("LM=",putil2@lmoment,", UM=",putil2@umoment,", LC=",putil2@lrc,", UC=",putil2@urc,sep=""),
paste("LM=",putil3@lmoment,", UM=",putil3@umoment,", LC=",putil3@lrc,", UC=",putil3@urc,sep=""),
paste("LM=",putil4@lmoment,", UM=",putil4@umoment,", LC=",putil4@lrc,", UC=",putil4@urc,sep=""))
legend("topleft",legend=leg.text,col=2:5,fill=2:5,cex=0.8)

## End(Not run)