
    !g^                     Z   d Z ddlZddlmZmZmZ ddlZddlm	c m
Z ddlmZ ddZdj                         Z ej"                  ee      j'                  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%_        d.e%_        de%_        d/e%_        d0e%_         e       Z&d1e&_        d2e&_        de&_        d3e&_        d4e&_        d.e&_        de&_        d5e&_        d6e&_         e       Z'd7e'_        d8e'_        de'_        d9e'_        d:e'_        d.e'_        de'_        d;e'_        d<e'_         e       Z(d=e(_)         ej"                  g d>      e(_*         ej"                  g d?      e(_+         ej"                  g d@      e(_,         ej"                  g dA      e(_         ej"                  g dB      e(_-         ej"                  g dC      e(_.         ej"                  g dD      e(_/         ej"                  g dE      e(_0        dFe(_1        dGe(_2        dHe(_3        de(_4        eZ5d=e5_)        dIe5_*        dJe5_+        dKe5_,        dLe5_        dMe5_-        dNe5_.        dOe5_/        de5_0        dFe5_1        dGe5_2        dHe5_3        de5_4         e       Z6d=e6_)         ej"                  g d>      e6_*         ej"                  g d?      e6_+         ej"                  g dP      e6_,         ej"                  g dQ      e6_         ej"                  g dR      e6_-         ej"                  g dS      e6_.         ej"                  g dT      e6_/         ej"                  g dE      e6_0        dFe6_1        dGe6_2        dHe6_3        de6_4         e       Z7dUe7_8        de7_9        dVe7_        dWe7_:        de7_*        de7_;        dXe7_<        dYe7_2        dZe7_=         e       Z>d[e>_8        d"e>_9        d\e>_        ej~                   d]fe>_:        d^e>_*        de>_;        d_e>_<        d`e>_2        dZe>_=         e       Z@d[e@_8        d"e@_9        dae@_        dbej~                  fe@_:        d^e@_*        de@_;        dce@_<        d`e@_2        dZe@_=         e       ZAd[eA_8        d"eA_9        d\eA_        ej~                   d]feA_:        d^eA_*        deA_;        d_eA_<        d`eA_2        dZeA_=         e       ZBddeB_8        d"eB_9        deeB_        ej~                   d]feB_:        d^eB_*        dFeB_;        d_eB_<        d`eB_2        dZeB_=         e       ZCddeC_8        d"eC_9        dfeC_        dgeC_:        d^eC_*        dFeC_;        dXeC_<        d`eC_2        dZeC_=         e       ZDdheD_8        d'eD_9        dieD_        djeD_:        d^eD_*        dFeD_;        dXeD_<        dkeD_2        dZeD_=         ej                  eddldmf   edlddmf   dnddo      ZF ej                  eddldpf   edlddpf   dnddo      ZG ej                  eddldpf   edlddpf   dnddqr      ZI G ds dt      ZJ G du dveJ      ZK G dw dxeJ      ZL G dy dzeJ      ZM G d{ d|eJ      ZN G d} d~eJ      ZO G d deJ      ZPd ZQd ZRd ZSej                  j                  deVd      d        ZWy)z>

Created on Wed Oct 17 09:48:34 2012

Author: Josef Perktold
    N)assert_almost_equalassert_equalassert_)Holderc                    t        j                  |       } t        j                  |      }t        t        j                  |       t        j                  |             t        t        j                  |       t        j                  |             t        t        j
                  |       t        j
                  |             t        | t        j                  |          |t        j                  |                y )N)np
