U
    Kvf  ã                   @   sü   d Z ddlZddlmZ ddlmZ dd„ Zdd„ Zd	d
„ Z	dd„ Z
ejdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ ZedkrøddlmZ ejjdddZejjddddZee ZejjddddZddlZe ¡ Zeeed d!d"Zed# e ¡ e ¡ƒ 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                 C   s(   t  |dkt  | ¡| d|  d|  ¡S ©Né   )ÚnpÚwhereÚlog©ÚmuÚp© r   úP/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/genmod/_tweedie_compound_poisson.pyÚ_theta   s    r   c                 C   s   d|  d|   S )Né   r   r   )r   r   r   r   Ú_alpha   s    r   c                 C   sl   t |ƒ}| t | ¡ |t |d ¡  d| t |¡  t d| ¡ }|| td| ƒ t| | ƒ S )Nr   r   )r   r   r   r   )ÚyÚjr   ÚphiÚalphaZlogzr   r   r   Ú_logWj    s    &ÿÿr   c                 C   s   | d|  d|  S ©Nr   r   r	   r   r   r   Úkappa'   s    r   c              	   C   s2   t  ||d ¡}t  t  t| |||ƒ| ¡¡}|S r   )r   ZarangeÚsumÚexpr   )r   Új_lÚj_uÚlogWmaxr   r   r   Úsumwr   r   r   Ú_sumw+   s    r   c                 C   s
  t |ƒ}| d|  d| |  }t d| | ¡}|d }t |¡}t| t |¡||ƒ|k ¡ r‚t t| |||ƒ|k|d |¡}qD|}t |¡}t |dk|d¡}t| |||ƒ|k ¡ ræ|dk ¡ ræt t| |||ƒ|k|d d¡}q¢|}	t| |	||||ƒ}
|t 	|
¡ S )Nr   r   é%   )
r   r   ÚarrayÚceilr   Úanyr   Úfloorr   r   )r   r   r   r   Zjmaxr   Ztolr   r   r   r   r   r   r   ÚlogW2   s    
"
""r$   c                 C   s    t  |d|   |d|   ¡S r   )r   r   ©r   r
   r   r   r   r   r   Údensity_at_zeroD   s    r&   c                 C   sD   t ||ƒ}t| ||ƒt | ¡ d| | | t||ƒ   }t |¡S r   )r   r$   r   r   r   r   )r   r
   r   r   ÚthetaZlogdr   r   r   Údensity_otherwiseH   s    
0r(   c                 C   s&   t t | ¡dk| |||fttd}|S )Nr   )ÚfÚf2)r   r   r    r(   r&   )r   r
   r   r   Zdensityr   r   r   Úseries_densityN   s    
ýr+   Ú__main__)Ústatsgš™™™™™¹?i€–˜ )Úsizei0u  )Zscaler.   é
   é   g      ø?é   r%   zThat took {} seconds)Ú__doc__Znumpyr   Zscipy._lib._utilr   Zscipy.specialr   r   r   r   r   Z	vectorizer   r$   r&   r(   r+   Ú__name__Zscipyr-   ZpoissonZrvsÚnÚgammar   r
   ÚtimeÚtÚoutÚprintÚformatr   r   r   r   Ú<module>   s.   
