
p7]c           @   s  d  Z  d d l Z d d l m Z d d l m Z m Z m Z d d l	 m
 Z
 d d l j j j j Z d d l m Z e d e  Z e j e j d d  d f  e j d d  d f <e
 e j d	 e Z e j d
 Z e e j e j d  d  :Z d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ  d S(   s=   
Created on Thu Aug  3 21:08:49 2017

Author: Josef Perktold
iN(   t   assert_allclose(   t   Poissont   NegativeBinomialt   NegativeBinomialP(   t   add_constant(   t   loadt	   as_pandasi   t   prependi   i    t   CheckMarginMixinc           B   s   e  Z d  Z d   Z RS(   i   c         C   s   |  j  } |  j } |  j } t |  j j |  j  j | d d | t |  j j |  j  j | d d | t |  j j |  j  j | d d | t |  j j	   | j
 | d d  f d d | d  S(   Nt   rtolgh㈵>gư>gh㈵>i   i   (   t   res1t
   res1_slicet   rtol_facR    t   margefft   paramst
   margeff_set   bset   pvaluest   conf_intt   margins_table(   t   selfR
   t   slt   rf(    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyt   test_margins_table   s    			'''((   t   __name__t
   __module__R   R   (    (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR      s   t   TestPoissonMarginc           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d g } t  t t  } | j d |  } | j   } | |  _ | |  _ d	 |  _ t d  d  d   |  _
 t j |  _ d  S(
   Ngm4W,@gy&1?g3ı.ngsh|?gۊe	@g37ggj+6t   start_paramsi   (   R   t   endogt   exogt   fitt   get_margefft   resR   R   t   slicet   NoneR   t	   res_statat   results_poisson_margins_contR
   (   t   clsR   t   mod_poit   res_poit	   marge_poi(    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyt   setup_class(   s    				(   R   R   t   classmethodR)   (    (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR   &   s   t   TestPoissonMarginDummyc           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d g } t  t t  } | j d |  } | j d	 t  } | |  _ | |  _ d
 d d d d d g |  _ t	 j
 |  _ d  S(   Ngm4W,@gy&1?g3ı.ngsh|?gۊe	@g37ggj+6R   t   dummyi    i   i   i   i   i   (   R   R   R   R   R   t   TrueR    R   R   R#   t   results_poisson_margins_dummyR
   (   R%   R   R&   R'   R(   (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR)   ;   s    			(   R   R   R*   R)   (    (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR+   9   s   t   TestNegBinMarginc           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d d g } t  t t  } | j d	 | d
 d d d  } | j   } | |  _ | |  _ t d  d  d   |  _	 t
 j |  _ d |  _ d  S(   Ng.1f*@g_v?gClgg镲gׁsF@gxz,C!g
ףp=
g=
ףp=?R   t   methodt   nmt   maxiteri  g      I@(   R   R   R   R   R   R    R   R!   R"   R   R#   t   results_negbin_margins_contR
   R   (   R%   R   t   modR    t   marge(    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR)   L   s    		(   R   R   R*   R)   (    (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR/   J   s   t   TestNegBinMarginDummyc           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d d g } t  t t  } | j d	 | d
 d d d  } | j d t  } | |  _ | |  _ d d d d d d g |  _ |  _ t	 j
 |  _ d |  _ d  S(   Ng.1f*@g_v?gClgg镲gׁsF@gxz,C!g
ףp=
g=
ףp=?R   R0   R1   R2   i  R,   i    i   i   i   i   i   g      I@(   R   R   R   R   R   R-   R    R   R   R#   t   results_negbin_margins_dummyR
   R   (   R%   R   R4   R    R5   (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR)   _   s    		"(   R   R   R*   R)   (    (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR6   ]   s   t   TestNegBinPMarginc           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d d g } t  t t  } | j d	 | d
 d d d  } | j   } | |  _ | |  _ t d  d  d   |  _	 t
 j |  _ d |  _ d  S(   Ng.1f*@g_v?gClgg镲gׁsF@gxz,C!g
ףp=
g=
ףp=?R   R0   R1   R2   i  g      I@(   R   R   R   R   R   R    R   R!   R"   R   R#   R3   R
   R   (   R%   R   R4   R    R5   (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR)   r   s    		(   R   R   R*   R)   (    (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyR8   o   s   (!   t   __doc__t   numpyt   npt   numpy.testingR    t#   statsmodels.discrete.discrete_modelR   R   R   t   statsmodels.tools.toolsR   t8   statsmodels.discrete.tests.results.results_count_marginst   discretet   testst   resultst   results_count_marginsR#   t   statsmodels.datasets.cpunishR   t   Falset   cpunish_datat   logR   R   t   roundt   maxt   objectR   R   R+   R/   R6   R8   (    (    (    sF   lib/python2.7/site-packages/statsmodels/discrete/tests/test_margins.pyt   <module>   s"   5