
    M/Ph                        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                            dd          Zej                            ddd          Zeez  Zej                            ddd          ZddlZ ej                    Z eeedd          Z ed ej                    ez
   d           dS dS )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                 r    t          j        |dk    t          j        |           | d|z
  z  d|z
  z            S N   )npwherelogmups     l/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/genmod/_tweedie_compound_poisson.py_thetar      s3    8AFBF2JJq1uQ(?@@@    c                     d| z
  d| z
  z  S )N   r    )r   s    r   _alphar      s    Ea!er   c                 D   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    1IIEFRVAYYA!66!e)F3KK: &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'   +   sH    
	#sQwA6"&1a--78899DKr   c                    t          |          }| d|z
  z  d|z
  |z  z  }t          j        d|z
  |z            }|dz
  }t          j        |          }t	          | t          j        |          ||          |k                                    rgt          j        t	          | |||          |k    |dz   |          }t	          | t          j        |          ||          |k                                    g|}t          j        |          }t          j        |dk    |d          }t	          | |||          |k                                    r|dk                                    rmt          j        t	          | |||          |k    |dz
  d          }t	          | |||          |k                                    r|dk                                    m|}	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   1IIEQ<AES=)DhE	T)**G
B,C
A!RWQZZC((3.
3
3
5
5 ;HVAq!S))C/Q:: !RWQZZC((3.
3
3
5
5 ;
C
A
Q1A!Q3#%
*
*
,
, ;!a% ;HVAq!S))C/Q:: !Q3#%
*
*
,
, ;!a% ;
CCgq#..DRVD\\!!r   c                 J    t          j        |d|z
  z   |d|z
  z  z            S r   )r   r"   r   r   r   r   s       r   density_at_zeror3   D   s*    6B1q5M"cQUm45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   sX    2qMME1c??RVAYY&!c'QYr15M*NOD6$<<r   c                 t    t          t          j        |           dk    | |||ft          t                    }|S )Nr   )ff2)r   r   r*   r7   r3   )r   r   r   r   densitys        r   series_densityr<   N   s<    !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 A A  = = =# # #   " " "$6 6 6     z"8,,A%h77A	AA	2H	5	5BKKK	A
.1s
3
3
3C	E
0yty{{Q
0
0
011111 r   