Case Study: Estimation of CVaR through Explanatory Factors with CVaR (Superquantile) Regression

Back to main page

Case study background and problem formulations

Instructions for optimization with PSG Run-File, PSG MATLAB Toolbox, PSG MATLAB Subroutines and PSG R.

PROBLEM 1: problem_cvar2_err_(Superquantile)_Regression
Minimize cvar2_err (Minimizing CVaR (Superquantile) error)
——————————————————————–
cvar2_err = CVaR (Superquantile) error)
——————————————————————–
———————————————————————————
Alpha = 0.75
———————————————————————————

# of Variables # of Scenarios Objective Value Pseudo R2 Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.012484193459 0.85652496 0.02
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

———————————————————————————
Alpha = 0.90
———————————————————————————

# of Variables # of Scenarios Objective Value Pseudo R2 Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.016655722 0.850439683 0.02
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

 

PROBLEM 2: problem_ cvar2_dev _Regression
Minimize CVaR2 Deviation (Minimizing CVaR Deviation from CVaR(Superquantile) -Based Quadrangle)
Calculate:
cvar_risk (calculates CVaR Regression intercept )
——————————————————————–
CVaR2 Deviation = Deviation from CVaR(Superquantile) -Based Quadrangle
cvar_risk = CVaR Risk for Loss
——————————————————————–
———————————————————————————
Alpha = 0.75
———————————————————————————

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.012484193442 0.02
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data
# of Variables # of Scenarios Pseudo R2 Solving Time, PC 3.14GHz (sec)
Calculate pseudo_R2 5 1,264 0.85652496 <0.01
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

———————————————————————————
Alpha = 0.90
———————————————————————————

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.016655722183 0.02
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data
# of Variables # of Scenarios Pseudo R2 Solving Time, PC 3.14GHz (sec)
Calculate pseudo_R2 5 1,264 0.850439686 <0.01
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data
PROBLEM 3: problem_ro_err_CVaR_(Superquantile)_Regression
Minimize ro_err (Minimizing CVaR (Superquantile) error with Rockafellar error )
——————————————————————–
ro_err = Rockafellar Error Function
——————————————————————–
———————————————————————————
Set 1 of Parameters. Alpha = 0.75
———————————————————————————

# of Variables # of Scenarios Objective Value Pseudo R2 Solving Time, PC 3.14GHz (sec)
Dataset 322 1,264 0.0124704317 0.856544738 0.03
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

———————————————————————————
Set 1 of Parameters. Alpha = 0.90
———————————————————————————

# of Variables # of Scenarios Objective Value Pseudo R2 Solving Time, PC 3.14GHz (sec)
Dataset 132 1,264 0.0166557223 0.85043968 0.02
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

 

PROBLEM 4: problem_cvar_Regression
Minimize mixed CVaR Deviation (deviation from Mixed-Quantile-Based Quadrangle)
Calculate:
cvar_risk (calculates CVaR Regression intercept )
Calculate:
ro_err (calculates pseudo R2)
——————————————————————–
mixed CVaR Deviation = weighted sum of CVaR Deviationss with different confidence levels
cvar_dev = CVaR Deviation for Loss
cvar_risk = CVaR Risk for Loss
ro_err = Rockafellar Error Function
——————————————————————–
———————————————————————————
Set 1 of Parameters. Alpha = 0.75
———————————————————————————

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.012509895 0.11
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data
# of Variables # of Scenarios Pseudo R2 Solving Time, PC 3.14GHz (sec)
Calculate pseudo_R2 5 1,264 0.856544329 <0.01
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

———————————————————————————
Set 1 of Parameters. Alpha = 0.90
———————————————————————————

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.016655722 0.03
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data
# of Variables # of Scenarios Pseudo R2 Solving Time, PC 3.14GHz (sec)
Calculate pseudo_R2 5 1,264 0.850439682 <0.01
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

