U
    Kvf^                     @   s~  d Z ddlZddlmZmZmZ ddlZddlm	  m
Z ddlmZ dddZd Zeeed	d
Ze Zde_de_de_de_de_de_de_de_de_de_e Z de _de _de _de _de _de _de _de _de _e Z!de!_de!_de!_de!_de!_de!_de!_de!_d e!_d!e!_e Z"de"_de"_d"e"_de"_d#e"_d$e"_de"_de"_d%e"_d&e"_e Z#de#_d'e#_de#_d(e#_d)e#_de#_de#_d*e#_d&e#_e Z$de$_de$_de$_d+e$_d)e$_de$_de$_d,e$_d!e$_e Z%d-e%_d.e%_de%_d/e%_de%_d0e%_de%_d1e%_d2e%_e Z&d3e&_d4e&_de&_d5e&_d6e&_d0e&_de&_d7e&_d8e&_e Z'd9e'_d:e'_de'_d;e'_d<e'_d0e'_de'_d=e'_d>e'_e Z(d?e(_)ed@dAdBdCdDge(_*edEdFdGdHdIge(_+edJdKdLdMdNge(_,edOdPdQdRdSge(_edTdUdVdWdXge(_-edYdZd[d\d]ge(_.ed	d	d^d^d^ge(_/edddddge(_0d_e(_1d`e(_2dae(_3de(_4eZ5d?e5_)d@e5_*dEe5_+dJe5_,dOe5_dTe5_-dYe5_.d^e5_/de5_0d_e5_1d`e5_2dae5_3de5_4e Z6d?e6_)ed@dAdBdCdDge6_*edEdFdGdHdIge6_+edbdcdLdMdNge6_,edddedfdgdhge6_edTdUdidjdkge6_-edYdZdldmdnge6_.edodod^d^d^ge6_/edddddge6_0d_e6_1d`e6_2dae6_3de6_4e Z7dpe7_8de7_9dqe7_dre7_:de7_*de7_;dse7_<dte7_2due7_=e Z>dve>_8d$e>_9dwe>_ej? dxfe>_:dye>_*de>_;dze>_<d{e>_2due>_=e Z@dve@_8d$e@_9d|e@_d}ej?fe@_:dye@_*de@_;d~e@_<d{e@_2due@_=e ZAdveA_8d$eA_9dweA_ej? dxfeA_:dyeA_*deA_;dzeA_<d{eA_2dueA_=e ZBdeB_8d$eB_9deB_ej? dxfeB_:dyeB_*d_eB_;dzeB_<d{eB_2dueB_=e ZCdeC_8d$eC_9deC_deC_:dyeC_*d_eC_;dseC_<d{eC_2dueC_=e ZDdeD_8d)eD_9deD_deD_:dyeD_*d_eD_;dseD_<deD_2dueD_=ejEedddf edddf ddddZFejEedddf edddf ddddZGejHedddf edddf ddddZIG dd dZJG dd deJZKG dd deJZLG dd deJZMG dd deJZNG dd deJZOG dd deJZPdd ZQdd ZRdd ZSejTjUdeVdddd ZWdS )z>

Created on Wed Oct 17 09:48:34 2012

Author: Josef Perktold
    N)assert_almost_equalassert_equalassert_)Holder   c                 C   sx   t | } t |}tt | t | tt | t | tt | t | t| t |  |t |  d S )N)npZ
atleast_1dr   ZisposinfZisneginfisnanr   isfinite)xydecimalmsg r   E/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/stats/tests/test_tost.pyassert_almost_equal_inf   s    

