
p7]c        
   @   s  d  d l  Z  d  d l Z d  d l m Z m Z m Z m Z d  d l m	 Z	 d  d l
 Z d  d l Z e Z y d  d l j Z Wn e k
 r n Xd   Z e j d5 Z e j d6 Z e j d7 Z e j d8 Z e j d d d e j f Z e j d9 Z e j d: Z e j d; Z e j d< Z e j d= Z e j d> Z  e j d d d e j f Z! e j d? Z" e j d@ Z# e  j$ j% e  j$ j& e'   Z( e  j$ j) e( d d  Z* e j+ e*  Z, d   Z- d    Z. d!   Z/ d"   Z0 d#   Z1 d$   Z2 e j3 j4 d%    Z5 d&   Z6 d'   Z7 d(   Z8 d)   Z9 d*   Z: d+   Z; d,   Z< d-   Z= d.   Z> d/   Z? d0   Z@ d1   ZA e j3 jB d2    ZC d3   ZD e j3 jB d4    ZE d S(A   iN(   t   SurvfuncRightt   survdifft   plot_survfunct   CumIncidenceRight(   t   assert_allclosec         C   s   t  r |  j |  n  d  S(   N(   t
   pdf_outputt   savefig(   t   pdft   fig(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   close_or_save   s    i   i   i   i   i    g      ?g:gUU?g     ?g        g.?gC&ϫ?g?i   i   i   g      ?i   i	   gh"q?gc@?gc@?gG
TѺ?g b?gE;I?t   resultss   bmt.csvc          C   s{   t  t t  }  t |  j t d d d d t |  j t d d d d t |  j t	  t |  j
 t  t |  j t  d  S(   Nt   atolgh㈵>t   rtol(   R    t   ti1t   st1R   t	   surv_probt
   surv_prob1t   surv_prob_set   surv_prob_se1t
   surv_timest   times1t   n_riskt   n_risk1t   n_eventst	   n_events1(   t   sr(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survfunc1;   s    c          C   s{   t  t t  }  t |  j t d d d d t |  j t d d d d t |  j t	  t |  j
 t  t |  j t  d  S(   NR   gh㈵>R   (   R    t   ti2t   st2R   R   t
   surv_prob2R   t   surv_prob_se2R   t   times2R   t   n_risk2R   t	   n_events2(   R   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survfunc2F   s    c          C   s   t  j t t f  }  t  j t t f  } t  j t |    } d | d t t  +t |  | |  \ } } t	 | d d d d d t	 | d d d d d d  S(   Ni    g:ǀ,@R   g-C6?R   g-lI?(
   t   npt   concatenateR   R   R   R   t   onest   lenR   R   (   t   tit   stt   groupst   zt   p(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survdiff_basicQ   s    c    	      C   s   t  j t  d d k d  d   f }  t |  d |  d  } | j d d  \ } } | j d d  \ } } | j j   } g  d D] } | j |  ^ q } t | | t j	 d  t | | t j	 d  t | | t j	 d  t | | t j	 d   d  S(!   Nt   Groupt   ALLt   Tt   Statust	   transformt   logt   arcsinin   iz   i   i   gNB?g7?g)(i?gm?gi@ֶ?g?g*^"?g׾s|?g0՜Q?gNFS?g2]_V.?g)1?gFw?gBh?g-U?g9j?(   in   iz   i   i   (   gNB?g7?g)(i?gm?(   gi@ֶ?g?g*^"?g׾s|?(   g0՜Q?gNFS?g2]_V.?g)1?(   gFw?gBh?g-U?g9j?(
   t   bmtt   locR    t   simultaneous_cbR   t   tolistt   indexR   R#   t   r_(	   t   dft   sft   lcb1t   ucb1t   lcb2t   ucb2R'   t   xt   ix(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_simultaneous_cb]   s    #"c    	      C   sZ  i d d g d 6d d g d 6d d g d 6d	 d g d
 6d	 d g d 6}  t  t  j d k } t j j t j j t   } t j j | d d  } t j	 |  } t
 | d j | j j  } t | j | j  t | j | j d d d d t | j | j d d d d xG d D]? } | j d d | \ } } t |  | t j | | f  qWd  S(   Nik   i  t   lineariV   i   t   cloglogiL  R2   ih   t   asinsqrtt   logitR.   R
   s   bmt_results.csvR/   R   g-C6?R   g      ?t   method(   RC   RD   R2   RF   RE   (   R4   R-   t   ost   patht   dirnamet   abspatht   __file__t   joint   pdt   read_csvR    t   valuesR0   R   R   t   tR   t   sR   t   set   quantile_ciR#   R9   (	   t   cbt   dfat   cur_dirt   fpt   rsltR;   RG   t   lcbt   ucb(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_bmtt   s     c       
   C   sr  t  t  j d k j   }  t |  d |  j |  j  \ } } t | d d d d d t |  d |  j |  j d d \ } } t | d	 d d d d t |  d |  j |  j d d
 \ } } t | d d d d d t |  d |  j |  j d d d d \ } } t | d d d d d t |  d |  j |  j d d d d \ } } t | d d d d d t j |  j d  d } | |  d <t |  d |  j |  j d |  j	 \ } } t | d d d d d t |  d |  j |  j d |  j	 d d d d \ } } t | d d d d d t |  d |  j |  j d |  j	 d d d d \ } } t | d d d d d t j |  j d  d |  d <t |  d |  j |  j d |  j	 \ } } t | d d d d d t |  d |  j |  j d |  j	 d d d d \ } } t | d d d d d t |  d |  j |  j d |  j	 d d d d \ } } t | d d d d d d  S(   NR.   R/   gϸp *@R   g-C6?R   t   weight_typet   gbg2.@t   twg+MJA-@t   fht   fh_pg      ?g 4,@i   gq=
ף-@i    i   t   stratagM'@g6[@)@gԚx)@i   gPN@(@g>yX5)@g-*@(
   R4   R-   t   copyR   R0   R   R#   t   aranget   shapeRb   (   R:   t   statR+   Rb   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survdiff   s@    "((
+""+""c         C   s
  t  r% d d l m } | d  } n d  } t t t  } t t t  } t	 |  } t
 | |  t	 |  } t
 | |  t	 | | g  } t
 | |  t j d  } g  } xD | D]< } t | d d | d d d | d	 }	 | j |	  q Wt	 |  } | j   d	 }
 |
 j d
 d
 d d g  |
 j   \ } } | j g  d D] } | | ^ qJg  d D] } | | ^ qdd  t
 | |  t j d k } t t j | d f t j | d f  } | j   } | j   d	 }
 |
 j d
 d
 d d g  |
 j   \ } } | j d d  \ } } t j | j | | d d | j d d  \ } } t j | j | d d t j | j | d d t j | j | j d | j d d t j | j | j d | j d d t j d d  t
 | |  t  r| j   n  d  S(   Ni(   t   PdfPagess   test_survfunc.pdfR-   i   R/   R0   t   titlei    g?g{Gz?g?i   i   s   center rightR.   R1   R2   t   colort	   lightgreyR3   t   darkgreyt   redid   iX  (   i    i   i   (   i    i   i   (   R   t   matplotlib.backends.backend_pdfRh   t   NoneR    R   R   R   R   R   R	   R4   t   groupbyt   appendt   get_axest   set_positiont   get_legend_handles_labelst   legendR-   R5   t   plotR6   t   pltt   fill_betweenR   R   R   t   xlimt   close(   t   close_figuresRh   R   t   sr1t   sr2R   R^   t   svt   gt   s0t   axt   hat   lbt   kt   iiR;   RZ   R[   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_plot_km   sT    ) )''c          C   s   t  j d }  t  j d } t  j d } t |  | d | } t | j t  j d  t | j t  j d  t | j t  j d  d  S(   Ni   i   i   i   i   i   i	   i   i   i    t   freq_weightsg      ?g      ?gvWUU?g&>?g        guh5y?gXa?gQ[?gi< ?g?(   i   i   i   i   i   i   i   i	   i   i   i   i   i   (   i   i   i    i   i   i    i    i   i    i    i   i   i    (   i   i   i   i   i   i   i   i   i   i   i   i   i   (   i   i   i   i   i	   (   g      ?g      ?gvWUU?g&>?g        (   guh5y?gXa?gQ[?gi< ?g?(   R#   R9   R    R   R   R   R   (   t   tmR(   t   wtR;   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_weights1   s    		c          C   s   t  j d }  t  j d } t  j d } t  j d } t  j d } t |  | d | } t | |  } t | j | j  t | j | j  t | j t  j d  d  S(   Ni   i   i   i   i   i   i   i   i
   i    R   gb?gL?g3?g0^?g!?gyx?gm+?goG!?(
   i   i   i   i   i   i   i   i   i   i
   (
   i   i   i    i   i   i   i   i    i   i   (
   i   i   i   i   i   i   i   i   i   i   (   i   i   i   i   i   i   i   i   i   i
   i   i   i   i   i
   (   i   i   i    i   i   i   i   i    i   i   i   i   i    i   i   (   gb?gL?g3?g0^?g!?gyx?gm+?goG!?(   R#   R9   R    R   R   R   R   (   R   R(   R   t   tm0t   st0t   sf0t   sf1(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_weights2  s    	 c          C   s
  t  j d }  t  j d } t |  |  } t  j d
 d d d d d d g  t  j d d d d d d d g  t  j d d d d d d d g  g } t | d	 | j d	  t | d | j d  t | d | j d  t  j d d d d d d d g  t  j d d d d d d d g  t  j d d d d d d d g  g } t | d	 | j d	  t | d | j d  t | d | j d  t  j t |    } t |  | d | } t | j d	 | j d	  t | j d | j d  t | j d | j d  d  S(   Ni   i   i   i   i   i   i	   i   i    g#q?g쿭??g        gruS?gl?gS?g!?g\?gm7)?gā?gL^?R   (   i   i   i   i   i   i   i   i   i   i   i	   i	   i	   i   i   i   i   i   (   i   i   i   i   i   i   i   i   i   i    i    i    i    i    i    i    i    i    (	   R#   R9   R   t   arrayR   t   cinct   cinc_seR%   R&   (   t   ftimet   fstatt   ciR   R   t   weightst   ciw(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_incidence%  s4    c          C   s   t  j d }  t  j d } t  j d } t |  | d | } t | j t  j d   t | j t  j d!  t | j t  j d" d d t | j t  j d# d d d  S($   Ni   i   i   i   i   i	   i
   i    i   i   t   entryi   g      ?gz6?g(?gy?g镲q?gD?g37?R   g-C6?gea?g(y?gH.?g9#J?gAǘ?g/$?g=yX?(   i   i   i   i   i   i   i   i   i   i	   i
   i
   (   i   i   i    i   i   i   i    i    i   i   i    i   (   i    i   i   i   i   i   i   i   i   i   i   i    (   i   i   i	   i   i   i   i   (   i   i   i   i   i   i	   i
   (   g      ?gz6?g(?gy?g镲q?gD?g37?(   gea?g(y?gH.?g9#J?gAǘ?g/$?g=yX?(   R#   R9   R    R   R   R   R   R   (   t   timest   statusR   R;   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survfunc_entry_1S  s    c          C   s   t  j d
 }  t  j d } t  j d } t |  | d	 | } t |  |  } t | j | j  t | j | j  t | j | j  t | j | j  d  S(   Ni   i   i   i   i   i	   i
   i    R   (   i   i   i   i   i   i   i   i   i   i	   i
   i
   (   i   i   i    i   i   i   i    i    i   i   i    i   (   i    i    i    i    i    i    i    i    i    i    i    i    (   R#   R9   R    R   R   R   R   R   (   R   R   R   R;   R   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survfunc_entry_2j  s    c       
   C   s   t  j d }  t  j d } t  j d } t |  | d	 | } t | j t  j d  t | j t  j d  t | j t  j d d d t | j t  j d d d d  S(   Ni   i   i   i   i	   i    i   i   R   i   g(m?g_#I?R   gh㈵>gHK?g1q	?(	   i   i   i   i   i   i   i   i   i	   (	   i    i    i   i   i   i    i   i   i    (	   i    i   i   i   i   i   i   i   i   (   i   i   (   i   i   (   g(m?g_#I?(   gHK?g1q	?(   R#   R9   R    R   R   R   R   R   (   R   R   R   R;   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survfunc_entry_3z  s    c          C   s   t  j d }  t  j d } t  j d } t  j d } t |  | | d
 | \ } } t |  | |  \ } } t | |  t | |  d  S(   Ni   i   i   i   i   i   i   i	   i    R   (
   i   i   i   i   i   i   i   i   i   i	   (
   i   i   i    i   i   i    i   i   i    i    (
   i    i    i    i    i    i   i   i   i   i   (
   i    i    i    i    i    i    i    i    i    i    (   R#   R9   R   R   (   R'   R(   t   grR   t   z1t   p1t   z2t   p2(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survdiff_entry_1  s    c          C   s   t  j d }  t  j d } t  j d } t  j d } t |  | |  \ } } t | d
  t | d  t |  | | d | \ } } t | d  t | d  d  S(   Ni   i   i   i   i   i   i	   i   i    g:@gZj΃?R   g      @g$#P?(
   i   i   i   i   i   i   i   i   i   i	   (
   i   i   i    i   i   i    i   i   i    i    (
   i    i    i    i    i    i   i   i   i   i   (
   i   i   i   i   i   i   i   i   i   i   (   R#   R9   R   R   (   R'   R(   R   R   R*   R+   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survdiff_entry_2  s    c          C   s   t  j d }  t  j d } t  j d } t  j d } t |  | |  \ } } t | d
  t | d  t |  | | d | \ } } t | d  t | d  d  S(   Ni   i   i   i   i   i	   i   i    i   g-4@g[TR?R   g&x @gb: $0?(
   i   i   i   i   i   i   i   i	   i   i	   (
   i   i   i   i   i   i    i   i    i    i    (
   i    i    i    i    i    i   i   i   i   i   (
   i   i   i   i   i   i   i   i   i   i    (   R#   R9   R   R   (   R'   R(   R   R   R*   R+   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_survdiff_entry_3  s    c    	      C   s   t  j j d  d }  t  j t  j j d |    } t  j j d d d |  } t  j |  } | | } | | } t | |  } d | d k } t | |  } d | j	 } | j
 d | j
 d t  j |  } t | |  d  S(   Niw	  i   t   sizei    i   i   (   R#   t   randomt   seedR2   t   uniformt   randintt   argsortR   R    R   R   t   flatnonzeroR   (	   t   nt   timeR   R   R   t   statusaR;   R@   t   y(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_incidence2  s    

%c          C   s   d }  t  j j d  t  j j d |  d f  } t  j j d |   } t  j j d d d |  } t | | d | } t  j d } t  j d } t | j	 d d !|  t | j
 d d !|  d  S(   Nid   ij  R   i   i    i   t   exoggsX?g؝Ic?g>t(?gC?gN`ז	?g,`#ש?gNti?g|#?g\?gV[Ch?i   (   gsX?g؝Ic?g>t(?gC?gN`ז	?(   g,`#ש?gNti?g|#?g\?gV[Ch?(   R#   R   R   t   normalR   R   R    R9   R   R   R   (   R   R@   R   R   t   resultt   timext   sprob(    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_kernel_survfunc1  s    c          C   s   d }  t  j j d  t  j j d |  d f  } t  j j d d d |  } t  j j d d d |  } t | |  } t | | d | d	 d
 } t | j | j  t | j	 | j	 d d d d d  S(   Nid   ij  R   i   i    i
   i   R   t	   bw_factori'  R   gư>R   (
   R#   R   R   R   R   R   R    R   R   R   (   R   R@   R   R   t   resultkmR   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_kernel_survfunc2  s    c       	   C   s   d }  t  j j d  t  j j d |  d f  } t  j j d d d |  } t  j j d d d |  } t | | d | d	 d
 t | | d | d	 t  j d d  S(   Nid   ij  R   i   i    i
   i   R   R   i'  (   i'  i'  (   R#   R   R   R   R   R    R9   (   R   R@   R   R   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_kernel_survfunc3  s    c       
   C   s   d }  t  j j d  t  j j d |  d f  } t  j j d d d |  } t  j j d d d |  } t | |  } xz t t f D]l } t | | d | d d	 d
 | } t	 | j
 | j
  x/ d D]' } t	 | j | | j | d d q Wq Wd  S(   Nid   ij  R   i   i    i
   R   R   i'  t   dimredi   R   gh㈵>(   i    i   (   R#   R   R   R   R   R   R   t   Falset   TrueR   R   R   (   R   R@   R   R   t   result1R   t   result2R   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_kernel_cumincidence1  s    	c          C   s   d }  t  j j d  t  j j d |  d f  } t  j j d d d |  } t  j j d d d |  } t | | d | d d	 d  S(
   Nid   ij  R   i   i    i
   R   R   i'  (   R#   R   R   R   R   R   (   R   R@   R   R   (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   test_kernel_cumincidence2  s    (   i   i   i   i   i   i   i   i   (   i    i   i   i   i    i    i   i    (   i   i   i   i   (   g      ?g:gUU?g     ?g        (   i   i   i   i   (   g      ?g      ?g      ?g      ?(	   i   i   i   i   i   i   i   i   i	   (	   i    i   i    i    i   i    i   i    i   (   i   i   i   i	   (   gh"q?gc@?gc@?g        (   i	   i   i   i   (   g      ?g      ?g      ?g      ?(F   RH   t   numpyR#   t   statsmodels.duration.survfuncR    R   R   R   t   numpy.testingR   t   pandasRN   t   pytestR   R   t   matplotlib.pyplott   pyplotRw   t   ImportErrorR	   R9   R   R   R   R   t   nanR   R   R   R   R   R   R   R   R    R!   RI   RJ   RK   RL   RW   RM   RX   RO   R4   R   R"   R,   RB   R\   Rg   t   markt
   matplotlibR   R   R   R   R   R   R   R   R   R   R   R   R   t   smokeR   R   R   (    (    (    sG   lib/python2.7/site-packages/statsmodels/duration/tests/test_survfunc.pyt   <module>   sd   "							-9			.										