
    !gY2                     V   d Z ddlmZ ddlmZ ddlZddlZddlZ	ddl
Z
ddlmZmZmZmZmZ ddlmZ ddlmZmZmZ dZd	Zd
ZdZ ej6                  g d      Z ej6                  g d      Z ee      Z ee      Z ee      Z ee      Z e	j<                   ee      ddd      Zde_          e	j<                   ee      ddd      Z!de!_         e!d   jE                  d       e!d<    e	j<                   ee      ddd      Z#ddge#_          e	j<                   ee      ddd      Z$g de$_         dD ]  Z%e$e%   jE                  d       e$e%<    e$jL                  g d   Z'd)dZ( G d d      Z) G d d e)      Z* G d! d"e*      Z+ G d# d$e)      Z, G d% d&e)      Z- G d' d(e)      Z.y)*z>

Created on Wed Mar 28 15:34:18 2012

Author: Josef Perktold
    )asbytes)BytesION)assert_assert_allcloseassert_almost_equalassert_equalassert_raises)qsturng)tukeyhsdpairwise_tukeyhsdMultiComparisona/    43.9  1   1
  39.0  1   2
  46.7  1   3
  43.8  1   4
  44.2  1   5
  47.7  1   6
  43.6  1   7
  38.9  1   8
  43.6  1   9
  40.0  1  10
  89.8  2   1
  87.1  2   2
  92.7  2   3
  90.6  2   4
  87.7  2   5
  92.4  2   6
  86.1  2   7
  88.1  2   8
  90.8  2   9
  89.1  2  10
  68.4  3   1
  69.3  3   2
  68.5  3   3
  66.4  3   4
  70.0  3   5
  68.1  3   6
  70.6  3   7
  65.2  3   8
  63.8  3   9
  69.2  3  10
  36.2  4   1
  45.2  4   2
  40.7  4   3
  40.5  4   4
  39.3  4   5
  40.3  4   6
  43.2  4   7
  38.7  4   8
  40.9  4   9
  39.7  4  10ae  1     mental               2
2     mental               2
3     mental               3
4     mental               4
5     mental               4
6     mental               5
7     mental               3
8     mental               4
9     mental               4
10    mental               4
11  physical               4
12  physical               4
13  physical               3
14  physical               5
15  physical               4
16  physical               1
17  physical               1
18  physical               2
19  physical               3
20  physical               3
21   medical               1
22   medical               2
23   medical               2
24   medical               2
25   medical               3
26   medical               2
27   medical               3
28   medical               1
29   medical               3
30   medical               1zh1 24.5
1 23.5
1 26.4
1 27.1
1 29.9
2 28.4
2 34.2
2 29.5
2 32.2
2 30.1
3 26.1
3 28.3
3 24.3
3 26.2
3 27.8z2 - 3	4.340	0.691	7.989	***
2 - 1	4.600	0.951	8.249	***
3 - 2	-4.340	-7.989	-0.691	***
3 - 1	0.260	-3.389	3.909	-
1 - 2	-4.600	-8.249	-0.951	***
1 - 3	-0.260	-3.909	3.389	-
)c   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   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   )cUSAr   r   r   r   r   r   r   r   r   Francer   r   r   r   r   r   r   r   r   Japanr   r   r   r   Germanyr   r   Swedenr   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   r   r   r   r   r   r   r   r   r   z\s+python)sepheaderengine)RustBrandReplication)idx	TreatmentStressReductionr   c                 $    | j                  d      S Nzutf-8encodevs    b/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_pairwise.py<lambda>r'      s    AHHW4E     r   Reliefz\t)pairmeanloweruppersig)r*   r.   c                 $    | j                  d      S r!   r"   r$   s    r&   r'   r'      s    (9 r(   )         c                    t        j                  | j                  j                         t	        | j
                              }| j                  j                  }| j                  j                  }t        |||d |t        d|z
  t	        |      |dz
  j                                     }| j                  j                         |dz
  z  j                         |dz
  j                         z  }t        ||d       |S )N)ddofr0   )dfalphaq_critg      ?   decimal)npvar
groupstatsgroupdemeanlengroupsunique	groupmean	groupnobsr   r
   sumgroupvarwithinr   )mcir6   var_meansnobsresivar2s          r&   get_thsdrK      s    66#..,,.S9I9I5JKDNN$$E>>##DE4$e"1U7CJaGID NN))+tby9>>@;?"9//:KLD dB/Kr(   c                       e Zd Zed        Zd Zd Zd Zej                  j                  ej                  j                  d               Zy)CheckTuckeyHSDMixinc                     t        | j                  | j                        | _        | j                  j	                  | j
                        | _        y )Nr6   )r   endoggroupsmcr   r6   resclss    r&   setup_class_z CheckTuckeyHSDMixin.setup_class_   s2     CJJ7&&//		/2r(   c                    t        | j                  j                  | j                  d       t        | j                  j                  | j
                  d       t        | j                  j                  | j                         y )Nr8   r9   r2   )	r   rS   	meandiffs	meandiff2confintconfint2r   rejectreject2selfs    r&   test_multicomptukeyz'CheckTuckeyHSDMixin.test_multicomptukey   sL    DHH..KDHH,,dmmQGTXX__dll3r(   c                 |    t        | j                  | j                        }t        |d   | j                  d       y )NrO   r   r2   r9   )rK   rR   r6   r   r[   )r_   res_ts     r&   test_group_tukeyz$CheckTuckeyHSDMixin.test_group_tukey   s*    

