
    'YHhUK                     6   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dZ	 d dlmZ d Z	 ej&                  d   Zej&                  d   Zej&                  d   Zej&                  d	   Zej&                  d
ddej0                  f   Zej&                  d   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j0                  f   Z ej&                  d   Z!ej&                  d   Z"e jF                  jI                  e jF                  jK                  e&            Z'e jF                  jQ                  e'dd      Z) ejT                  e)      Z+d Z,d Z-d Z.d Z/d Z0d Z1ejd                  jf                  d        Z4d  Z5d! Z6d" Z7d# Z8d$ Z9d% Z:d& Z;d' Z<d( Z=d) Z>d* Z?d+ Z@ejd                  j                  d,        ZBd- ZCejd                  j                  d.        ZDy# e$ r Y w xY w)/    N)SurvfuncRightsurvdiffplot_survfuncCumIncidenceRight)assert_allcloseFc                 4    t         r| j                  |       y y )N)
pdf_outputsavefig)pdffigs     a/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/duration/tests/test_survfunc.pyclose_or_saver      s    C     )         r   r   r      r   )r   r   r   r   r   r   r   r   )r   r   r   r   )      ?g:gUU?g     ?        g.?gC&ϫ?g?)         r   )      ?r   r   r   )	r   r   r   r      r   r   r   	   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   )gh"q?gc@?gc@?r   gG
TѺ?g b?gE;I?)r   r   r   r   resultszbmt.csvc                  <   t        t        t              } t        | j                  t
        dd       t        | j                  t        dd       t        | j                  t               t        | j                  t               t        | j                  t               y Nh㈵>atolrtol)r   ti1st1r   	surv_prob
surv_prob1surv_prob_sesurv_prob_se1
surv_timestimes1n_riskn_risk1n_events	n_events1srs    r   test_survfunc1r1   ;   ^     
sC	 BBLL*4dCBOO]DIBMM6*BIIw'BKK+r   c                  <   t        t        t              } t        | j                  t
        dd       t        | j                  t        dd       t        | j                  t               t        | j                  t               t        | j                  t               y r   )r   ti2st2r   r%   
surv_prob2r'   surv_prob_se2r)   times2r+   n_risk2r-   	n_events2r/   s    r   test_survfunc2r;   F   r2   r   c                  <   t        j                  t        t        f      } t        j                  t        t
        f      }t        j                  t        |             }d|dt        t               t        | ||      \  }}t        |ddd       t        |ddd       y )Nr   g:ǀ,@-C6?r    g-lI?)
npconcatenater#   r4   r$   r5   oneslenr   r   )tistgroupszps        r   test_survdiff_basicrG   Q   sx     
c
	#B	c
	#BWWSWFF1SXBF#DAqAwT5AwT5r   c                  8   t         j                  t         d   dk(  d d f   } t        | d   | d         }|j                  d      \  }}|j                  d      \  }}|j                  j                         }dD cg c]  }|j                  |       }}t        ||   t        j                  d	          t        ||   t        j                  d
          t        ||   t        j                  d          t        ||   t        j                  d          y c c}w )NGroupALLTStatuslog	transformarcsin)n   z         )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?)
bmtlocr   simultaneous_cbr)   tolistindexr   r>   r_)	dfsflcb1ucb1lcb2ucb2rB   xixs	            r   test_simultaneous_cbrc   ]   s   
 
W&)	*B	r#w8	-B##e#4JD$##h#7JD$				B3	4!"((1+	4B	4DHbee %: ; <DHbee %; < = DHbee %; < =DHbee %; < = 
5s   <Dc                     ddgddgddgddgddgd} 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       t        |j$                  |j&                  dd       dD ]:  }|j)                  d|      \  }}t        | |   t*        j,                  ||f          < y )Nk   i  V      iL  h   )linearcloglogrM   asinsqrtlogitrJ   r   zbmt_results.csvrK   r=   r    )ri   rj   rM   rl   rk   g      ?)method)rU   rI   ospathdirnameabspath__file__joinpdread_csvr   valuesrL   r   r)   tr%   sr'   sequantile_cir>   rZ   )	cbdfacur_dirfprsltr\   rm   lcbucbs	            r   test_bmtr   t   s!    #J#YsCj:	
B cii5 
!Cggoobggooh78G	gy*;	<B;;r?D	s3x

