
    !g+                         d Z ddlZddlmZmZmZ ddlZddlm	Z	m
Z
mZ ddlmc mZ ddlmZ ddlmZ  G d d      Z G d	 d
      Z G d d      Zy)z>

Created on Fri Aug 16 13:41:12 2013

Author: Josef Perktold
    N)assert_equalassert_allcloseassert_raises)TrimmedMean	trim_meantrimboth)Holder)trim1c                       e Zd Zd Zd Zd Zy)	Test_Trimc                    t        j                  d      }t        t        |d      t        j                  d             t        t        |d      t        j                  d             t        t        |dd      t        j                  dd             t        t        |d	d      t        j                  d
d             y )N   g?
   皙?	   left)tail   tE]t?   )nparanger   r
   )selfas     h/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_robust_compare.pyt_est_trim1zTest_Trim.t_est_trim1   s{    IIbMU1c]BIIbM2U1c]BIIaL1U1c/1b1ABU1gF3RYYq"5EF    c                    t        j                  d      }t        j                  d      j                  dd      }t        j                  d      j                  ddd      }t        t	        |d      t        j                  dd	             t        t	        |d
      t        j
                  g d             t        t	        |d
      t        j                  dd      j                  dd             t        t	        |d      t        j
                  g dg dg             t        t        t        t        j                  d      j                  dd      j                  d       y )Nr            Forderr   r      r   )r   r   r!      r       r%      UUUUUU?)r   r%      r(   )r   r         gUUUUUU?)	r   r   reshaper   r   arrayr   
ValueErrorT)r   r   a2a3s       r   test_trimbothzTest_Trim.test_trimboth!   s    IIbMYYr]""1a(YYr]""1as"3Xa)299Q?;Xa%rxx0E'FGXb#&YYq"%--a3	5Xb&)XX~~>?	Aj(iim++Aq133V	=r   c                 b   t        j                  g d      }t        j                  d      j                  dd      |d d f   }t        j                  d      j                  ddd      |d d f   }t	        t        |d      t        j                  g d             t	        t        |d      t        j                  g d	             t        j                  g d
      }t        j                  d      j                  dd      |d d f   }t	        t        |d      t        j                  g d             t        j                  g d      }t	        t        |d      d       t	        t        g dd      d       t         j                  j                  d       t         j                  j                  dd      }dD ]<  }t        |d|      }t        t        j                  ||      d      }	t	        ||	       > t        |dd       }t        |j                         d      }	t	        ||	       y )N)r   r&   r      r   r!   r   r    r!   r"   r#   r)   )      @g      !@g      -@g     4@)      $@      &@      (@      *@)r5   r   r   r   )g      "@r7   r8   r9   r:   g      ,@)r'   r      r,      r       r5   r&   r      r      r      r+      r(   r   r*   r!      r%   r   g      '@)r&   r!   r   r5   r   r   r6   i  r(   )r&   r    r!   r'   )size)r   r5   r   r   axis)r   r.   r   r-   r   r   randomseedrandintrollaxisravel)
r   idxr1   r2   idx4a4r   rF   res1res2s
             r   test_trim_meanzTest_Trim.test_trim_mean/   s   hh)*YYr]""1a(a0YYr]""1as"3CF;Yr6*XX45	7Yr6*XX23	5xx%YYr]""1a(q1Yr6*XX;<	> HH : ;Yq&)40Y16:C@ 			tIIb|4$ 	%DQT2DR[[D16:Dt$	%
 F.F+T4 r   N)__name__
__module____qualname__r   r3   rQ    r   r   r   r      s    G=!r   r   c                       e Zd Zed        Zed        Zd Zd Zd Ze	j                  j                  dddg      d	        Zy
)TestTrimmedR1c                     t        j                  g d      }| j                          t        || j                  dz        | _        y )N)M   W   X   r                  i  i(  i+  i2  ix  i  i  i  i  i3
  r@   )r   r.   get_resultsr   ktmclsxs     r   setup_classzTestTrimmedR1.setup_classQ   s7    HH ; < 	Q
