U
    md^                     @   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   Z/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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
@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__r3   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_diffrA   rB   se_diffr?   rD   conf_intr1   r   r   r   test_special  s    zTestTostp1.test_specialN)r4   r5   r6   classmethodrI   rM   r   r   r   r   r7   z  s   
r7   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/   r:   r   r-   r;   r<   r.   rE   r
   r   rH   r   r   r   rI     s
    "zTestTostp2.setup_classNr4   r5   r6   rN   rI   r   r   r   r   rO     s   rO   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/   r:   r   r-   r;   	ttost_indr.   rQ   r   r   r   rI     s
    "zTestTosti1.setup_classNrR   r   r   r   r   rS     s   rS   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/   r:   r   r-   r;   rU   r.   rQ   r   r   r   rI     s
    "zTestTosti2.setup_classNrR   r   r   r   r   rV     s   rV   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/   r:   r   r-   r;   rU   r.   rQ   r   r   r   rI     s
    "zTestTostip1.setup_classNrR   r   r   r   r   rX     s   rX   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   rY   r'   r   )tost_clinic_indep_2_pooledr/   r:   r   r-   r;   rU   r.   rQ   r   r   r   rI     s
    "zTestTostip2.setup_classNrR   r   r   r   r   r[     s   r[   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(   )
r:   r;   r<   r   logr   tost_clinic_1_pairedr0   rU   tost_clinic_1_indep)rF   rG   respZresir   r   r   test_tost_log  s
    "rc   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   )r:   r   r@   tost_clinic_1_asymestimater;   rU   r0   tost_clinic_all_no_multir   expr_   r<   	ttest_indrepeat)rF   rG   ZresaZresallZresa3_2r   r   r   test_tost_asym  sp    "( (  (  ( ( ((  (      
 rm   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   )rn   r(   rd   r   r+   r,   z	two-sidedrY   )r:   r;   rk   appendttest_clinic_indep_1_gttest_clinic_indep_1_lttest_clinic_indep_1_l_mur   	statisticr0   ZCompareMeansr=   r>   ttest_clinic_indep_1_two_murL   "ttest_clinic_indep_1_two_mu_pooledr   Zd1Zget_compareZd2r   Zhstackr   )rF   rG   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_pairedr0   )rawr
   r   r-   Zres_sasr   r   r   test_tost_transform_paired$  s    
r   )r   N)X__doc__numpyr   Znumpy.testingr   r   r   ZpytestZstatsmodels.stats.weightstatsstatsZweightstatsr;   Zstatsmodels.tools.testingr   r   r   Z
raw_clinicr   r   r   r:   rP   samplerA   rK   alpharJ   Zdfepsilonresultr0   Zcheck_mer9   rW   rT   rZ   r\   r`   ra   r   ri   Z	comp_namerh   Zdegr_frZ	test_statlowerupperZ	margin_loZ	margin_upbasemethodZ	var_equalZFWERrg   Ztost_clinic_all_multirC   rs   Z	parameterrL   Z
null_valuern   Z	data_nameZttest_clinic_paired_1_linfrp   rq   rr   rt   ru   r<   r-   r/   rU   rH   r)   r7   rO   rS   rV   rX   r[   rc   rm   r{   markZxfailAssertionErrorr   r   r   r   r   <module>   s  
	                                                    ,,, 
				+& 