(9(9	:BBMM466*BLL$&&t$?BOOTWW4dCA 5>>$v>6S6
BEE#s(O45r   c                     t         j                         } t         t         j                  dk7     j                         }t        |d   |j                  |j                        \  }}t        |ddd       t        |d   |j                  |j                  d      \  }}t        |ddd       t        |d   |j                  |j                  d	      \  }}t        |d
dd       t        |d   |j                  |j                  dd      \  }}t        |ddd       t        |d   |j                  |j                  dd      \  }}t        |ddd       t        | d   | j                  | j                  dd      \  }}t        |ddd       t        j                  |j                  d         dz  }||d<   t        |d   |j                  |j                  |j                        \  }}t        |ddd       t        |d   |j                  |j                  |j                  dd      \  }}t        |ddd       t        |d   |j                  |j                  |j                  dd      \  }}t        |ddd       t        j                  | j                  d         dz  }|| d<   t        | d   | j                  | j                  | j                  dd      \  }}t        |ddd       t        j                  |j                  d         dz  |d<   t        |d   |j                  |j                  |j                        \  }}t        |ddd       t        |d   |j                  |j                  |j                  dd      \  }}t        |ddd       t        |d   |j                  |j                  |j                  dd      \  }}t        |ddd       y )NrJ   rK   gϸp *@r=   r    gb)weight_typeg2.@twg+MJA-@fh      ?)r   fh_pg 4,@r   gq=
ף-@gMX/@r   r   strata)r   gM'@)r   r   r   g6[@)@gԚx)@gՐ"+@r   gPN@(@g>yX5)@g-*@)
rU   copyrI   r   rL   r   r>   arangeshaper   )full_dfr[   statrF   r   full_stratas         r   test_survdiffr      sA   
 hhjG	SYY%	 	%	%	'B r#w		2884GD!D(D9r#w		288FGD!D(D9r#w		288FGD!D(D9r#w		288!GD!D(D9r#w		288GD!D(D9 ws|W^^W]]#'a1GD!D(D9 YYrxx{#a'FBxLr#w		288BIIFGD!D(D9r#w		288BII#'c3GD!D'48r#w		288BII#'a1GD!D(D9 ))GMM!,-1K#GHws|W^^W]]%nn$SJGD!D(D9 99RXXa[)A-BxLr#w		288BIIFGD!D(D9r#w		288BII#'c3GD!D'48r#w		288BII#'a1GD!D(D9r   c                 h   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 }|D ]0  }t        |d   d   |d   d   |d         }	|j                  |	       2 t        |      }|j                         d   }
|
j                  g d	       |
j                         \  }}|j!                  d
D cg c]  }||   	 c}d
D cg c]  }||   	 c}d       t        ||       t        j"                  dk(  }t        t        j$                  |df   t        j$                  |df         }|j'                         }|j                         d   }
|
j                  g d	       |
j                         \  }}|j)                  d      \  }}t+        j,                  |j.                  ||d       |j)                  d      \  }}t+        j&                  |j.                  |d       t+        j&                  |j.                  |d       t+        j&                  |j.                  |j0                  d|j2                  z  z
  d       t+        j&                  |j.                  |j0                  d|j2                  z  z   d       t+        j4                  dd       t        ||       t         r|j7                          y y c c}w c c}w )Nr   )PdfPagesztest_survfunc.pdfrI   r   rK   rL   )title)皙?r   g{Gz?g?)r   r   r   zcenter right)rV   rJ   rM   rN   	lightgrey)colorrP   darkgreyr   redd   iX  )r	   matplotlib.backends.backend_pdfr   r   r#   r$   r4   r5   r   r   rU   groupbyappendget_axesset_positionget_legend_handles_labelslegendrI   rV   plotrW   pltfill_betweenr)   r%   r'   xlimclose)close_figuresr   r   sr1sr2r   r   svgs0axhalbkiir\   r   r   s                     r   test_plot_kmr      s    <*+
S
!C
S
!C

C#s

C#s
c

#C#s 
W	B	B 1Q49ad8nAaDA
		" 
C		BOO)*))+FBJJy)!1)()!1)!  # #s 
e	B	swwr3w'X)>	?B
'')C		BOO)*))+FB!!E!2HCR]]CK@!!H!5HCHHR]]Cz2HHR]]Cz2HHR]]BLL1R__+<<EJHHR]]BLL1R__+<<EJHHS##s		 - *)s   &L*8L/
c                  |   t         j                  d   } t         j                  d   }t         j                  d   }t        | ||      }t        |j                  t         j                  d          t        |j
                  t         j                  d          t        |j                  t         j                  d          y )N)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   r   r   r   r   r   r   r   r   r   r   freq_weights)r   r   r   r   r   )r   g      ?gvWUU?g&>?r   )guh5y?gXa?gQ[?gi< ?g?r>   rZ   r   r   r)   r%   r'   )tmrC   wtr\   s       r   test_weights1r     s     
