
    !g                     6   d Z ddlZddZeZedk(  rej                  j                  dd      Z ee      Z	 e
e	        e ee            D  cg c]  } e| d j                          c} Z e
e	dddf   ed	d z
          eed
g      Z e
e       yyc c} w )z5
Created on Wed May 04 06:09:18 2011

@author: josef
    Nc                    d}t        j                  |       } | j                  |   }t        j                  | |      }||}n.|t        j                  ||z        j                  t                 }t        j                  ||d      }g }t        t        |      dz
        D ]`  }	||	   }
| |
d j                         }| |
d j                         }|t        j                  ||
z
        z  }|j                  |
||	   ||f       b t        j                  |      }d}|ddddf   ||ddd	df   z  t        j                  d	dgg      z  z   }t        j                  ||f      S )
a  empirical mean residual life or expected shortfall

    Parameters
    ----------
    x : 1-dimensional array_like
    frac : list[float], optional
        All entries must be between 0 and 1
    alpha : float, default 0.05
        FIXME: not actually used.

    TODO:
        check formula for std of mean
        does not include case for all observations
        last observations std is zero
        vectorize loop using cumsum
        frac does not work yet
    r   )axisNright)side   g\(\?   )npasarrayshapesortfloorastypeintsearchsortedrangelenmeanstdsqrtappendarraycolumn_stack)xfracalphar   nobsxsorted
xthresholdxlargerindexresultik_indrmeanrstdrmstdrescritconfints                    f/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/sandbox/distributions/try_pot.pymean_residual_lifer+   	   sR   & D


1A774=Dggad#G|
RXXdTk299#>?
??7JWEL F3z?1$% <Q%&	 y}}RWWT%Z((ujmUE:;< ((6
CD!QqS&kD3q"#v;.B7)1DDDG??C>**    __main__   
   )sizer   r   g      ?)r   )Ng?)__doc__numpyr
   r+   expected_shortfall__name__random
standard_trvsr'   printr   r   r   r$   res_frac)r"   s   0r*   <module>r:      s   
 ++\ (  z
))

qr

*C
S
!C	#J%*3s8_5SW\\^5E	#ad)eABi
 !#SE2H	(O  6s   B