[R-SIG-Finance] fPortfolio inverse VaR function
Brian G. Peterson
brian at braverock.com
Wed Mar 30 19:34:45 CEST 2011
On 03/30/2011 12:19 PM, Henry Ward wrote:
> Hi members,
>
> I am using fPortfolio (great package) to do Cornish Fisher VaR calculations. I'm interested in also using the inverse function. So instead of calculating the p=95% -> VaR = 2.4% I'd like to assign a VaR threshold of VaR = 2.4% -> p=95%.
>
> This is the simple qnorm function for gaussian distributions but I want to use Brian's implementation of the Cornish Fisher distribution. Any help on a simple way I can write or find this function?
There are functions in PerformanceAnalytics that are not yet documented
and exported to do this.
These are available in this source file here:
https://r-forge.r-project.org/scm/viewvc.php/pkg/PerformanceAnalytics/R/valueAtRiskFunctions.r?view=markup&root=returnanalytics
Given a specific shape (mean, variance, skewness, kurtosis) the full
quantile and density functions for the Cornish Fisher distribution may
be calculated via the bootstrap. If you really just want the opposite
quantile, you can calculate it like this:
zc = qnorm(tail.prob)
Zcf = zc + (((zc^2 - 1) * skew)/6) + (((zc^3 - 3 * zc) *
kurt)/24) - ((((2 * zc^3) - 5 * zc) * skew^2)/36)
mVaR = mu + sigma*Zcf
where tail.prob is the usual 1-confidence, so for 95% VaR (loss) you'd
use .05, and for the opposite end of the distribution you would use .95
We don't allow this in the VaR function because we got too many confused
emails, instead we document it as not allowed. ;)
Cheers,
- Brian
--
Brian G. Peterson
http://braverock.com/brian/
Ph: 773-459-4973
IM: bgpbraverock
More information about the R-SIG-Finance
mailing list