———————————————————————————
Set 2 of Parameters. Alpha = 0.75
———————————————————————————

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.0124841933 0.11
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data
# of Variables # of Scenarios Pseudo R2 Solving Time, PC 3.14GHz (sec)
Calculate pseudo_R2 5 1,264 0.856524964 <0.01
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

———————————————————————————
Set 2 of Parameters. Alpha = 0.90
———————————————————————————

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 4 1,264 0.0166557222 0.04
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data
# of Variables # of Scenarios Pseudo R2 Solving Time, PC 3.14GHz (sec)
Calculate pseudo_R2 5 1,264 0.85043968 <0.01
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

 

CASE STUDY SUMMARY

Rockafellar et al. (2014) developed a new CVaR (Superquantile) quadrangle with the Statistic equal to CVaR. This theoretical result is a basis for the CVaR (Superquantile) regression suggested in Rockafellar et al. (2014). CVaR regression is done by minimizing CVaR (Superquantile) Error, which is an element of CVaR (Superquantile) quadrangle.

Alternatively, CVaR regression can be done in two steps (Rockafellar et al (2008)):

Step 1. Minimization of CVaR Deviation from CVaR (Superquantile) Quadrangle with the residual depending only upon loading factors.

Step 2. Calculate intercept = CVaR for the residual from Step1.

In this Case Study direct minimization of CVaR (Superquantile) error is implemented with the precoded PSG function cvar2_err (CVaR (Superquantile) Error Function), and the two-step procedure is implemented with the precoded PSG function cvar2_dev (CVaR (Superquantile) deviation).

Golodnikov et al. (2016) suggested two sets (Set 1, and Set 2) of parameters for the Mixed-Quantile-Based Quadrangle. Set 1 corresponds to the Linear Programming implementation of the CVaR (Superquantile) regression considered in Rockafellar et al. (2014).

Golodnikov et al. (2016) showed that the minimization of CVaR (Superquantile) Error for a discrete distribution can be reduced to the minimization of Rockafellar Error from the Mixed-Quantile-Based Quadrangle with the Set 1 of parameters. Therefore, CVaR (Superquantile) regression can be done by minimizing the Rockafellar Error of the residual depending upon intercept and loading factors.

Moreover, for a discrete distribution, Golodnikov et al. (2016) showed that the Deviation in the Mixed-Quantile-Based Quadrangle (called Mixed CVaR Deviation) with the Set 1 and Set 2 of parameters coincides with the Deviation in CVaR (Superquantile) quadrangle. Therefore, CVaR (Superquantile) regression can be done with the two-step procedure.

This case study implemented the following equivalent variants of CVaR (Superquantile) regression:

• Minimization of CVaR (Superquantile) error with PSG functioncvar2_err.
• Two step procedure with CVaR Deviation from CVaR (Superquantile) Quadrangle.
• Minimization of Rockafellar Error Function, ro_err, with the Set 1 of parameters.
• Two step procedure using the mixed CVaR Deviationwith Set 1 and Set 2 of parameters.

We regressed CVaR of the return distribution of the Fidelity Magellan Fund on the explanatory variables: Russell Value Index (RUJ), RUSSELL 1000 VALUE INDEX (RLV), Russell 2000 Growth Index (RUO) and Russell 1000 Growth Index (RLG). CVaR regression was done with confidence levels 0.75 and 0.9.

References

• Golodnikov A., Kuzmenko, V. and S. Uryasev (2016): On Implementation of CVaR (Superquantile) Regression. Unpublished document.
• Rockafellar,R. T. , Royset, J. O., and S. I. Miranda (2014): Superquantile Regression with Applications to Buffered Reliability, Uncertainty Quantification and Conditional Value-at-Risk. European J. Operations Research 234 (2014), 140-154.
• Rockafellar R.T. and S. Uryasev (2013): The Fundamental Risk Quadrangle in Risk Management, Optimization, and Statistical Estimation. Surveys in Operations Research and Management Science, 18.
• Rockafellar, R.T., Uryasev S. and M. Zabarankin (2008). Risk Tuning With Generalized Linear Regression.Mathematics of Operations Research. Vol. 33, No. 3, August, 712-729