ó
áp7]c        	   @   s^  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 rZd d l m Z e j j d d d ƒZ e j j d d d d d ƒZ e e Z e j j d d d d d ƒZ d d l Z e j ƒ  Z e d e d e d d d d ƒ Z d j e j ƒ  e ƒ GHn  d S(   sÃ  
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
iÿÿÿÿN(   t
   _lazywhere(   t   gammalnc         C   s2   t  j | d k t  j |  ƒ |  d | d | ƒ S(   Ni   (   t   npt   wheret   log(   t   mut   p(    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   _theta   s    c         C   s   d |  d |  S(   Ni   i   (    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   _alpha   s    c         C   s€   t  | ƒ } | t j |  ƒ | t j | d ƒ d | t j | ƒ t j d | ƒ } | | t d | ƒ t | | ƒ S(   Ni   i   (   R   R   R   R   (   t   yt   jR   t   phit   alphat   logz(    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   _logWj    s    Oc         C   s   |  d | d | S(   Ni   (    (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   kappa'   s    c         C   sE   t  j | | d ƒ } t  j t  j t |  | | | ƒ | ƒ ƒ } | S(   Ni   (   R   t   aranget   sumt   expR   (   R	   t   j_lt   j_ut   logWmaxR   R   R
   t   sumw(    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   _sumw+   s    +c         C   s  t  | ƒ } |  d | d | | } t j d | | ƒ } | d } t j | ƒ } x\ t |  t j | ƒ | | ƒ | k j ƒ  r´ t j t |  | | | ƒ | k | d | ƒ } qY W| } t j | ƒ } t j | d k | d ƒ } xe t |  | | | ƒ | k j ƒ  rL| d k j ƒ  rLt j t |  | | | ƒ | k | d d ƒ } qè W| }	 t |  |	 | | | | ƒ }
 | t j	 |
 ƒ S(   Ni   i   i%   (
   R   R   t   arrayt   ceilR   t   anyR   t   floorR   R   (   R	   R   R   R   t   jmaxR   t   tolR
   R   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   logW2   s    
-262c         C   s"   t  j | d | | d | ƒ S(   Ni   (   R   R   (   R	   R   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   density_at_zeroD   s    c         C   sX   t  | | ƒ } t |  | | ƒ t j |  ƒ d | |  | t | | ƒ } t j | ƒ S(   Ni   (   R   R   R   R   R   R   (   R	   R   R   R   t   thetat   logd(    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   density_otherwiseH   s    <c         C   s:   t  t j |  ƒ d k |  | | | f d t d t ƒ} | S(   Ni    t   ft   f2(   t	   lazywhereR   R   R"   R   (   R	   R   R   R   t   density(    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   series_densityN   s
    	t   __main__(   t   statsgš™™™™™¹?t   sizei€–˜ t   scalei0u  i
   i   R	   R   R   g      ø?R   i   s   That took {} seconds(   t   __doc__t   numpyR   t   scipy._lib._utilR    R%   t   scipy.specialR   R   R   R   R   t	   vectorizeR   R   R   R"   R'   t   __name__t   scipyR)   t   poissont   rvst   nt   gammaR	   R   t   timet   tt   outt   format(    (    (    sK   lib/python2.7/site-packages/statsmodels/genmod/_tweedie_compound_poisson.pyt   <module>   s,   								
!