Re: Statistics Value at risk

Posted by Peter Caspers-4 on
URL: http://quantlib.414.s1.nabble.com/Statistics-Value-at-risk-tp15687p15720.html

the "correct" answer depends on how you estimate your distribution
from your sample data, doesn't it ? if you use a discrete distribution
just assuming equal probability for each observation (like
GeneralStatistics, if no weight is given), then the 1% quantile (which
by definition = 99% VaR)

q = inf ( x | F(x) >= 0.01 )

is equal to the third loss (-0.04), because (assuming 250 losses
-0.06, -0.05, -0.04, ...) F(-0.06) = 1 / 250 < 0.01, F(-0.05) = 2 /
250 < 0.01, F(-0.04) = 3 / 250 >= 0.01, I think. So QuantLib seems to
do a good job here ?

Peter

On 8 August 2014 02:34, Yuanhao Zhang <[hidden email]> wrote:

> Thanks, Luigi. But, I have made the test, the result should be between 0.04,
> and 0.05, not exactly the 0.04. But, lower than 0.045. I donot know why.
>
> regards
>
> Alex
>
>
> 2014-08-07 22:51 GMT+08:00 Luigi Ballabio <[hidden email]>:
>
>> The code below doesn't interpolate. In your case, if you ask for 0.99
>> VaR, the second loss is 0.05 and the third is 0.04, it just returns
>> 0.04.
>>
>> I don't think I remember the reason for that, though.
>>
>> Luigi
>>
>>
>> On Thu, Aug 7, 2014 at 1:19 PM, Yuanhao Zhang <[hidden email]>
>> wrote:
>> > Forgot to attach the excel file there.
>> > Hi, I am totally confused by the quantlib percentile function, the code
>> > is
>> > listed below. I have attached an excel file, you can find the issue in
>> > sheet1. If I have 250 sample pnl, the 0.99 percentile is just between
>> > the
>> > second and third one, use the interpolated function the value I have
>> > highlighted there. But, the result of QL is smaller than the highlighted
>> > one. And I thought the result of Excel is right, I have read the code,
>> > but i
>> > can not understand it, could you explain it for me. thanks!
>> >
>> >  Real GeneralStatistics::percentile(Real percent) const {
>> >
>> >         QL_REQUIRE(percent > 0.0 && percent <= 1.0,
>> >                    "percentile (" << percent << ") must be in (0.0,
>> > 1.0]");
>> >
>> >         Real sampleWeight = weightSum();
>> >         QL_REQUIRE(sampleWeight>0.0,
>> >                    "empty sample set");
>> >
>> >         sort();
>> >
>> >         std::vector<std::pair<Real,Real> >::iterator k, l;
>> >         k = samples_.begin();
>> >         l = samples_.end()-1;
>> >         /* the sum of weight is non null, therefore there's
>> >            at least one sample */
>> >         Real integral = k->second, target = percent*sampleWeight;
>> >         while (integral < target && k != l) {
>> >             k++;
>> >             integral += k->second;
>> >         }
>> >         return k->first;
>> >     }
>> >
>> >
>> >
>> > 2014-08-07 18:10 GMT+08:00 Luigi Ballabio <[hidden email]>:
>> >>
>> >> What are you getting instead? May you post some sample code that
>> >>
>> >> reproduces the issue?
>> >>
>> >> Luigi
>> >>
>> >> On Wed, Aug 6, 2014 at 6:20 PM, Yuanhao Zhang <[hidden email]>
>> >> wrote:
>> >> > Does any one used Statistics Value at risk function in QuantLib? I
>> >> > try
>> >> > to
>> >> > use the simple 250 PnL sample to test this function. The confidence
>> >> > level is
>> >> > 0.99, so the value should be between the second one and the third
>> >> > one.
>> >> > If
>> >> > the second one is -0.04 and the third one is -0.05, so the value is
>> >> > -(-0.04+(-0.05))/2=0.045. But, the quantlib value is always smaller
>> >> > than
>> >> > 0.045. Is that wrong with the calculation logic? I can not figure it
>> >> > out
>> >> > why
>> >> > the value is different. Any one could help me figure it out?
>> >> >
>> >> > Best regards
>> >> >
>> >> > Alex
>> >> >
>> >> >
>> >> >
>> >> > ------------------------------------------------------------------------------
>> >> > Infragistics Professional
>> >> > Build stunning WinForms apps today!
>> >> > Reboot your WinForms applications with our WinForms controls.
>> >> > Build a bridge from your legacy apps to the future.
>> >> >
>> >> >
>> >> > http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
>> >> > _______________________________________________
>> >> > QuantLib-users mailing list
>> >> > [hidden email]
>> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-users
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> <https://implementingquantlib.blogspot.com>
>> >> <https://twitter.com/lballabio>
>> >
>> >
>>
>>
>>
>> --
>> <https://implementingquantlib.blogspot.com>
>> <https://twitter.com/lballabio>
>
>
>
> ------------------------------------------------------------------------------
> Want fast and easy access to all the code in your enterprise? Index and
> search up to 200,000 lines of code with a free copy of Black Duck
> Code Sight - the same software that powers the world's largest code
> search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users