r   a  1     1 2.84 4.00 3.45 2.55 2.46
2     1 2.51 3.26 3.10 2.82 2.48
3     1 2.41 4.14 3.37 2.99 3.04
4     1 2.95 3.42 2.82 3.37 3.35
5     1 3.14 3.25 3.31 2.87 3.41
6     1 3.79 4.34 3.88 3.40 3.16
7     1 4.14 4.97 4.25 3.43 3.06
8     1 3.85 4.31 3.92 3.58 3.91
9     1 3.02 3.11 2.20 2.24 2.28
10    1 3.45 3.41 3.80 3.86 3.91
11    1 5.37 5.02 4.59 3.99 4.27
12    1 3.81 4.21 4.08 3.18 1.86
13    1 4.19 4.59 4.79 4.17 2.60
14    1 3.16 5.30 4.69 4.83 4.51
15    1 3.84 4.32 4.25 3.87 2.93
16    2 2.60 3.76 2.86 2.41 2.71
17    2 2.82 3.66 3.20 2.49 2.49
18    2 2.18 3.65 3.87 3.00 2.65
19    2 3.46 3.60 2.97 1.80 1.74
20    2 4.01 3.48 4.42 3.06 2.76
21    2 3.04 2.87 2.87 2.71 2.87
22    2 3.47 3.24 3.47 3.26 3.14
23    2 4.06 3.92 3.18 3.06 1.74
24    2 2.91 3.99 3.06 2.02 3.18
25    2 3.59 4.21 4.02 3.26 2.85
26    2 4.51 4.21 3.78 2.63 1.92
27    2 3.16 3.31 3.28 3.25 3.52
28    2 3.86 3.61 3.28 3.19 3.09
29    2 3.31 2.97 3.76 3.18 2.60
30    2 3.02 2.73 3.87 3.50 2.93   Zpairedg>|]?gvи?皙?)gj6/&?g,/?   333333?znot rejectedgi4<?)gfJه?r   g	?g{6DVM`?)g;g}Q?ZrejectedgTni?)g\HRѿg<33333?Zindependentg>|]?g.D?)g?g晱?g)8@g)@?)g]Jه?r   gh3?)禾 hcѿ&×?gZM:@g4@٨?)g\HRѿr   gh3?)gVXѿg$t;?   g)B?)g)A5?g)3Z?g,Rݠ?g[Y!?gM$e?)g5]F^gfB?#?gM%?)ggə?g[Y!?gZKqѲ?)gZJgZKR?gt;@gJ~q?)g:g*?gkM?gnaw?)gdRg?   gTi?)gݡ8Ar   z2-1g	ſg>|]gmYӿg`s!iJge	޿gZM:@g)8@g]*Ä7@gr9@gi߿e8@g{2)@g;F @gMr7=6@g*b@g>쫹I@g7ldf?g6}9,?gL)f.?g H_?gFd.?g&×g晱gkg<gnNg hc?gȿgc?gtP_ǿgt         zstep.upFALSEg.w1?gЖƧҿgq~'?gi?gx=!F?gp͇1?g"i5?gc,BIg}7gCTgKR_?gY5᱿gpٯb?      gOth?gb?)g~:0g&m:,?z	two.sidedzPaired t-testz(clinic$var1[1:15] and clinic$var1[16:30]g:kd?gg(?r   )gCl@g
@ZlesszWelch Two Sample t-testg,褮?r   ZgreatergGe
g$
h|V?g$
h|f?)g5vֿgP!?gGe
ga63e?)guomֿgE(?z Two Sample t-test      333333㿩	transform   unequalusevarc                   @   s   e Zd Zdd ZdS )CheckTostMixinc                 C   s   t | jj| jjdd d S N   r   )r   res1pvalueres2p_valueselfr   r   r   	test_pvalv  s    zCheckTostMixin.test_pvalN)__name__
__module____qualname__r2   r   r   r   r   r(   t  s   r(   c                   @   s    e Zd Zedd Zdd ZdS )
TestTostp1c                 C   s   t | _td ddf tdd df  }}t | _tj||ddd d}|d | j_tj|| d dd}|	d| j_
|	d	| j_|j| j_|j| j_t| _d S )
Nr   r    r!   r   r"   r   )weightsZddofg?r   )tost_clinic_paired_1r.   clinicr   r,   smwsttost_pairedr-   DescrStatsWZtconfint_meantconfint_diff
confint_05mean	mean_diffZstd_meanstd_mean_diffttest_clinic_paired_1res2b)clsx1x2resZres_dsr   r   r   setup_class|  s    "

zTestTostp1.setup_classc                 C   s\   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	j
dd d S r)   )r   r,   r=   r.   ci_diffr@   rA   se_diffr>   rC   conf_intr0   r   r   r   test_special  s    zTestTostp1.test_specialN)r3   r4   r5   classmethodrH   rL   r   r   r   r   r6   z  s   
r6   c                   @   s   e Zd Zedd ZdS )
TestTostp2c                 C   sT   t | _td ddf tdd df  }}t | _tj||ddd d}|d | j_d S )Nr   r$   r!   r   r"   r   )tost_clinic_pairedr.   r9   r   r,   r:   r;   r-   rD   r
   r   rG   r   r   r   rH     s
    "zTestTostp2.setup_classNr3   r4   r5   rM   rH   r   r   r   r   rN     s   rN   c                   @   s   e Zd Zedd ZdS )
TestTosti1c                 C   sT   t | _td ddf tdd df  }}t | _tj||dddd}|d | j_d S )Nr   r    r!   r   r%   r&   r   )tost_clinic_indep_1r.   r9   r   r,   r:   	ttost_indr-   rP   r   r   r   rH     s
    "zTestTosti1.setup_classNrQ   r   r   r   r   rR     s   rR   c                   @   s   e Zd Zedd ZdS )
TestTosti2c                 C   sT   t | _td ddf tdd df  }}t | _tj||dddd}|d | j_d S )Nr   r$   r!   r   r%   r&   r   )tost_clinic_indepr.   r9   r   r,   r:   rT   r-   rP   r   r   r   rH     s
    "zTestTosti2.setup_classNrQ   r   r   r   r   rU     s   rU   c                   @   s   e Zd Zedd ZdS )TestTostip1c                 C   sT   t | _td ddf tdd df  }}t | _tj||dddd}|d | j_d S )Nr   r    r!   r   pooledr&   r   )tost_clinic_indep_1_pooledr.   r9   r   r,   r:   rT   r-   rP   r   r   r   rH     s
    "zTestTostip1.setup_classNrQ   r   r   r   r   rW     s   rW   c                   @   s   e Zd Zedd ZdS )TestTostip2c                 C   sT   t | _td ddf tdd df  }}t | _tj||dddd}|d | j_d S )Nr   r$   r!   r   rX   r&   r   )tost_clinic_indep_2_pooledr.   r9   r   r,   r:   rT   r-   rP   r   r   r   rH     s
    "zTestTostip2.setup_classNrQ   r   r   r   r   rZ     s   rZ   c                  C   sx   t d ddf t dd df  } }tj| |ddtjd}t|d tjd tj| |ddtjdd	}t|d t	jd d S )