+r   c                    d| _         t        j                  g d      | _        t	               }d|_        d|_        d|_        t        j                  ddg      |_        d|_	        d	|_
        d
|_        d|_        d|_        || _        y )Nr5   )HKKKKku@gkdW@g'w@g9D<W@gw@gURP@r<   g&_?g^b@g#͑ӐӀ@rj   r   z	two.sidedz-One sample Yuen test, trim=0.0526315789473684rg   )rc   r   r.   	res_basicr	   	statistic	parameterp_valueconf_intestimate
null_valuealternativemethod	data_nameytt1)rf   ru   s     r   rb   zTestTrimmedR1.get_resultsY   s~     "0 1
 x)*"24D!EF(&Er   c                    | j                   }t        |j                  d       t        |j                  d       t        |j                  | j
                  dz         t        |j                  j                  d   |j                         |j                  |j                  |j                  |j                  |j                  g}t        || j                  d       y )Nr@   r?   r   gV瞯<rtol)rd   r   nobsnobs_reducedfractionrc   data_trimmedshapemean_trimmedstd_mean_trimmedmean_winsorizedstd_mean_winsorizedvar_winsorizedr   rk   )r   rd   ress      r   
test_basiczTestTrimmedR1.test_basicn   s    WWRWWb!R__b)R[[$&&2+.R__**1-r? 3 3R5G5G%%r'8'8:T^^%8r   c                    | j                   }| j                  }|j                         }t        |d   |j                  d       t        |d   |j
                  d       t        |d   |j                         t        |j                  |j                  d       d\  }}}|j                  d      }t        |d   |d       t        |d   |d       t        |d   |       y )	Nr   vIh%<=rw   r5   r   )g\Ks\@gBxRK?r<   
winsorized	transform)
ru   rd   
ttest_meanr   rl   rn   r   rm   r~   rp   )r   ru   rd   tttttw_statistic
ttw_pvaluett_w_dfttws           r   test_inferencezTestTrimmedR1.test_inferencey   s    yyWWmmoAU;A59SVT^^,UC
.I*z7mmlm3AE:A
7SVW%r   c                 ~    | j                   }|j                  d      }t        |j                  |j                         y )Ng        )rd   reset_fractionr   rz   ry   )r   rd   tm2s      r   
test_otherzTestTrimmedR1.test_other   s/    WW#S%%sxx0r   rF   r   r5   c                 R   | j                   }|j                  }t        j                  |d|z  f      }|dk(  rt	        || j
                  dz  d      }n%t	        |j                  | j
                  dz  d      }|j                  d|j                  z  g}t        |j                  |d       |j                  d|j                  z  g}t        |j                  |d       |j                  d|j                  z  g}t        |j                  |d       |j                  d|j                  z  g}t        |j                  |d       |j                  d|j                  z  g}t        |j                  |d       |j                         \  }}}	|j                         \  }
}}t        ||
|
gd       t        |||gd       t        |	|d       |j                  d	
      \  }}}	|j                  d	
      \  }
}}t        ||
|
gd       t        |||gd       t        |	|d       y )Nr   r   r@   rE   r5   r   rw   r!   r   r   )rd   datar   column_stackr   rc   r0   r~   r   r   r   r   r   r   )r   rF   rd   rg   x2tm2dt1s2pv2df2spvdfs                r   test_vectorizedzTestTrimmedR1.test_vectorized   s   WWGG__aQZ(19r466B;Q7DrttTVVb[q9Dooq2??23))2E:R%6%6!67++Re<!!1r':':#:;--r>  !b&8&8"89,,bu=$$a"*@*@&@A00"5A(CMMO	2rQF/b"XE2Re,>CMMLM9	2rQF/b"XE2Re,r   N)rR   rS   rT   classmethodrh   rb   r   r   r   pytestmarkparametrizer   rU   r   r   rW   rW   O   s`    , ,  (	9&(1
 [[VaV,"- -"-r   rW   c                   2    e Zd Zed        Zed        Zd Zy)TestTrimmedRAnovac                     t        j                  g d      t        j                  g d      t        j                  g d      g}|| _        | j                          y )N)g     @|@g     P@g     P@g     {@g     @v@g     @g     p@g     @g     @g     P@     @g     0{@g     n@)     @r   g     0@g     }@g     |@     Ȅ@g     0}@g     v@g     h@g     @g     |@g     X@     p@r   r   g     Ȁ@)g     @g     |@g     @g     @g     @g     Ȋ@g     @g      @g     @g     @r   g     @g     @g     ؉@)r   r.   rg   rb   re   s     r   rh   zTestTrimmedRAnova.setup_class   sQ    XX / 0XX A BXX 5 6	7 r   c                    g d| _         t        ddddd      | _        t        dt        j                  d	d
