ó
áp7]c           @   sò   d  d l  Z d  d l m Z m Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ	 e	 d d d	 d
 ƒ Z
 d e f d „  ƒ  YZ e d d d	 d ƒ Z d e f d „  ƒ  YZ e d d d	 d ƒ Z d e f d „  ƒ  YZ e d d d	 d ƒ Z d S(   iÿÿÿÿN(   t   rv_discretet   nbinom(   t   gammaln(   t
   _lazywheret   genpoisson_p_genc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s%   Generalized Poisson distribution
    c         C   s   | d k | | k @| d k @S(   Ni    (    (   t   selft   mut   alphat   p(    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyt	   _argcheck
   s    c   	      C   s³   | | d } t  j t  j d d ƒ d | | ƒ } t  j t  j d d ƒ | | d | ƒ } t  j | ƒ | d t  j | ƒ } | | t  j | ƒ t | d ƒ | | 8} | S(   Ng      ð?i    i   (   t   npt   maximumt	   nextaftert   logR   (	   R   t   xR   R   R   t   mu_pt   a1t   a2t   logpmf_(    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyt   _logpmf   s    &*$-c         C   s   t  j |  j | | | | ƒ ƒ S(   N(   R
   t   expR   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyt   _pmf   s    (   t   __name__t
   __module__t   __doc__R	   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR      s   		t   namet   genpoisson_pt   longnames   Generalized Poissont   zipoisson_genc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s'   Zero Inflated Poisson distribution
    c         C   s   | d k | d k @| d k @S(   Ni    i   (    (   R   R   t   w(    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR	      s    c      	   C   sD   t  | d k | | | f d „  t j | d | t j | ƒ ƒ ƒ S(   Ni    c         S   s4   t  j d | ƒ |  t  j | ƒ t |  d ƒ | S(   Ng      ð?(   R
   R   R   (   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyt   <lambda>#   s    g      ð?(   R   R
   R   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   !   s    c         C   s   t  j |  j | | | ƒ ƒ S(   N(   R
   R   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   '   s    (   R   R   R   R	   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR      s   		t	   zipoissons   Zero Inflated Poissont   zigeneralizedpoisson_genc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s3   Zero Inflated Generalized Poisson distribution
    c         C   s   | d k | d k @| d k @S(   Ni    i   (    (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR	   0   s    c         C   sR   t  | d k | | | | | f d „  t j | d | t j | | | | ƒ ƒ ƒ S(   Ni    c         S   s'   t  j d | ƒ t j |  | | | ƒ S(   Ng      ð?(   R
   R   R   t   logpmf(   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   5   s   g      ð?(   R   R
   R   R   t   pmf(   R   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   3   s    c         C   s"   t  j |  j | | | | | ƒ ƒ S(   N(   R
   R   R   (   R   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   :   s    (   R   R   R   R	   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR    -   s   		t   zigenpoissons!   Zero Inflated Generalized Poissont   zinegativebinomial_genc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s=   Zero Inflated Generalized Negative Binomial distribution
    c         C   s   | d k | d k @| d k @S(   Ni    i   (    (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR	   C   s    c         C   sg   |  j  | | | ƒ \ } } t | d k | | | | f d „  t j | d | t j | | | ƒ ƒ ƒ S(   Ni    c         S   s$   t  j d | ƒ t j |  | | ƒ S(   Ng      ð?(   R
   R   R   R!   (   R   t   sR   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   I   s   g      ð?(   t   convert_paramsR   R
   R   R   R"   (   R   R   R   R   R   R   R%   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   F   s
    c         C   s"   t  j |  j | | | | | ƒ ƒ S(   N(   R
   R   R   (   R   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR   N   s    c         C   s.   d | | d | } | | | } | | f S(   Ng      ð?i   (    (   R   R   R   R   t   sizet   prob(    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR&   Q   s    (   R   R   R   R	   R   R   R&   (    (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyR$   @   s
   			t   zinegbins+   Zero Inflated Generalized Negative Binomial(   t   numpyR
   t   scipy.statsR    R   t   scipy.specialR   t   statsmodels.compat.scipyR   R   R   R   R   R    R#   R$   R)   (    (    (    sA   lib/python2.7/site-packages/statsmodels/distributions/discrete.pyt   <module>   s   			