
p7]c           @   s  d  d l  Z d  d l j Z d  d l Z d  d l m Z d  d l Z	 d  d l
 m Z d  d l Z d  d l Z d d d d d g d	 d
 d d d g d d d d d g d d d d d g d d d d d g d d d d d g d  d! d" d# d g d$ d% d& d' d g d( d) d* d+ d g d, d- d. d/ d g d0 d1 d2 d3 d g g Z e	 j e d4 d5 e d6 j d  Z d d d d d g d	 d7 d8 d9 d g d d: d; d< d g d d= d> d? d@ g d dA dB dC d@ g d dD dE dF dG g d  dH dI dJ dG g d$ dK dL dM dG g d( dN dO dP d g d, dQ dR dS d@ g d0 dT dU dV dG g g Z e	 j e d4 d5 e d6 j d  Z d d d d d g d	 dW dX dY dZ g d d[ d\ d] dZ g d d^ d_ d` da g d db dc dd da g d de df dg d g d  dh di dj dZ g d$ dk dl dm dZ g d( dn do dp dZ g d, dq dr ds da g d0 dt du dv dZ g g Z e	 j e d4 d5 e d6 j d  Z e j j dw    Z dx   Z e j j dy    Z e j j dz    Z d{   Z d S(|   iN(   t	   Mediation(   t   assert_allcloset   indext   Estimates   Lower CI bounds   Upper CI bounds   P-values   ACME (control)gɵ?gzn+?gH}?g        s   ACME (treated)g4?gVy՟?g~?s   ADE (control)g^=1X?gUq7g$7?gQ?s   ADE (treated)gb?g3gMۿҤ?s   Total effectgY-D?gGRТg$P?g?s   Prop. mediated (control)g2V?g%@M-[g켍@s   Prop. mediated (treated)g**?g<gt@s   ACME (average)ggyܵ?g#?g  ?s   ADE (average)g;ۤ?g.s,&6gN\W ?s   Prop. mediated (average)g>W[?g0!g0(h@i   t   columnsi    g#KXU?gcAJ?gEHξ?g*q㊋?g	h"?g\?g }?g5BX%g.?g(\?g'n?gj깿g	ܺ?gP9?g+]gCg|r?g{Gz?gzk`?gX;sQg^J]2a@g(yu?g:fg|}K@g:p?gjTQ?g6;Nё?gy7R?g+,gWv;?g&m?ghugc@g{O崧?g.c}k?gfI}?g{Gz?gt	4ش?g|b*3?g^yȔ?g*A*?g7^ꚿg-AF@#?g{Gz?g@Û5x_?g.ojgu7Ou?g"?g>V?gwE?g8*5?gEn1?g"3<?gw?gw/Q?g|.P?gR||Bv޲?g _>Y1|?gfJo	?gk$	?gvť*g&9`W?g	?gW[Ɏ?gׁsF?c       	   C   s  t  j j t  j j t   }  t j t  j j |  d d   } t j	 | d  } t
 j d | d d } t j j j } t j | | d t j j d |    } t j	 | d	  } t
 j d
 | d d } t j | |  } | j j   j d  | j j   j d  g }	 | j j   j d	  }
 t | | |	 |
 d i d d 6} t j j d  | j d d d d  } t j	 | j   t  } t | d d d t j j d  | j d d d d  } t j	 | j   t  } t | d d d d  S(   Nt   resultss   framing.csvt	   cong_mesgs*   emo + treat + age + educ + gender + incomet   return_typet	   dataframet   familyt   linkt   emos$   treat + age + educ + gender + incomet   treatt   outcome_fit_kwargsgdy=t   atoli  t   methodt
   parametrict   n_repid   i    gư>t   boot(   t   ost   patht   dirnamet   abspatht   __file__t   pdt   read_csvt   joint   npt   asarrayt   patsyt   dmatrixt   smt   familiest   linkst   probitt   GLMt   Binomialt   OLSR   t   tolistR   R    t   randomt   seedt   fitt   summaryt   framing_para_4231R   t   framing_boot_4231(   t   cur_dirt   datat   outcomet   outcome_exogR"   t   outcome_modelt   mediatort   mediator_exogt   mediator_modelt   tx_post   med_post   medt	   para_rsltt   difft	   boot_rslt(    (    sE   lib/python2.7/site-packages/statsmodels/stats/tests/test_mediation.pyt   test_framing_example6   s0    !	*	c          C   s  t  j j t  j j t   }  t j t  j j |  d d   } t j	 | d  } t
 j d | d d } t j j j } t j | | d t j j d |    } t j	 | d	  } t
 j d
 | d d } t j | |  } | j j   j d  | j j   j d  g }	 | j j   j d	  }
 | j j   j d  | j j   j d  f } i d | 6} t | | |	 |
 d | } t j j d  | j d d d d  } d  S(   NR   s   framing.csvR   s*   emo + treat + age + educ + gender + incomeR   R   R	   R
   R   s$   treat + age + educ + gender + incomeR   t   agei   t
   moderatorsi  R   R   R   id   (   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R   R&   R   R    R'   R(   R)   (   R-   R.   R/   R0   R"   R1   R2   R3   R4   R5   R6   t   ixR=   R7   t   med_rslt(    (    sE   lib/python2.7/site-packages/statsmodels/stats/tests/test_mediation.pyt   test_framing_example_moderatorZ   s*    !	*		c       	   C   s^  t  j j t  j j t   }  t j t  j j |  d d   } t j	 j
 j } t j j d | d t j	 j d |    } t j j d |  } t | | d d d	 i d
 d 6} t j j d  | j d d d d  } t j | j   t  } t | d d d t j j d  | j d d d d  } t j | j   t  } t | d d d d  S(   NR   s   framing.csvs6   cong_mesg ~ emo + treat + age + educ + gender + incomeR	   R
   s*   emo ~ treat + age + educ + gender + incomeR   R   R   gdy=R   i  R   R   R   id   i    gư>R   (   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   t   from_formulaR$   R%   R    R   R'   R(   R)   R   R*   R,   R   R+   (   R-   R.   R"   R1   R4   R7   R?   R9   (    (    sE   lib/python2.7/site-packages/statsmodels/stats/tests/test_mediation.pyt   test_framing_example_formulaz   s     !!c    	      C   s  t  j j t  j j t   }  t j t  j j |  d d   } t j	 j
 j } t j j d | d t j	 j d |    } t j j d |  } i d d 6} t | | d	 d
 d | } t j j d  | j d d d d  } t j | j   t  } t | d d d d  S(   NR   s   framing.csvs>   cong_mesg ~ emo + treat*age + emo*age + educ + gender + incomeR	   R
   s(   emo ~ treat*age + educ + gender + incomei   R<   R   R   R=   i  R   R   R   id   i    R   gư>(   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   RA   R$   R%   R    R   R'   R(   R)   R   R*   t   framing_moderated_4231R   (	   R-   R.   R"   R1   R4   R=   R7   R?   R9   (    (    sE   lib/python2.7/site-packages/statsmodels/stats/tests/test_mediation.pyt&   test_framing_example_moderator_formula   s    !!	c          C   s  t  j j d  d }  t  j j d |   } t  j | t  j d   } t  j d d d g  } | t  j t  j | d   :} | d	 t  j | t  j d   } | | d t  j t  j j d |   t  j d   7} | | d t  j j d |  d f  7} t  j | t  j	 d  | } t  j d d d g  } | t  j t  j | d   :} | d	 t  j t  j j d |   t  j d   } | | d t  j t  j j d |   t  j	 d  7} | | d t  j j d |  d f  7} | | } t  j t  j
 |   t  j d   }	 t  j t  j |   t  j	 d  }
 t j i | j   d 6| j   d 6|	 j   d 6|
 j   d 6| j   d 6 } t j j d d d d | } t j j d d d d | } t | | d d  } | j d d  } | j   } | j d  } t | d d d d d d  S(!   Ni`  i   t   sizei   g      @i   i   i   i    g      ?g      @it   yt   xt   idt   timeR7   s   med ~ xt   groupsR.   s   y ~ med + xR   s   Prop. mediated (average)R   gp=
ף?t   rtolg{Gz?R   (   i    g      ?i   (   ii    i   (   ii    i   (   s   Prop. mediated (average)R   (   R   R'   R(   t   normalt   outert   onesR   t   sqrtt   sumt   r_t   arangeR   t	   DataFramet   flattenR   t   MixedLMRA   R    R)   R*   t   locR   (   t   nRG   t   xvt   mxR7   t   eyt   ext   eRF   t   idxt   timt   dfR4   R1   t   met   mrt   stt   pm(    (    sE   lib/python2.7/site-packages/statsmodels/stats/tests/test_mediation.pyt   test_mixedlm   s8     #6' 24'
$"#(   t   numpyR   t   statsmodels.apit   apiR   R   t   statsmodels.stats.mediationR    t   pandasR   t   numpy.testingR   R   t   pytestR_   RS   t	   set_indexR,   R+   RC   t   markt   slowR;   R@   RB   RD   Rd   (    (    (    sE   lib/python2.7/site-packages/statsmodels/stats/tests/test_mediation.pyt   <module>   s`   &&&$	 