4	5B	4	5B	4	5B	r2B	/BBMM255#78BLLEEDEGBOOEE % &'r   c                     t         j                  d   } t         j                  d   }t         j                  d   }t         j                  d   }t         j                  d   }t        | ||      }t        ||      }t        |j                  |j                         t        |j
                  |j
                         t        |j                  t         j                  d          y )N)
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   )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   r   r   )gb?gL?g3?g0^?g!?gyx?gm+?goG!?r   )r   rC   r   tm0st0sf0sf1s          r   test_weights2r     s     
,	-B	+	,B	+	,B
%%=
>C
%%;
<C
BR
0C
S
!CCNNCNN3CMM3==1C$$EE = >?r   c                     t         j                  d   } t         j                  d   }t        | |      }t        j                  g d      t        j                  g d      t        j                  g d      g}t	        |d   |j
                  d          t	        |d   |j
                  d          t	        |d   |j
                  d          t        j                  g d	      t        j                  g d
      t        j                  g d      g}t	        |d   |j                  d          t	        |d   |j                  d          t	        |d   |j                  d          t        j                  t        |             }t        | ||      }t	        |j
                  d   |j
                  d          t	        |j
                  d   |j
                  d          t	        |j
                  d   |j
                  d          y )N)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   r   r   r   r   r   r   r   )g#q?쿭??r   r   r   r   r   )r   r   ruS?r   r   r   r   )r   r   r   gl?S?r   r   r   r   r   )g!?\?r   r   r   r   r   )r   r   m7)?r   r   r   r   )r   r   r   gā?L^?r   r   r   )	r>   rZ   r   arrayr   cinccinc_ser@   rA   )ftimefstatcir   r   weightsciws          r   test_incidencer   2  s    EEFGEEEFGE	5%	(BHH : ;HH : ;HH : ;	<D DGRWWQZ(DGRWWQZ(DGRWWQZ(xx = >xx 1 2xx 1 2	3G GAJ

1.GAJ

1.GAJ

1. ggc%j!G
E5w
?CBGGAJ,BGGAJ,BGGAJ,r   c                     t         j                  d   } t         j                  d   }t         j                  d   }t        | ||      }t        |j                  t         j                  d          t        |j
                  t         j                  d          t        |j                  t         j                  d   d	       t        |j                  t         j                  d
   d	       y )N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   r   r   r   r   r   r   r   entry)r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   gz6?g(?gy?g镲q?gD?g37?r=   r!   )gea?g(y?gH.?g9#J?gAǘ?g/$?g=yX?r>   rZ   r   r   r+   r)   r%   r'   timesstatusr   r\   s       r   test_survfunc_entry_1r   `  s     EE67EUU56FEE45E	ufE	2BBIIruu%89:BMM255)=#>?BLL"%%>#@ BOORUU>&@r   c                     t         j                  d   } t         j                  d   }t         j                  d   }t        | ||      }t        | |      }t        |j                  |j                         t        |j
                  |j
                         t        |j                  |j                         t        |j                  |j                         y )Nr   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r\   r   s        r   test_survfunc_entry_2r   w  s     EE67EUU56FEE45E	ufE	2B