atleast_1dr   isposinfisneginfisnanr   isfinite)xydecimalmsgs       ^/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_tost.pyassert_almost_equal_infr      s    
aA
aAQQ0QQ0!bhhqk*"++a.)1R[[^+<=    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   pairedg>|]?gvи?皙?)gj6/&?g,/?   333333?znot rejectedgi4<?)gfJه?r   g	?g{6DVM`?)g;g}Q?rejectedgTni?)g\HRѿg<33333?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-1)篎	ſg>|]gmYӿg`s!iJge	޿)ZM:@g)8@g]*Ä7@gr9@gi߿e8@){2)@g;F @Mr7=6@*b@>쫹I@)7ldf?g6}9,?gL)f.?g H_?gFd.?)&×晱gkg<gnN)禾 hc?税ȿgc?gtP_ǿgt)r   r         r-   r-   )r   r   r   r   r      zstep.upFALSEr"   r#   r$   r(   r)   r+   r-   )g.w1?gЖƧҿr%   r&   r'   )gq~'?gi?gx=!F?gp͇1?g"i5?)r)   r*   gc,BIg}7gCT)r+   r,   gKR_?gY5᱿gpٯb?)      r0   r-   r-   r-   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   greatergGe
g$
h|V?g$
h|f?)g5vֿgP!?gGe
ga63e?)guomֿgE(?z Two Sample t-test      333333㿩	transform   unequalusevarc                       e Zd Zd Zy)CheckTostMixinc                 p    t        | j                  j                  | j                  j                  d       y N   r   )r   res1pvalueres2p_valueselfs    r   	test_pvalzCheckTostMixin.test_pvalu  s"    DII,,dii.?.?Lr   N)__name__
__module____qualname__rH    r   r   r=   r=   s  s    Mr   r=   c                   "    e Zd Zed        Zd Zy)
TestTostp1c                     t         | _        t        d ddf   t        dd df   }}t               | _        t        j                  ||ddd       }|d   | j                  _        t        j                  ||z
  d d      }|j                  d      | j                  _
        |j                  d	      | j                  _        |j                  | j                  _        |j                  | j                  _        t         | _        y )