3E!HdmmQ?r(   c                     t        | j                  | j                  | j                        }t	        |j
                  | j                  j
                  d       y )NrO   r8   r9   )r   rP   rQ   r6   r   rZ   rS   )r_   rS   s     r&   test_shortcut_functionz*CheckTuckeyHSDMixin.test_shortcut_function   s6    

DKKtzzJCKK)9)92Fr(   c                     | j                   j                          | j                   j                  d   }| j                   j                  |       y )Nr0   )comparison_name)rS   _simultaneous_cir@   plot_simultaneous)r_   close_figures	references      r&   test_plot_simultaneous_ciz-CheckTuckeyHSDMixin.test_plot_simultaneous_ci   s=     	!!#HH))!,	""9"=r(   N)__name__
__module____qualname__classmethodrV   r`   rc   re   pytestmarksmoke
matplotlibrl    r(   r&   rM   rM      sU    3 34
@G
 [[[[>  >r(   rM   c                   (    e Zd Zed        Zd Zd Zy)TestTuckeyHSD2c                    t         d   | _        t         d   | _        d| _        | j	                          t        j                  g d      j                  ddd      }|d d d	f   | _        |d d d
df   | _	        |d d df   }|dk  | _
        y )Nr   r   皙?)g      ?r0   g      gwIQ?gm]ƿg@,gTUh m@gTUh m@gD1uW?gg֬?gES?gz?r1   r   Forderr   r0   dta2rP   rQ   r6   rV   r;   arrayreshaperY   r[   r]   rU   
tukeyhsd2spvalss      r&   setup_classzTestTuckeyHSD2.setup_class   s     *+	+&
	 XX J   !(!3 7 	 #1a4(!!QqS&)1a4 dlr(   c                     | j                   j                  }g d}t        dd      D ]<  }||   d   j                  }||   d   j                  }t	        ||f||dz
     k(         > y )N)   medical   mental)r      physical)r   r   r0   r   r   )rS   _results_tablerangedatar   )r_   texpected_orderifirst_groupsecond_groups         r&   $test_table_names_default_group_orderz3TestTuckeyHSD2.test_table_names_default_group_order   sn    HH##4 q! 	JAA$q',,KQ47<<L[,/>!a%3HHI	Jr(   c                 :   t        | j                  | j                  g d      }|j                  | j                        }|j
                  }g d}t        dd      D ]<  }||   d   j                  }||   d   j                  }t        ||f||dz
     k(         > y )N)r   r   r   group_orderrO   ))r   r   )r   r   r   r0   r   r   )	r   rP   rQ   r   r6   r   r   r   r   )r_   rR   rS   r   r   r   r   r   s           r&   #test_table_names_custom_group_orderz2TestTuckeyHSD2.test_table_names_custom_group_order   s     TZZ)MOkk

k+3 q! 	JAA$q',,KQ47<<L[,/>!a%3HHI	Jr(   N)rm   rn   ro   rp   r   r   r   ru   r(   r&   rw   rw      s     # #"
JJr(   rw   c                   .     e Zd Ze fd       Zd Z xZS )TestTuckeyHSD2Pandasc                     t         |           t        j                  | j                        | _        t        j                  | j
                  t              | _        y )N)dtype)superr   pdSeriesrP   rQ   object)rU   	__class__s    r&   r   z TestTuckeyHSD2Pandas.setup_class   s8    IIcii(	YYszz8
r(   c           	         t        j                  t              5  t        t	        j
                  dgdz        ddgdz         d d d        t        j                  t              5  t        t	        j
                  dgdz        ddgdz         d d d        t        j                  t              5  t        t	        j
                  dgdz        dgdz         d d d        t        j                  d      5 }t        j                  d       t        t        t        t	        j
                  dgdz        ddgd	z  dg
       d d d        t	        j                  d      }t	        j                  g dd	      }t        j                  d      5 }t        j                  d       t        t	        j
                  |      |ddg
      }t        t        |      d       t        |d   j                  t               sJ 	 d d d        j#                  d      }t        t	        j
                  |d d       |d d       }|j#                  d      }g d}|D ]*  }	|	dz   }
t%        t'        ||	      t'        ||	      d|
       , g d}|D ]*  }	|	dz   }
t%        t'        ||	      t'        ||	      d|
       , y # 1 sw Y   oxY w# 1 sw Y   2xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr0   
   r2   r   r   T)recordalways   r      )r0   r2   r1   r   {Gz?rO   )rZ   r   df_totalrQ   r@   rX   r7   r\   r]   	std_pairsvariancefailedg+=)rtolerr_msg)r   dataligroupintlabrQ   r@   ngroupsrH   pairindices)rq   raises
ValueErrorr   r;   r   warningscatch_warningssimplefilterr	   arangerepeatr   r?   
issubclasscategoryUserWarningr   r   getattr)r_   wr   rQ   mod1res1mod2res2
attributesattr   s              r&   test_incorrect_outputz*TestTuckeyHSD2Pandas.test_incorrect_output  s   ]]:& 	<BHHaS2X.A
;	< ]]:& 	<BHHaS2X.A
;	< ]]:& 	:BHHaS2X.b9	: $$D1 	6Q!!(+*orxxb7IQ!!6	6 yy}9a($$D1 	:Q!!(+"288D>61vNDQ#admm[999		: }}4}(rxxSb	2F3BK@}}4}(!
  	-CHnGGD#.c0B$+-	-
8
 	-CHnGGD#.c0B$+-	-O	< 	<	< 	<	: 	:	6 	6	: 	:s=   )J0$)J=.(K
4AK
A-K$0J:=K
KK!$K-)rm   rn   ro   rp   r   r   __classcell__)r   s   @r&   r   r      s    9 9,-r(   r   c                       e Zd Zed        Zy)TestTuckeyHSD2sc                 *   t         d   dd | _        t         d   dd | _        d| _        | j	                          t        j                  g d      j                  ddd	      }|d d d
f   | _        |d d ddf   | _	        |d d df   }|dk  | _
        y )Nr   r1      r   r   )g88?gqq?gr>E?g-zg8Krgɏk@g˻@ghZ?ghM>g?g;Ug$B?g+4?r   rz   r{   r   r0   r}   r   s      r&   r   zTestTuckeyHSD2s.setup_class2  s     *+Ab1	+&q,
	 XX> '!AS')	 	
 #1a4(!!QqS&)1a4 dlr(   Nrm   rn   ro   rp   r   ru   r(   r&   r   r   1  s    # #r(   r   c                       e Zd Zed        Zy)TestTuckeyHSD3c                 2   t         d   | _        t         d   | _        d| _        | j	                          t
        d   | _        t
        ddg   j                  t              j                  j                  d      | _        t
        d   t        d	      k(  | _        y )
Nr)   r   ry   r+   r,   r-   )r1   r2   r.   z***)dta3rP   rQ   r6   rV   sas_rY   astypefloatvaluesr   r[   r   r]   rT   s    r&   r   zTestTuckeyHSD3.setup_classH  s{     N	']
	 VWW-.55e<CCKKFS5kWU^3r(   Nr   ru   r(   r&   r   r   F  s    
4 
4r(   r   c                   "    e Zd Zed        Zd Zy)TestTuckeyHSD4c                    t         | _        t        | _        d| _        | j                          | j                  j                          t        j                  g d      | _
        t        j                  g d      | _        t        j                  g d      j                  dd      | _        t        j                  g d      | _        y )Nry   )gf]?gX?g茠:,?gR0@gaZ?)
g qq?g ?g        &~FQ@g llg qq̿ga @g gm5x@@r   )gЏg<	@g\gá@g>5Og>5O@gMzT~,?g@g+Hg{?g<gȻ;@g}.?gc@gSL
gv*i@gf|Ip?g4|&

@g0)gī aL@r   r2   )
FFFTFFTFTF)	cylindersrP   
cyl_labelsrQ   r6   rV   rS   rh   r;   r   
halfwidth2rY   r   r[   r]   rT   s    r&   r   zTestTuckeyHSD4.setup_classX  s     	
	  "  #M N "Z [ xx !< = >EWR]	 	
 hhefr(   c                 Z    t        | j                  j                  | j                  d       y )Nr   )r   rS   
halfwidthsr   r^   s    r&   test_hochberg_intervalsz&TestTuckeyHSD4.test_hochberg_intervalsn  s    DHH//!Dr(   N)rm   rn   ro   rp   r   r   ru   r(   r&   r   r   V  s    g g*Er(   r   )ry   )/__doc__statsmodels.compat.pythonr   ior   r   numpyr;   pandasr   rq   numpy.testingr   r   r   r   r	   statsmodels.stats.libqsturngr
   statsmodels.stats.multicompr   r   r   ssss2ss3ss5r   r   r   read_csvdtacolumnsr~   mapr   dta5colilocr   rK   rM   rw   r   r   r   r   ru   r(   r&   <module>r      s   .       1: :(V @
" BHH M N	 RXX W X
 R[clclclbkk'"+6$xH,r{{73<VDJ4%))*EF[ r{{73<VDJ"r{{73<U4I8 ;CS	9:DI;yy> >:.J( .Jb6-> 6-r#) #*4( 4 E( Er(   