Nr   r    皙?      ?r"   r   r*   r%   )r#   r'   )
r9   r:   r;   r   logr   tost_clinic_1_pairedr/   rT   tost_clinic_1_indep)rE   rF   respZresir   r   r   test_tost_log  s
    "rb   c               
   C   s  t d ddf t dd df  } }t| |   tjd tj|| dddd}t|d tjd tjt dd dd	f t d ddd	f d
d
dddgddd}t|d tjd tjt dd dd	f t d ddd	f t	
d
d
dddgddt	jd}tjt dd dd	f t d ddd	f d
d
dddgddt	j
d}tjt dd dd	f t d ddd	f d
d
dddgdt	jd}tjt dd dd	f t d ddd	f d
d
dddgdt	j
d}tjt dd dd	f t d ddd	f d
d
dddgd}tjt dd dd	f t d dddf d
d
dddgddd}tjt dd ddf t d dddf d
d
dddgddd}t|d d |d d dd tjt dd df t d ddf d
ddddgddd}tjt dd df t d ddf d
ddddgt	dddd}d S )Nr   r    r*   r   r   r%   r&   r   r   g      )r'   r#   r"   )valuer$      r   r+   r   gffffff   )r9   r   r?   tost_clinic_1_asymestimater:   rT   r/   tost_clinic_all_no_multir   expr^   r;   	ttest_indrepeat)rE   rF   ZresaZresallZresa3_2r   r   r   test_tost_asym  sp    "( (  (  ( ( ((  (      
 rl   c                  C   s  t d ddf t dd df  } }g }tj| |ddd}||tf tj| |ddd}||tf tj| |dddd}||tf |D ]0\}}t|d	 |jd
d t|d |j	d
d qt
t| t|}|jddd}	t|	tjd
d |jddd}	t|	tjd
d |jddd}	t|	tjd
d |jddd}	t|	tjd
d t
t| t|}|j|j}
|j|}|jt||f}t|j|
jk t|j|jk t|j|jk d S )Nr   r    Zlargerr%   )alternativer'   Zsmallerr   )rm   r'   rc   r   r*   r+   z	two-sidedrX   )r9   r:   rj   appendttest_clinic_indep_1_gttest_clinic_indep_1_lttest_clinic_indep_1_l_mur   	statisticr/   ZCompareMeansr<   r=   ttest_clinic_indep_1_two_murK   "ttest_clinic_indep_1_two_mu_pooledr   d1Zget_compareZd2r   Zhstackr   )rE   rF   Z	all_testst1t2t3r,   r.   cmciZcm1Zcm2Zcm3r   r   r   
test_ttest  s:    "r{   z/shape mismatch between res1[1:] and res_sas[1:]T)reasonZraisesstrictc                  C   s   t d t} | ddj\}}tj||ddt jd}d}t	|d |d d	 t	|d
d  |d
d  d t	|d t
jd d S )Nz       103.4 90.11  59.92 77.71  68.17 77.71  94.54 97.51
       69.48 58.21  72.17 101.3  74.37 79.84  84.44 96.06
       96.74 89.30  94.26 97.22  48.52 61.62  95.68 85.80r   r    r\   r]   r"   )a+ei?)g
ףp=
@r~   )gg-C6
?r   r$   r   r*   )r   arraysplitfloatreshapeTr:   r;   r^   r   tost_s_pairedr/   )rawr
   r   r,   Zres_sasr   r   r   test_tost_transform_paired$  s    
r   )r   N)X__doc__Znumpyr   Znumpy.testingr   r   r   ZpytestZstatsmodels.stats.weightstatsstatsZweightstatsr:   Zstatsmodels.tools.testingr   r   r   Z
raw_clinicr   r   r   r9   rO   sampler@   rJ   alpharI   Zdfepsilonresultr/   Zcheck_mer8   rV   rS   rY   r[   r_   r`   r   rh   Z	comp_namerg   Zdegr_frZ	test_statlowerupperZ	margin_loZ	margin_upbasemethodZ	var_equalZFWERrf   Ztost_clinic_all_multirB   rr   Z	parameterrK   Z
null_valuerm   Z	data_nameZttest_clinic_paired_1_linfro   rp   rq   rs   rt   r;   r,   r.   rT   rG   r(   r6   rN   rR   rU   rW   rZ   rb   rl   r{   markZxfailAssertionErrorr   r   r   r   r   <module>   s  
	                                                    ,,, 
				+& 