v
&CBIIszz*BMM3>>2BLL#--0BOOS%5%56r   c                     t         j                  d   } t         j                  d   }t         j                  d   }t        | ||      }t        |j                  t         j                  d          t        |j
                  t         j                  d          t        |j                  t         j                  d   d	       t        |j                  t         j                  d
   d	       y )N)	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   r   )r   r   )g(m?g_#I?r   r   )gHK?g1q	?r   r   s       r   test_survfunc_entry_3r     s     EE+,EUU,-FEE+,E	ufE	2BBIIruuT{+BMM255;/BLL"%%(:";$GBOORUU+<%=DIr   c                     t         j                  d   } t         j                  d   }t         j                  d   }t         j                  d   }t        | |||      \  }}t        | ||      \  }}t        ||       t        ||       y )N)
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   r   )
r   r   r   r   r   r   r   r   r   r   r   r>   rZ   r   r   )rB   rC   grr   z1p1z2p2s           r   test_survdiff_entry_1r     sx    	+	,B	+	,B	+	,BEE./Eb"b.FBb"b!FBBBr   c                  @   t         j                  d   } t         j                  d   }t         j                  d   }t         j                  d   }t        | ||      \  }}t        |d       t        |d       t        | |||      \  }}t        |d       t        |d	       y )
N)
r   r   r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   g:@gZj΃?r   g      @g$#P?r   rB   rC   r   r   rE   rF   s         r   test_survdiff_entry_2r     s     
+	,B	+	,B	+	,BEE./E BBDAqAx Az" BBe,DAqAsA{#r   c                  @   t         j                  d   } t         j                  d   }t         j                  d   }t         j                  d   }t        | ||      \  }}t        |d       t        |d       t        | |||      \  }}t        |d       t        |d	       y )
N)
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   r   r   g-4@g[TR?r   g&x @gb: $0?r   r   s         r   test_survdiff_entry_3r     s     
+	,B	+	,B	+	,BEE./E BBDAqAy!A{# BBe,DAqAz"Az"r   c                     t         j                  j                  d       d} t        j                  t         j                  j	                  |              }t         j                  j                  dd|       }t        j                  |      }||   }||   }t        ||      }d|dk\  z  }t        ||      }d|j                  z
  }|j                  d   |j                  d   z   t        j                  |         }t        ||       y )Niw	     sizer   r   r   )r>   randomseedrM   uniformrandintargsortr   r   r%   r   flatnonzeror   )	ntimer   r   r   statusar\   ra   ys	            r   test_incidence2r     s     IINN4AFF299$$!$,--DYYq!!,F	D	B8DBZF	4	(B1oG	tW	%B	BLLA	bggaj	 ".."9:AAqr   c                     d} t         j                  j                  d       t         j                  j                  | df      }t         j                  j	                  |       }t         j                  j                  dd|       }t        |||      }t         j                  d   }t         j                  d	   }t        |j                  dd
 |       t        |j                  dd
 |       y )Nr   j  r   r   r   r   )exog)gsX?g؝Ic?g>t(?gC?gN`ז	?)g,`#ש?gNti?g|#?g\?gV[Ch?r   )r>   r   r   normalr   r   r   rZ   r   r   r%   )r   ra   r   r   resulttimexsprobs          r   test_kernel_survfunc1r    s    AIINN4
		q!f%A99!$DYYq!!,F4a0FEEKLEEELMEFKK!$e,F$$Qq)51r   c                     d} t         j                  j                  d       t         j                  j                  | df      }t         j                  j	                  dd|       }t         j                  j                  dd|       }t        ||      }t        |||d	      }t        |j                  |j                         t        |j                  |j                  d
d
       y )Nr   r   r   r   r   r   r   '  r   	bw_factorgư>)r"   r!   )
r>   r   r   r  r   r   r   r   r)   r%   )r   ra   r   r   resultkmr  s         r   test_kernel_survfunc2r    s    
 	AIINN4
		q!f%A99Q+DYYq!!,FT6*H4a5AFH''):):;H&&(8(8t$Or   c                  p   d} t         j                  j                  d       t         j                  j                  | df      }t         j                  j	                  dd|       }t         j                  j	                  dd|       }t        |||d	       t        |||t         j                  d
   	       y )Nr   r   r   r   r   r   r   r  r  )r  r  )r>   r   r   r  r   r   rZ   r   ra   r   r   s       r   test_kernel_survfunc3r    s     	AIINN4
		q!f%A99Q+DYYq!!,F$Q%8$Q"%%2EFr   c                     d} t         j                  j                  d       t         j                  j                  | df      }t         j                  j	                  dd|       }t         j                  j                  dd|       }t        ||      }dD ]a  }t        |||d|	      }t        |j                  |j                         d
D ]*  }t        |j                  |   |j                  |   d       , c y )Nr   r   r   r   r   r   )FTr  )r   r	  dimred)r   r   r   )r"   )
r>   r   r   r  r   r   r   r   r   r   )r   ra   r   r   result1r  result2r   s           r   test_kernel_cumincidence1r    s     	AIINN4
		q!f%A99Q+DYYq!!,Ff-G I#D&qE+13 	w}}5 	IAGLLOW\\!_4H	IIr   c                  0   d} t         j                  j                  d       t         j                  j                  | df      }t         j                  j	                  dd|       }t         j                  j	                  dd|       }t        |||d       y )	Nr   r   r   r   r   r   r  r  )r>   r   r   r  r   r   r  s       r   test_kernel_cumincidence2r  ,  sx     	AIINN4
		q!f%A99Q+DYYq!!,FdFe<r   )Ern   numpyr>   statsmodels.duration.survfuncr   r   r   r   numpy.testingr   pandasrt   pytestr	   matplotlib.pyplotpyplotr   ImportErrorr   rZ   r#   r$   r*   r&   nanr(   r,   r.   r4   r5   r8   r6   r7   r9   r:   ro   rp   rq   rr   r}   rs   r~   ru   rU   r1   r;   rG   rc   r   r   mark
matplotlibr   r   r   r   r   r   r   r   r   r   r   r  r  smoker  r  r   r   r   <module>r#     s:   	   *   
	#

 	ee"#ee"#	z	UU=>
iIrvv=>
%%

EE#$	ee%&ee%&	z	UU=>
iIrvv=>
%%

EE.!	
''//"''//(3
4WW\\'9i0bkk"o,,	6=.5<7:t 5 5p'(?2+-\.7 J&	$,#,&2"P$ 	G 	GI. = ={  		s   H HH