g      dddd      | _        t        dt        j                  ddg      ddd      | _        t        dt        j                  ddg      dd      | _        t        dt        j                  ddg      dd      | _        y )N)g;+@g     l@gn۶mے@g-S>q!@r   gj[3@g?1]?gX?)testdf1r   rn   effsizegp?g%]gC=X@g`0?gMG.@g@S{ gxa?)r   ro   rn   r   diffr   gk#Io@gqk?@gO=L@g?g?zBrown-Forsythe Test)rl   rm   rn   alphars   g: @gͶE8@gMQa?z8One-way analysis of means (not assuming equal variances))rl   rm   rn   rs   ghh@(   g!2\?zOne-way analysis of means)	res_mr	   
res_onewayr   r.   res_2sres_bfmres_wares_fa)rf   s    r   rb   zTestTrimmedRAnova.get_results   s    A	  %5$%$4(;(9	" !2%'XX/@/?/A &B$5/!2$6
 '7')xx4D0E'F%8#'$9	 &6&(hh?/C&D$7%E
 &6&(hh2w&7$7#>
r   c                    | j                   }| j                  }| j                  }| j                  }| j                  }| j
                  D cg c]  }|j                          }}t        || j                  d       t        j                  | j
                  dd      }t        |j                  |j                  d       t        |j                  |j                  |j                  gd       t        j                  | j
                  d d dd      }t        |j                  |j                  d       t        |j                  d|j                  gd       t        j                  | j
                  d	      }	t        |	d
   |j                   d       t        |	j"                  |j                  d       t        |	j                  |j$                  d       t        j                  | j
                  d	      }	t        |	j                   |j                   d       t        |	j                  |j                  d       t        |	j                  |j$                  d       t        j                  | j
                  d	      }	t        |	j                   |j                   d       t        |	j                  |j                  d       t        |	j                  |j$                  d       y c c}w )Nr   rw   unequalg;;?)use_var	trim_fracr   r5   bf)r   r   equal)r   r   r   r   r   rg   meanr   r   smoanova_onewaypvaluern   r   r   r   rl   pvalue2rm   )
r   r1r2sr   r   r   x_imresgr   s
             r   test_onewayzTestTrimmedRAnova.test_oneway   s   __kk,, $(66*CSXXZ**4::E2 	VLRZZe<"&&"&&!1> r
I*02 	S[[u=!SVV59 tvvt4A 1 1>W__5A!2!2? tvvy9v'7'7eD

FNN? 0 0u= tvvw7v'7'7eD

FNN? 0 0u=A +s   K(N)rR   rS   rT   r   rh   rb   r   rU   r   r   r   r      s.    	 	 + +Z(>r   r   )__doc__numpyr   numpy.testingr   r   r   r    statsmodels.stats.robust_comparer   r   r   statsmodels.stats.onewaystatsonewayr   statsmodels.tools.testingr	   scipy.statsr
   r   rW   r   rU   r   r   <module>r      sT     F F & & & & , 5! 5!pf- f-Rd> d>r   