
    M/Ph+                         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dS )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dS )	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                     d S )N   g?
   皙?	   left)tail   tE]t?   )nparanger   r
   )selfas     k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/stats/tests/test_robust_compare.pyt_est_trim1zTest_Trim.t_est_trim1   s    IbMMU1c]]BIbMM222U1c]]BIaLL111U1c///1b1A1ABBBU1gF333RYq"5E5EFFFFF    c                    t          j        d          }t          j        d                              dd          }t          j        d                              ddd          }t          t	          |d          t          j        dd	                     t          t	          |d
          t          j        g d                     t          t	          |d
          t          j        dd                              dd                     t          t	          |d          t          j        g dg dg                     t          t          t          t          j        d                              dd          j        d           d S )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!   sU   IbMMYr]]""1a((Yr]]""1as"33Xa))29Q??;;;Xa%%rx0E0E0E'F'FGGGXb#&&Yq"%%--a33	5 	5 	5Xb&))X~~~~~~>??	A 	A 	Aj(imm++Aq113V	= 	= 	= 	= 	=r   c                    t          j        g d          }t          j        d                              dd          |d d f         }t          j        d                              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                              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                            d           t           j                            dd          }dD ]G}t          |d|          }t          t          j	        ||          d          }	t	          ||	           Ht          |dd           }t          |
                                d          }	t	          ||	           d S )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/   sc   h)))**Yr]]""1a((aaa0Yr]]""1as"33CF;Yr6**X44455	7 	7 	7Yr6**X22233	5 	5 	5x%%Yr]]""1a((qqq1Yr6**X;;;<<	> 	> 	> H : : : ; ;Yq&))4000Y1116::C@@@ 		tIb|44$ 	% 	%DQT222DR[D116::Dt$$$$F...F++T4     r   N)__name__
__module____qualname__r   r3   rQ    r   r   r   r      sD        G G G= = =! ! ! ! !r   r   c                       e Zd Zed             Zed             Zd Zd Zd Ze	j
                            dddg          d	             Zd
S )TestTrimmedR1c                     t          j        g d          }|                                  t          || j        dz            | _        d S )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   sO    H ; ; ; < < 	Q
++r   c                    d| _         t          j        g d          | _        t	                      }d|_        d|_        d|_        t          j        ddg          |_        d|_	        d	|_
        d
|_        d|_        d|_        || _        d S )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 "0 "0 1 1
 xx)*"24D!EFF(&Er   c                 Z   | 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           d S )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    WRWb!!!R_b)))R[$&2+...R_*1-r??? 3R5G%r'8:T^%888888r   c                    | j         }| j        }|                                }t          |d         |j        d           t          |d         |j        d           t          |d         |j                   t          |j        |j	        d           d\  }}}|                    d          }t          |d         |d           t          |d         |d           t          |d         |           d S )	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    yWmmooAU;;;;A59999SVT^,,,UCCCC
.I*z7mmlm33AE::::A
7777SVW%%%%%r   c                 r    | j         }|                    d          }t          |j        |j                   d S )Ng        )rd   reset_fractionr   rz   ry   )r   rd   tm2s      r   
test_otherzTestTrimmedR1.test_other   s7    W##S%sx00000r   rF   r   r5   c                    | 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           |                                \  }}}	|                                \  }
}}t          ||
|
gd           t          |||gd           t          |	|d           |                    d	
          \  }}}	|                    d	
          \  }
}}t          ||
|
gd           t          |||gd           t          |	|d           d S )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   s5   WG_aQZ((199r46B;Q777DDrtTVb[q999Doq2?23)2E::::R%6!67+Re<<<<!1r':#:;-r>>>> !b&8"89,bu====$a"*@&@A0"5AAAA((CMMOO	2rQF////b"XE2222Re,,,,>>CMMLM99	2rQF////b"XE2222Re,,,,,,r   N)rR   rS   rT   classmethodrh   rb   r   r   r   pytestmarkparametrizer   rU   r   r   rW   rW   O   s        , , [,   [(	9 	9 	9& & &(1 1 1
 [VaV,,"- "- -,"- "- "-r   rW   c                   @    e Zd Zed             Zed             Zd ZdS )TestTrimmedRAnovac                     t          j        g d          t          j        g d          t          j        g d          g}|| _        |                                  d S )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   s    X / / / 0 0X A A A B BX 5 5 5 6 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          | _        d S )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AA	  %5$%$4(;(9	" " " !2%'X/@/?/A &B &B$5/!2$6  
 '7')x4D0E'F'F%8#'$9	   &6&(h?/C&D&D$7%E  
 &6&(h2w&7&7$7#>  


r   c                    | j         }| j        }| j        }| j        }| j        }d | j        D             }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           d S )Nc                 6    g | ]}|                                 S rU   )mean).0x_is     r   
<listcomp>z1TestTrimmedRAnova.test_oneway.<locals>.<listcomp>   s     ***CSXXZZ***r   r   rw   unequalg;;?)use_var	trim_fracr   r5   bf)r   r   equal)r   r   r   r   r   rg   r   r   smoanova_onewaypvaluern   r   r   r   rl   pvalue2rm   )	r   r1r2sr   r   r   mresgr   s	            r   test_onewayzTestTrimmedRAnova.test_oneway   sC   _k, +*46***4:E2222 	VLLLRZe<<<<"&"&!1>>>> rr
I*02 2 2 	S[u====!SV59999 tvt444A 1>>>>W_5AAAA!2???? tvy999v'7eDDDD
FN???? 0u==== tvw777v'7eDDDD
FN???? 0u======r   N)rR   rS   rT   r   rh   rb   r   rU   r   r   r   r      sX        	 	 [	 + + [+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      sM        F F F F F F F F F F & & & & & & & & & & & & & & & & & & & , , , , , ,      5! 5! 5! 5! 5! 5! 5! 5!pf- f- f- f- f- f- f- f-Rd> d> d> d> d> d> d> d> d> d>r   