
    M/Ph(              	       .   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 ]M\  ZZ e  eee          eeee                      e  eej        e          ee ee                     N ee                    eeed                      eej                            e eed                      ee                    eee                      eej                            e ee                     d Zd Zd Z d Z!d1d Z" e e!dd!d                      e e!dd"d                     e#                    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j+        d-.                      e e'ej+        ej         d!dd-g.                     ej+        #                    d/0          Z#e#e#,                                z
  Z# ee#,                                e#e#d!k             ,                                e#e#dk             ,                                e#e#d-k             ,                                           dS )2ze
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                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	genpareto2_genc                     t          j        |          }t          |dk    dt          |          z  t                    | _        t          |dk    dd          S )Nr         ?   )npasarrayr   np_absr   bselfcs     k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/sandbox/distributions/genpareto.py	_argcheckzgenpareto2_gen._argcheck   sF    JqMMq1ucF1IIos33Q!VQ"""    c                 H    t          j        d||z  z
  dd|z  z             }|S )Nr         r   r   power)r   xr   Pxs       r   _pdfzgenpareto2_gen._pdf   s(    Xa!a%ia00	r   c                 D    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22r   c                 D    dt          j        d||z  z
  d|z            z
  S )Nr   r   r   r!   s      r   _cdfzgenpareto2_gen._cdf    s%    RXa!a%iq1111r   c                 H    d|z  t          j        d|z
  |          dz
  z  }|S )Nr   r   r   )r   qr   valss       r   _ppfzgenpareto2_gen._ppf#   s*    ax28A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k    |t
                    S )Nr   r   r   )axis)r   arangesumr   r   r   )r   nr   kvals        r   _munpzgenpareto2_gen._munp'   sq    IaQQw1nrvd1ajjB19&<a!e&LSTUU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,   s2    EEq5L1WDF )$222r   N)
__name__
__module____qualname__r   r   r"   r$   r(   r1   r3    r   r   r
   r
      s}        # # #
  3 3 32 2 2  + + +
3 3 3 3 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           d S d S )Nzdoes not hold)print)condmsgs     r   warnifrS   _   s*     $c?#####$ $r   c                     t          |dk    d           t          | dk    d           t          ||| z  z
  dk    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   sc    
 52:|$$$
6Q;&&&
EEFN"a')EFFFEFN"q5y11r   d   
   empc                    |dk    r
|t           n|dk    rt          j        |           }|d d d                                         t          j        dt          |           dz             z  |d d d         z
  }|d d d         }|rat          j        |d |          |d |                     |8|\  }}	t          j        |d |          |	|d |          |z  z
  d|z   z             ||fS )NestrX   r*   r   r   )NotImplementedErrorr   sortcumsumr,   lenpltplot)
dataparamslidxuidxmethodr`   
datasortedrU   rI   rJ   s
             r   meanexcess_plotrg   o   s    >%%	5WT]]
 2&--//29QD		A3N3NNQ[\`\`^`\`Qaa
"%
 	bHZ$'FdUF);<<<!%uFdUF+ej4%6H56P.PUWZ_U_-`aaaz!!r   g            i  )rJ   size)ri   r>   r   )rb   r`   ic                    t          j        |                               t                    }|d d d                                         t          j        dt          |           dz             z  |d d d         z
  }|d d d                                         t          j        dt          |           dz             z  }|d d d         }|||d d d         fS )Nr*   r   )r   r\   astypefloatr]   r,   r^   )ra   rf   rU   meanconts       r   meanexcess_empro      s    %%e,,JTTrT"))++ryCIIM/J/JJZX\X\Z\X\M]]J44R4 ''))RYq#d))a--H-HHHDDbD!Jz8DDbD>11r   c                      t          j        |          dk    r                     |d          S t          j         fd|D                       S )Nr   Tlbconditionalc                 >    g | ]}                     |d           S )Trq   )expect).0lbbr   s     r   
<listcomp>z#meanexcess_dist.<locals>.<listcomp>   s9     $ $ $ >> $ $ $r   )r   ndimru   array)r   rr   argskwdss   `   r   meanexcess_distr}      sh     
wr{{a{{bd{333x $ $ $ $ "$ $ $ % % 	%r   r   r=   )rr   i )rj   )NrV   rW   rX   r   )-__doc__numpyr   scipyr   scipy.specialr   scipy.stats.distributionsr   matplotlib.pyplotpyplotr_   r   r   r   r   r
   
genpareto2rI   locrJ   r,   rvquantre   r   rP   getattrr8   entropyrK   rN   rS   rU   rg   rvsra   tmpro   r}   dsmemcnormmeanr7   r   r   <module>r      s{                    3 3 3 3 3 3                    3 3 3 3 3] 3 3 3B ^c%;#&
 
 

  sERYq\\###"+"+*%.%.	" C CIFA
 
E
%''*f
%
%aU
;
;<<<	E
*''%/6
*
*1ufc5
A
ABBBB juc5&99 : : : eoUFC?? @ @ @ jU++ , , , eoufc511 2 2 2) ) ), , ,$ $ $
2 2 2" " " "* jjD"    jjB   ~~e14~00 od:A666 c!fSTTl    c!fSTTl   
2 2 2% % % ^B1b!1!1122
B b			 b			 b			 ooejS))) * * * ooejrvgtQ%<=== > > >jnn&n!!	CHHJJ chhjj#cDj/&&((#cAg,*;*;*=*=s39~?R?R?T?T U U UI Ir   