
    !g                        d Z ddlZddlmZ ddlmZ d Zd Zd Z	d Z
ej                  d	        Zd
 Zd Zd Zd Zedk(  rddlmZ ej(                  j+                  dd      Zej.                  j+                  ddd      Zeez  Zej.                  j+                  ddd      ZddlZ ej4                         Z eeedd      Z ed ej4                         ez
   d       yy)u  
Private experimental module for miscellaneous Tweedie functions.

References
----------

Dunn, Peter K. and Smyth,  Gordon K. 2001. Tweedie family densities: methods of
    evaluation. In Proceedings of the 16th International Workshop on
    Statistical Modelling, Odense, Denmark, 2–6 July.

Jørgensen, B., Demétrio, C.G.B., Kristensen, E., Banta, G.T., Petersen, H.C.,
    Delefosse, M.: Bias-corrected Pearson estimating functions for Taylor’s
    power law applied to benthic macrofauna data. Stat. Probab. Lett. 81,
    749–758 (2011)

Smyth G.K. and Jørgensen B. 2002. Fitting Tweedie's compound Poisson model to
    insurance claims data: dispersion modelling. ASTIN Bulletin 32: 143–157
    N)
_lazywhere)gammalnc                 t    t        j                  |dk(  t        j                  |       | d|z
  z  d|z
  z        S N   )npwherelogmups     i/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/genmod/_tweedie_compound_poisson.py_thetar      s2    88AFBFF2Jq1uQ(?@@    c                     d| z
  d| z
  z  S )N   r    )r   s    r   _alphar      s    Ea!er   c                 4   t        |      }| t        j                  |       z  |t        j                  |dz
        z  z   d|z
  t        j                  |      z  z
  t        j                  d|z
        z
  }||z  t        d|z         z
  t        | |z        z
  S )Nr   r   )r   r   r
   r   )yjr   phialphalogzs         r   _logWjr       s    1IEFRVVAYA!66!e)FF3K: &&Q-(DHwq1u~%
(;;<r   c                     | d|z
  z  d|z
  z  S Nr   r   r   s     r   kappar   '   s    !a%=AE""r   c           
          t        j                  ||dz         }t        j                  t        j                  t	        | |||      |z
              }|S r   )r   arangesumexpr   )r   j_lj_ulogWmaxr   r   r   sumws           r   _sumwr'   +   sB    
		#sQwA66"&&1a-789DKr   c                    t        |      }| d|z
  z  d|z
  |z  z  }t        j                  d|z
  |z        }|dz
  }t        j                  |      }t	        | t        j                  |      ||      |kD  j                         r\t        j                  t	        | |||      |kD  |dz   |      }t	        | t        j                  |      ||      |kD  j                         r\|}t        j                  |      }t        j                  |dkD  |d      }t	        | |||      |kD  j                         ro|dkD  j                         r\t        j                  t	        | |||      |kD  |dz
  d      }t	        | |||      |kD  j                         r|dkD  j                         r\|}	t        | |	||||      }
|t        j                  |
      z   S )Nr   r   %   )
r   r   arrayceilr   anyr	   floorr'   r
   )r   r   r   r   jmaxr%   tolr   r$   r#   r&   s              r   logWr0   2   s   1IEQ<AES=)DhhE	T)*G
B,C
A!RWWQZC(3.
3
3
5HHVAq!S)C/Q: !RWWQZC(3.
3
3
5
C
A
Q1A!Q3#%
*
*
,!a%HHVAq!S)C/Q: !Q3#%
*
*
,!a%
CCgq#.DRVVD\!!r   c                 L    t        j                  |d|z
  z   |d|z
  z  z        S r   )r   r"   r   r   r   r   s       r   density_at_zeror3   D   s)    66B1q5M"cQUm455r   c                     t        ||      }t        | ||      t        j                  |       z
  d|z  | |z  t	        ||      z
  z  z   }t        j
                  |      S r   )r   r0   r   r
   r   r"   )r   r   r   r   thetalogds         r   density_otherwiser7   H   sR    2qME1c?RVVAY&!c'QYr15M*NOD66$<r   c                 h    t        t        j                  |       dkD  | |||ft        t              }|S )Nr   )ff2)r   r   r*   r7   r3   )r   r   r   r   densitys        r   series_densityr<   N   s2    !qRC,+-G Nr   __main__)statsg?i )sizei0u  )scaler?   
      g      ?   r2   z
That took z seconds)__doc__numpyr   scipy._lib._utilr   scipy.specialr   r   r   r   r   	vectorizer'   r0   r3   r7   r<   __name__scipyr>   poissonrvsngammar   r   timetoutprintr   r   r   <module>rS      s   $  ' !A=#  "$6 z"8,A%h7A	AA	2H	5B		A
1s
3C	Jytyy{Q'x
01 r   