
p7]c           @   s   d  d l  Z d  d l Z d  d l j Z d  d l m Z m	 Z	 d  d l
 m Z m Z d   Z d   Z d   Z d   Z d   Z d S(	   iN(   t   BayesGaussMIt   MI(   t   assert_allcloset   assert_equalc          C   s   t  j d t  j d g t  j d t  j g d t  j d g t  j d t  j g d d d g g  }  t |   } t | j d t  j d  t | j d t  j d  d  S(   Ni   i   i   i    (   i    i   (   i   i   (   t   npt   asarrayt   nanR    R   t   patternst   r_(   t   xt   bm(    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   test_pat   s
    6'c    	      C   s  t  j j d  t  j j d d  }  d } | |  d  d   d f t  j d | d  |  d  d   d f |  d  d   d f <|  d  d   d f c d 9<|  d  d   d f c d 9<|  d  d   d f c d 7<|  d  d   d f c d 8<t  j j d |  j d  } t  j |  | d k d f <t  j j d |  j d  } t  j |  | d k d f <t |   } x t d	  D] } | j	   qqWd } d } d } d } xg t d	  D]Y } | j	   | | j
 7} | | j 7} | | j j
 d  7} | t  j | j j  7} qW| d	 :} | d	 :} | d	 :} | d	 :} t | t  j d d  t | t  j d d  t | t  j d d | g d | d g g  d  t | t  j d d | g d | d g g  d  d  S(   Nij  t   sizei  i   g      ?i    i   i   i  ig?i   i   i	   (   i  i   (   i   i(   i   i(   R   t   randomt   seedt   normalt   sqrtt   shapeR   R    t   ranget   updatet   meant   covt   datat   TR   R   R   (	   R	   t   rt   uR
   t   kR   R   t   dmeant   dcov(    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   test_2x2   sB    S




3c          C   s~  t  j j d  t  j j d d  }  t  j |  d d d g d f <t  j |  d d d g d f <t  j |  d	 d
 d g d	 f <t  j |  d
 d d g d f <d   } x d D] } t  j j d  t |  j    } t | t j	 | d d } | j
   } | j   t | j t  j d d d  t  j d d d g d d d g d d d g g  } t | j   | d d  t j |   }  q Wd  S(   Ni  R   i   i   i   i   i	   i    i   i   i   i   ic   c         S   s   t  |   t j k rE |  d  d   d f |  d  d   d d   f f S|  j d  d   d f j |  j d  d   d d   f j f Sd  S(   Ni    i   (   t   typeR   t   ndarrayt   iloct   values(   R	   (    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   model_args_fnH   s    0i&	  t   burng"؟agO+cdg0@˹?g      ?g,Hz!q?gZ~3?gftY6g-xp?gō)?gpt?g333333?(   i   i   (   i    i   (   g"؟agO+cdg0@˹?(   R   R   R   R   R   R    t   copyR   t   smt   OLSt   fitt   summaryR   t   paramsR   R   t
   cov_paramst   pdt	   DataFrame(   R	   R"   t   jt   impt   miR   t   c(    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   test_MI?   s(    	
c    
   	   C   s  t  j j d  t  j j d d  }  |  d  d   d f c d |  d  d   d f 7<d t  j d  d t  j d  g } d d g } xRt d  D]D\ } } |  j   } | | d  d   d f t  j d | d
  | d  d   d
 f | d  d   d
 f <t  j | d d  d f <d   } t  j j d  t | j    } t	 | t
 j | d d d d } | j   } t  j | j d | |  | | }	 |	 d k  st  t  j | j d | |  }	 |	 d k  s t  q Wd  S(   Ni  R   i  i   i    g      ?i   i  gH.?i   c         S   s*   |  d  d   d f |  d  d   d f f S(   Ni    i   (    (   R	   (    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt
   model_argsz   s    i&	  t   nrepid   t   skipi
   gQ?g?(   i  i   (   i    gH.?(   R   R   R   R   R   t	   enumerateR$   R   R    R   R%   R&   R'   t   abst   bset   AssertionErrort   fmi(
   t   zt   expR9   R-   R   R	   R2   R.   R/   t   d(    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   test_MI_statd   s$    	0&S	!&c    	   	   C   s  t  j j d  t  j j d d&  }  t  j |  d d d g d f <t  j |  d d d g d f <t  j |  d	 d
 d g d	 f <t  j |  d
 d d g d f <t j i |  d  d   d f d 6|  d  d   d f d 6|  d  d   d	 f d 6|  d  d   d f d 6 } d } d   } t  j j d  t | j    } t	 | t
 j d | d d d | } d   } | j d |  } | j   t | j t  j d' d d  t  j d d d  g d d! d" g d  d" d# g g  } t | j   | d$ d  t t | j  d%  d  S((   Ni  R   i   i   i   i   i	   i    i   i   i   i   ic   t   yt   x1t   x2t   x3s   y ~ 0 + x1 + x2 + x3c         S   s   i |  d 6S(   NR   (    (   R	   (    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   model_kwds_fn   s    i&	  t   formulaR#   RB   c         S   s   |  S(   N(    (   R	   (    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   <lambda>   t    t
   results_cbg"؟agO+cdg0@˹?g      ?g,Hz!q?gZ~3?gftY6g-xp?gō)?gpt?g333333?i   (   i   i   (   g"؟agO+cdg0@˹?(   R   R   R   R   R   R+   R,   R    R$   R   R%   R&   R'   R(   R   R)   R   R   R*   R   t   lent   results(	   R	   t   dft   fmlRB   R.   R/   RF   R   R0   (    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   test_mi_formula   s0    74			
(   t   numpyR   t   pandasR+   t   statsmodels.apit   apiR%   t   statsmodels.imputation.bayes_miR    R   t   numpy.testingR   R   R   R   R1   R=   RK   (    (    (    sI   lib/python2.7/site-packages/statsmodels/imputation/tests/test_bayes_mi.pyt   <module>   s   			.	%	)