ó
áp7]c           @  sè   d  Z  d d l m Z d d l Z d d d „ Z e Z e d k rä e j	 j
 d d d	 ƒZ e e ƒ Z e e ƒ g  e e e ƒ ƒ D] Z e e j ƒ  ^ q„ Z e e d d … d
 f e d ƒ e e d d g ƒZ e e ƒ n  d S(   s5   
Created on Wed May 04 06:09:18 2011

@author: josef
iÿÿÿÿ(   t   print_functionNgš™™™™™©?c         C  s  d } t  j |  ƒ }  |  j | } t  j |  d | ƒ} | d k rL | } n  | t  j | | ƒ j t ƒ } t  j | | d d ƒ} g  } x| t	 t
 | ƒ d ƒ D]d }	 | |	 }
 |  |
 j ƒ  } |  |
 j ƒ  } | t  j | |
 ƒ } | j |
 | |	 | | f ƒ q¡ Wt  j | ƒ } d } | d d … d d … f | | d d … d	 d … f t  j d	 d g g ƒ } t  j | | f ƒ S(
   sÒ  emprirical 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
        doesn't include case for all observations
        last observations std is zero
        vectorize loop using cumsum
        frac doesn't work yet
    i    t   axist   sidet   righti   g\Âõ(\ÿ?Ni   iÿÿÿÿ(   t   npt   asarrayt   shapet   sortt   Nonet   floort   astypet   intt   searchsortedt   ranget   lent   meant   stdt   sqrtt   appendt   arrayt   column_stack(   t   xt   fract   alphaR   t   nobst   xsortedt
   xthresholdt   xlargerindext   resultt   it   k_indt   rmeant   rstdt   rmstdt   rest   critt   confint(    (    sH   lib/python2.7/site-packages/statsmodels/sandbox/distributions/try_pot.pyt   mean_residual_life   s&    	 
!Pt   __main__i   t   sizei
   i   i   R   g      à?(   t   __doc__t
   __future__R    t   numpyR   R   R%   t   expected_shortfallt   __name__t   randomt
   standard_tt   rvsR"   t   printR   R   R   R   R   t   res_frac(    (    (    sH   lib/python2.7/site-packages/statsmodels/sandbox/distributions/try_pot.pyt   <module>   s   -
/"