Nr3   r4   r5   r   r6   r   )weightsddofg?r   )tost_clinic_paired_1rD   clinicr   rB   smwsttost_pairedrC   DescrStatsWtconfint_meantconfint_diff
confint_05mean	mean_diffstd_meanstd_mean_diffttest_clinic_paired_1res2b)clsx1x2resres_dss        r   setup_classzTestTostp1.setup_class{  s    'QQB8BcTBa&!!"r'4a@!'!5!5c!:$2248#[[!')	r   c                    t        | j                  j                  | j                  j                  d       t        | j                  j
                  | j                  j
                  d       t        | j                  j                  | j                  j                  d       t        | j                  j                  | j                  j                  d       y r?   )r   rB   rX   rD   ci_diffr[   r]   se_diffrY   r_   conf_intrF   s    r   test_specialzTestTostp1.test_special  s    DII33TYY5F5F$&	(DII//1D1D$&	(DII33TYY5F5F$&	( 	DII00$**2E2E$&	(r   N)rI   rJ   rK   classmethodre   rj   rL   r   r   rN   rN   y  s    * * 
(r   rN   c                       e Zd Zed        Zy)
TestTostp2c                     t         | _        t        d ddf   t        dd df   }}t               | _        t        j                  ||ddd       }|d   | j                  _        y )Nr3   r8   r5   r   r6   r   )tost_clinic_pairedrD   rS   r   rB   rT   rU   rC   r`   r   r   rc   s       r   re   zTestTostp2.setup_class  sX    %crc1f~vbc1f~181dC4@a&r   NrI   rJ   rK   rk   re   rL   r   r   rm   rm     s    ! !r   rm   c                       e Zd Zed        Zy)
TestTosti1c                     t         | _        t        d ddf   t        dd df   }}t               | _        t        j                  ||ddd      }|d   | j                  _        y )Nr3   r4   r5   r   r9   r:   r   )tost_clinic_indep_1rD   rS   r   rB   rT   	ttost_indrC   rp   s       r   re   zTestTosti1.setup_class  sV    &crc1f~vbc1f~18nnQ4Y?a&r   Nrq   rL   r   r   rs   rs         ! !r   rs   c                       e Zd Zed        Zy)
TestTosti2c                     t         | _        t        d ddf   t        dd df   }}t               | _        t        j                  ||ddd      }|d   | j                  _        y )Nr3   r8   r5   r   r9   r:   r   )tost_clinic_indeprD   rS   r   rB   rT   rv   rC   rp   s       r   re   zTestTosti2.setup_class  sV    $crc1f~vbc1f~18nnQ4Y?a&r   Nrq   rL   r   r   ry   ry     rw   r   ry   c                       e Zd Zed        Zy)TestTostip1c                     t         | _        t        d ddf   t        dd df   }}t               | _        t        j                  ||ddd      }|d   | j                  _        y )Nr3   r4   r5   r   pooledr:   r   )tost_clinic_indep_1_pooledrD   rS   r   rB   rT   rv   rC   rp   s       r   re   zTestTostip1.setup_class  V    -crc1f~vbc1f~18nnQ4X>a&r   Nrq   rL   r   r   r}   r}     rw   r   r}   c                       e Zd Zed        Zy)TestTostip2c                     t         | _        t        d ddf   t        dd df   }}t               | _        t        j                  ||ddd      }|d   | j                  _        y )Nr3   r8   r5   r   r   r:   r   )tost_clinic_indep_2_pooledrD   rS   r   rB   rT   rv   rC   rp   s       r   re   zTestTostip2.setup_class  r   r   Nrq   rL   r   r   r   r     rw   r   r   c                  R   t         d ddf   t         dd df   }} t        j                  | |ddt        j                        }t        |d   t        j                  d       t        j                  | |ddt        j                  d	      }t        |d   t        j                  d       y )
Nr3   r4   皙?      ?r6   r   r@   r9   )r7   r;   )
rS   rT   rU   r   logr   tost_clinic_1_pairedrE   rv   tost_clinic_1_indep)ra   rb   respresis       r   test_tost_logr     s    CRCF^VBCF^BRS$"&&ADQ!5!=!=rB>>"b#trvviPDQ!4!<!<bAr   c            	      r   t         d ddf   t         dd df   }} t        |j                         | j                         z
  t        j                  d       t        j                  || ddd      }t        |d   t        j                  d       t        j                  t         dd dd	f   t         d ddd	f   g d
dd      }t        |d   t        j                  d       t        j                  t         dd dd	f   t         d ddd	f   t        j                  g d
      ddt        j                        }t        j                  t         dd dd	f   t         d ddd	f   g d
ddt        j                        }t        j                  t         dd dd	f   t         d ddd	f   g d
dt        j                        }t        j                  t         dd dd	f   t         d ddd	f   g d
dt        j                        }t        j                  t         dd dd	f   t         d ddd	f   g d
      }t        j                  t         dd dd	f   t         d dddf   g d
dd      }t        j                  t         dd ddf   t         d dddf   g d
dd      }t        |d   d   |d   d   d       t        j                  t         dd df   t         d ddf   g ddd      }t        j                  t         dd df   t         d ddf   g dt        j                  dd      d      }y )Nr3   r4   r@   r-   r   r9   r:   r   r   )      r   r-   r-   r-   )r;   r7   r6   )valuer8      r.   rA   )r   r0   gffffffr-   r-      )rS   r   rZ   tost_clinic_1_asymestimaterT   rv   rE   tost_clinic_all_no_multir   expr   rU   	ttest_indrepeat)ra   rb   resaresallresa3_2s        r   test_tost_asymr     s   CRCF^VBCF^B	BGGI-/A/J/JBO>>"b$I>DQ!3!;!;R@ ^^F23!8,fSbS!A#X.>93"+-F q	#;#C#CRH ^^F23!8,fSbS!A#X.>66"@A3"+rvv?F ^^F23!8,fSbS!A#X.>93"+rvv?F vbc1Q3h/QqS1A<c(*0F vbc1Q3h/QqS1A<c(*0F ^^F23!8,fSbS!A#X.>$BDF ^^F23!8,fSbS!A#X.>93yRFnnVBC1H-vcrc1Q3h/?93yRGq	!gajmR@^^F236NF3B36N93yRF^^F236NF3B36N999S+I?Fr   c                     t         d ddf   t         dd df   }} g }t        j                  | |dd      }|j                  |t        f       t        j                  | |dd      }|j                  |t
        f       t        j                  | |ddd      }|j                  |t        f       |D ];  \  }}t        |d	   |j                  d
       t        |d   |j                  d
       = t        j                  t        j                  |       t        j                  |            }|j                  dd      }	t        |	t        j                  d
       |j                  dd      }	t        |	t        j                  d
       |j                  dd      }	t!        |	t
        j                  d
       |j                  dd      }	t!        |	t        j                  d
       t        j                  t        j                  |       t        j                  |            }|j"                  j%                  |j&                        }
|j"                  j%                  |      }|j"                  j%                  t)        j*                  ||f            }t-        |j"                  |
j"                  u        t-        |j"                  |j"                  u        t-        |j"                  |j"                  u        y )Nr3   r4   largerr9   )alternativer;   smallerr.   )r   r;   r   r   r@   rA   z	two-sidedr   )rS   rT   r   appendttest_clinic_indep_1_gttest_clinic_indep_1_lttest_clinic_indep_1_l_mur   	statisticrE   CompareMeansrV   rX   ttest_clinic_indep_1_two_muri   "ttest_clinic_indep_1_two_mu_pooledr   d1get_compared2r   hstackr   )ra   rb   	all_testst1t2t3rB   rD   cmcicm1cm2cm3s                r   
test_ttestr     s\   CRCF^VBCF^BI	BHY	GBb012	BIi	HBb012	BIi
!Bb345 ?
dDGT^^R@DGT\\2>?
 
		4++B/1A1A"1E	FB			k)		DB7@@"M			k(		CB>GGQST			i			BBB 6 ? ?L			hy		ABB 6 ? ?L 
		4++B/1A1A"1E	FB
%%

BEE
"C
%%

B
C
%%

BIIr"g.
/CBEESVVOBEESVVOBEESVVOr   z/shape mismatch between res1[1:] and res_sas[1:]T)reasonraisesstrictc                  n   t        j                  dj                         t              } | j	                  dd      j
                  \  }}t        j                  ||ddt         j                        }d}t        |d   |d   d	       t        |d
d  |d
d  d       t        |d   t        j                  d       y )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   r4   r   r   r6   )a+ei?)g
ףp=
@r   )gg-C6
?r   r8   r.   r@   )r   arraysplitfloatreshapeTrT   rU   r   r   tost_s_pairedrE   )rawr   r   rB   res_sass        r   test_tost_transform_pairedr   #  s     (( = >CUWeMC
 ;;r!DAqQ3?D8GQQ/QR'!"+q1Q!6!6;r   )   N)X__doc__numpyr   numpy.testingr   r   r   pyteststatsmodels.stats.weightstatsstatsweightstatsrT   statsmodels.tools.testingr   r   r   
raw_clinicr   r   r   rS   ro   sampler[   rh   alpharg   dfepsilonresultrE   check_merR   r{   ru   r   r   r   r   r   r   	comp_namer   degr_fr	test_statlowerupper	margin_lo	margin_upbasemethod	var_equalFWERr   tost_clinic_all_multir^   r   	parameterri   
null_valuer   	data_namettest_clinic_paired_1_linfr   r   r   r   r   rU   rB   rD   rv   rc   r=   rN   rm   rs   ry   r}   r   r   r   r   markxfailAssertionErrorr   rL   r   r   <module>r      s
    D D  , , ->$< %*EG= > 
*e	$	,	,R	2 X $  1  /    D       *  /  6   x !3  1  !  H    "  (  3   H  
 H (  /  .    B  (    )  .  5   h *   2  0     F  )  !  '  1  9  
 $X '9  $%7  "#'   %M  " "  %(  "$.  !%8  "&@  # $X '8  $%7  "#'   %L  " "  %(  "$2  !%5  "&>  # x !3  2  !  I    1  (  4   I   h  3  /     G  *  0  '  1  F   - +  A  * ! , B 
 "8 %*  "$,BHH .. %/  ! $,288 -+ $,    &.RXX /' &(  " $,288 -4 $5    "* +, "-   "* +/ "0   &.RXX / &   "%-RXX / &  " !  "+  %0  " $    $  1  .  0  0  -  -  #  "    %  *      "'  !) +. "/   !) *+ !,   #+"(( ,' #(   !) *3 !4   'bhh (- .   'bhh (. /   #+"(( ,# #$  "*"(( , #    (  "-  !    "3  "$   1  !J  !3  #$   $/  !.  "L   !( $5  !$4  !"3  %'VVG->#?   #=   %&  "&,  #!:  $N  !   #4   #3   !3  #6"?  "<  $%  !%.  " 9  #M      #4   #3   !2  $&FF7,=">  "<  $%  !%+  " 9  #M    #H &8  #&6  #$8  !')vvg/@%A  "%?  "'(  $(.  %#<   &P  #
 %h (:  %(8  %&9  #'M  $'A  $)*  &*5  '%>  "(R  % &,X "/A " ,/1 " ,-A " *.U " +.H " +01 " -1< " .,@ " )/Y " ,
 tQQsdStQQsdSdnnVCRCF^VBCF^T3yQM M( (@! !! !! !!. !!. !B)?V#L K(  7<7<r   