
    'YHh(              	       F   d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z ddlmZmZ ddlmZ  G d d	e      Z ed
ddd      Zd\  ZZZ ej*                  d      Zg dZdefdefdefdefdeffD ]@  \  ZZ e  eee      eeee              e  eej8                  e      ee ee             B  eej	                  eeed              eej8                  j	                  e eed              eej;                  eee              eej8                  j;                  e ee             d Zd Zd Z d Z!d/dZ" e e!ddd              e e!dd d             ejG                  d!dd"#      Z$ e"e$d$d%&      Z% ee%d%   d'd         ee%d   d'd        d( Z&d) Z' e&d* ej*                  d%d      z        \  Z(Z)Z* ee(        ee)        ee*        e e'ejV                  d+,              e e'ejV                  ej                   ddd+g,             ejV                  jG                  d-.      Z#e#e#jY                         z
  Z# ee#jY                         e#e#dkD     jY                         e#e#dkD     jY                         e#e#d+kD     jY                                y)0ze
Created on Thu Aug 12 14:59:03 2010

Warning: not tried out or tested yet, Done

Author: josef-pktd
    N)stats)comb)rv_continuous)whereinf)absc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	genpareto2_genc                     t        j                  |      }t        |dkD  dt        |      z  t              | _        t        |dk(  dd      S )Nr         ?   )npasarrayr   np_absr   bselfcs     d/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/sandbox/distributions/genpareto.py	_argcheckzgenpareto2_gen._argcheck   s>    JJqMq1ucF1Ios3Q!VQ""    c                 J    t        j                  d||z  z
  dd|z  z         }|S )Nr         r   r   power)r   xr   Pxs       r   _pdfzgenpareto2_gen._pdf   s'    XXa!a%ia0	r   c                 F    dd|z  z   t        j                  | |z        z  S )Nr   r   )r   log1pr   r   r   s      r   _logpdfzgenpareto2_gen._logpdf   s$    sQw"((A26"222r   c                 F    dt        j                  d||z  z
  d|z        z
  S )Nr   r   r   r!   s      r   _cdfzgenpareto2_gen._cdf    s$    RXXa!a%iq111r   c                 J    d|z  t        j                  d|z
  |      dz
  z  }|S )Nr   r   r   )r   qr   valss       r   _ppfzgenpareto2_gen._ppf#   s)    ax288AE1-12r   c                     t        j                  d|dz         }d|z  |z  t        j                  t        ||      d|z  z  d||z  z   z  d      z  }t	        ||z  dkD  |t
              S )Nr   r   r   )axis)r   arangesumr   r   r   )r   nr   kvals        r   _munpzgenpareto2_gen._munp'   sg    IIaQQw1nrvvd1ajB19&<a!e&LSTUUQURZc**r   c                 V    |dk  rd|z
  S d|z  | _         t        j                  | |      S )Nr   r   r   )r   r   _entropyr   s     r   r3   zgenpareto2_gen._entropy,   s0    Eq5L1WDF ))$22r   N)
__name__
__module____qualname__r   r   r"   r$   r(   r1   r3    r   r   r
   r
      s%    #
32+
3r   r
   g        	genparetozA generalized Paretor   )anamelongnameshapes)      ?r   r      )g{Gz?g?r=   g?gGz?pdfcdfsfppfisfmvsk)momentsc                     |||| z  z
  fS )ztransform shape scale for peak over threshold

    y = x-u|x>u ~ GPD(k, sigma-k*u) if x ~ GPD(k, sigma)
    notation of de Zea Bermudez, Kotz
    k, sigma is shape, scale
    r7   threshshapescales      r   paramstopotrK   Q   s     %%&.(((r   c                     |||| z  z   fS )Nr7   )rH   rI   scalepots      r   paramsfrompotrN   [   s    (UV^+++r   c                 "    | st        |d       y y )Nzdoes not hold)print)condmsgs     r   warnifrS   _   s    c?# r   c                     t        |dkD  d       t        | dk\  d       t        ||| z  z
  dkD  d       ||| z  z
  d|z   z  S )zemean excess function of genpareto

    assert are inequality conditions in de Zea Bermudez, Kotz
    r*   z
shape > -1r   zthresh >= 0z(scale - shape*thresh) > 0r   )rS   rG   s      r   
meanexcessrU   d   sQ    
 52:|$
6Q;&
EEFN"a')EFEFN"q5y11r   
   c                    |dk(  r|t         	 fS |dk(  rt        j                  |       }|d d d   j                         t        j                  dt        |       dz         z  |d d d   z
  }|d d d   }|rOt        j                  |d |  |d |         |/|\  }}	t        j                  |d |  |	|d |  |z  z
  d|z   z         fS )Nestempr*   r   r   )NotImplementedErrorr   sortcumsumr,   lenpltplot)
dataparamslidxuidxmethodr_   
datasortedrU   rI   rJ   s
             r   meanexcess_plotrf   o   s     >%% z!! 
5WWT]
 2&--/299QD	A3NNQ[\`^`\`Qaa
"%
HHZ$'FdU);<!%uFdU+ej4%6H56P.PUWZ_U_-`az!!r   g            i  )rJ   size)rh   r>   r   )ra   r_   ic                 n   t        j                  |       j                  t              }|d d d   j	                         t        j
                  dt        |       dz         z  |d d d   z
  }|d d d   j	                         t        j
                  dt        |       dz         z  }|d d d   }|||d d d   fS )Nr*   r   )r   r[   astypefloatr\   r,   r]   )r`   re   rU   meanconts       r   meanexcess_emprn      s    %%e,JTrT"))+ryyCIM/JJZX\Z\X\M]]J4R4 '')RYYq#d)a--HHHDbD!Jz8DbD>11r   c           	          t        j                  |      dk(  r| j                  |d      S t        j                  |D cg c]  }| j                  |d       c}      S c c}w )Nr   T)lbconditional)r   ndimexpectarray)r   rp   argskwdslbbs        r   meanexcess_distrx      s`     
wwr{a{{bd{33xx "$ > $ % 	% $s   A r   r=   )rp   i )ri   )Nd   rV   rY   r   )-__doc__numpyr   scipyr   scipy.specialr   scipy.stats.distributionsr   matplotlib.pyplotpyplotr^   r   r   r   r   r
   
genpareto2rI   locrJ   r,   rvquantrd   r   rP   getattrr8   entropyrK   rN   rS   rU   rf   rvsr`   tmprn   rx   dsmemcnormmeanr7   r   r   <module>r      s      3   3] 3B c%;#&

  sERYYq\#"+"+*%.%.	" CIFA
 

%'*f
%aU
;<	
*'%//6
*1ufc5
ABC juc5&9 : eooUFC? @ jU+ , eooufc51 2),$
2"* jD"  jB ~~e14~0 d:A6 c!fSTl  c!fSTl 
2% B1b!112
B b	 b	 b	 oejjS) * oejjrvvgtQ%<= >jjnn&n!	CHHJ chhj#cDj/&&(#cAg,*;*;*=s39~?R?R?T UIr   