Extreme Value Theory (EVT): Hill estimator

Discussions of ARCH, GARCH, and related models
ac_1
Posts: 495
Joined: Thu Apr 15, 2010 6:30 am

Extreme Value Theory (EVT): Hill estimator

Unread post by ac_1 »

Hi Tom,

Here's my loop for risk algo Historical Simulation (HS), calculate VaR and ES:

Code: Select all

*===============================
do i = 1, %allocend() - WIN
*
   clear dlp1
   clear y
   set dlp1 1+i WIN+i = dlp

   order(index=ix,nodecreasing) dlp1 1+i WIN+i
   set y 1+i WIN+i = dlp1(ix)

   comp op = fix(WIN*alpha)+i; * alpha smallest
   comp VaR = - y(op) * SCALE

   sstats(mean) 1+i fix(WIN*alpha)+i y>>mu
   comp ES = - mu * SCALE

   comp VaR_1(WIN+1+i) = VaR
   comp ES_1(WIN+1+i) = ES


   disp 'obs' WIN+i+1 'HS 1% VaR=' VaR 'HS 1% ES=' ES
*
end do i
I ought to get a similar picture of multi-step ahead forecasts (sqrt-of-time) for Extreme Value Theory (EVT): Hill estimator, even though HS and EVT are completely different methods.

How would I implement EVT in RATS?

Amarjit
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Extreme Value Theory (EVT): Hill estimator

Unread post by TomDoan »

Tsay's book has a whole chapter (Chapter 7) on that. There are four examples in the textbook examples.
ac_1
Posts: 495
Joined: Thu Apr 15, 2010 6:30 am

Re: Extreme Value Theory (EVT): Hill estimator

Unread post by ac_1 »

Thanks! Based on the HS loop (fixed rolling window) and using @HillGEV, it would be something like the following, however what are the formulae for VaR and ES as positive numbers?

Code: Select all

comp WIN = 1000
comp SCALE = 100.0

comp CT = 100; * threshold for tail observations

*===============================
do i = 1, %allocend() - WIN
*
   clear dlp1
   clear y
   clear ysort

   set dlp1 1+i WIN+i = dlp
   set y 1+i WIN+i = -dlp1

   order(index=ix,nodecreasing) y 1+i WIN+i
   set ysort 1+i WIN+i = y(ix)

   @HillGEV(span=CT,tail=left) ysort 1+i WIN+i
   sstat 1+i i+CT %%hill>>sumlog
   comp iota = -(CT/sumlog)

   if iota <= 1.0 {
      comp VaR_EVT = %NA
      comp ES_EVT  = %NA
   }

   comp threshold = ysort(i+CT+1) * SCALE

   comp VaR_EVT = ?
   comp ES_EVT  = ?

   comp VaR_1(WIN+1+i) = VaR_EVT
   comp ES_1(WIN+1+i)  = ES_EVT

   disp 'obs' WIN+i+1 'EVT iota=' iota 'VaR=' VaR_EVT 'ES=' ES_EVT
*
end do i
Although, @HillGEV is designed for GEV asymptotics, not classical Pareto Hill estimator:

1/ihat = (1/k) summation from j=1 to k [log( X(j)/X(k+1))].

I'd like the classical estimator to complement various risk algos.

So, maybe:

Code: Select all

set logratios 1+i WE+i = log( ysort / ysort(i+CT+1) )
sstat 1+i i+CT logratios>>sumlog
comp iota = CT / sumlog

comp VaR_EVT = ?
comp ES_EVT  = ?
?
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Extreme Value Theory (EVT): Hill estimator

Unread post by TomDoan »

ac_1 wrote: Mon Jan 19, 2026 1:09 pm Although, @HillGEV is designed for GEV asymptotics, not classical Pareto Hill estimator:

1/ihat = (1/k) summation from j=1 to k [log( X(j)/X(k+1))].

I'd like the classical estimator to complement various risk algos.
That's what the procedure computes.
ac_1
Posts: 495
Joined: Thu Apr 15, 2010 6:30 am

Re: Extreme Value Theory (EVT): Hill estimator

Unread post by ac_1 »

TomDoan wrote: Tue Jan 20, 2026 8:49 am
ac_1 wrote: Mon Jan 19, 2026 1:09 pm Although, @HillGEV is designed for GEV asymptotics, not classical Pareto Hill estimator:

1/ihat = (1/k) summation from j=1 to k [log( X(j)/X(k+1))].

I'd like the classical estimator to complement various risk algos.
That's what the procedure computes.

Alright if I use

Code: Select all

   @HillGEV(span=CT,tail=left) ysort 1+i WIN+i
   sstat 1+i i+CT %%hill>>sumlog
   comp iota = -(CT/sumlog)

   comp threshold = ysort(i+CT+1) * SCALE
then what are the VaR_EVT and ES_EVT formulae?

Code: Select all

  comp VaR_EVT = TSay (2010), p.355, eqn (7.28), if so, how do I extract alphahat, betahat, Xihat from the procedure? Or is there another VaR_EVT formulae?
  comp ES_EVT  = ?
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Extreme Value Theory (EVT): Hill estimator

Unread post by TomDoan »

The tail index doesn't provide enough information to compute the VaR and the ES. Those need complete distributions. tsay3p355 does that. The thing to note is that the results are sensitive to the number of extreme values that are included, which is the point of the earlier search.
ac_1
Posts: 495
Joined: Thu Apr 15, 2010 6:30 am

Re: Extreme Value Theory (EVT): Hill estimator

Unread post by ac_1 »

TomDoan wrote: Wed Jan 21, 2026 11:01 am The tail index doesn't provide enough information to compute the VaR and the ES. Those need complete distributions. tsay3p355 does that. The thing to note is that the results are sensitive to the number of extreme values that are included, which is the point of the earlier search.
Are you saying I cannot do a rolling analysis: fixed window T=1000, n=100 (the tail), p=0.01, in each loop, EVT method, and calculate VaR and ES using @HILLGEV, but rather using

nonlin alpha beta k
dec series r

compute alpha=.8,beta=-2.0,k=-.2; * guess values

frml gevmin = %loggevdensity(-r,k,-beta,alpha)
maximize(METHOD=BFGS) gevmin 1 gend

compute var01=%invgev((1-.01)**n,k,-beta,alpha)

?

I am not certain how to proceed, given my aim: backtest and forecast multi-step ahead VaR and ES using EVT to complement other various risk algos.
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Extreme Value Theory (EVT): Hill estimator

Unread post by TomDoan »

Is there a reason you can't put that in a loop?

If you want the ES for a GEV, you will have to find someone who has figured that out.
Post Reply