U
    Ãmœd%+  ã                   @   s”   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  mZ ddlmZ ddlmZ G dd„ dƒZG d	d
„ d
ƒZG d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                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	Test_Trimc                 C   sr   t  d¡}tt|dƒt  d¡ƒ tt|dƒt  d¡ƒ tt|ddd�t  dd¡ƒ tt|d	dd�t  d
d¡ƒ d S )Né   gš™™™™™¹?é
   çš™™™™™É?é	   Úleft)Útailé   çtÑE]tÑ?é   )ÚnpÚaranger   r	   )ÚselfÚa© r   úd/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/stats/tests/test_robust_compare.pyÚt_est_trim1   s
    
zTest_Trim.t_est_trim1c                 C   sÚ   t  d¡}t  d¡ dd¡}t  d¡jdddd�}tt|dƒt  dd	¡ƒ tt|d
ƒt  ddddddd	g¡ƒ tt|d
ƒt  dd¡ dd¡ƒ tt|dƒt  dd	ddgddddgg¡ƒ tttt  d¡ dd¡jdƒ d S )Nr   é   é   é   ÚF©Úorderr   r   é   r   r   é   é   é   çUUUUUUÕ?é   r   é   é   gUUUUUUå?)	r   r   Úreshaper   r   Úarrayr   Ú
ValueErrorÚT)r   r   Úa2Úa3r   r   r   Útest_trimboth#   s    
$
ÿ
ÿ ÿzTest_Trim.test_trimbothc           
      C   sÆ  t  ddddddg¡}t  d¡ dd¡|d d …f }t  d¡jddd	d
�|d d …f }tt|dƒt  ddddg¡ƒ tt|dƒt  ddddg¡ƒ t  ddddg¡}t  d¡ dd¡|d d …f }tt|dƒt  ddddddg¡ƒ t  ddddddddddddddd d!d"d#dd$dd%d&dg¡}tt|dƒd'ƒ ttddddddgdƒdƒ t j d(¡ t jjd#d)d*�}d+D ]0}t|d|d,�}tt  	||¡dƒ}	t||	ƒ �qjt|dd d,�}t| 
¡ dƒ}	t||	ƒ d S )-Nr   r"   r   é   r   r   r   r   r   r   r%   g      @g      !@g      -@g     €4@g      $@g      &@g      (@g      *@g      "@g      ,@r#   r   é   r(   é   é   é   r   é   r   é   r'   é   r$   r&   é   r!   g      '@iÒ  )r"   r   r   r#   )Úsize)r   r0   r   r   éÿÿÿÿ©Úaxis)r   r*   r   r)   r   r   ÚrandomÚseedÚrandintZrollaxisZravel)
r   Úidxr-   r.   Zidx4Za4r   r<   Zres1Zres2r   r   r   Útest_trim_mean1   sJ    "
ÿ
ÿ
ÿ          ÿzTest_Trim.test_trim_meanN)Ú__name__Ú
__module__Ú__qualname__r   r/   rA   r   r   r   r   r
      s   r
   c                   @   sV   e Zd Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zd	d
„ Ze	j
 dddg¡dd„ ƒZdS )ÚTestTrimmedR1c                 C   sN   t  ddddddddd	d
dddddddddg¡}|  ¡  t|| jd ƒ| _d S )NéM   éW   éX   ér   é—   éÒ   éÛ   éö   éý   i  i(  i+  i2  ix  i¬  i  iš  i  i3
  r6   )r   r*   Úget_resultsr   ÚkÚtm©ÚclsÚxr   r   r   Úsetup_classS   s          ÿzTestTrimmedR1.setup_classc                 C   sl   d| _ t dddddg¡| _tƒ }d|_d|_d	|_t d
dg¡|_d|_	d|_
d|_d|_d|_|| _d S )Nr0   gHKKKKku@g¥ïkdW@g'¯¡¼†Âw@g£9ÃD<W@gëÄwð¨ÿ@gURÂP±@r2   gü³&î_?g·øåÞé^b@g#Í‘Ó�Ó€@r   z	two.sidedz-One sample Yuen test, trim=0.0526315789473684rT   )rP   r   r*   Ú	res_basicr   Ú	statisticÚ	parameterÚp_valueÚconf_intÚestimateZ
null_valueÚalternativeÚmethodZ	data_nameÚytt1)rS   r^   r   r   r   rO   [   s&       þzTestTrimmedR1.get_resultsc                 C   sp   | j }t|jdƒ t|jdƒ t|j| jd ƒ t|jjd |jƒ |j|j	|j
|j|jg}t|| jdd� d S )Nr6   r5   r   gVçž¯Ò<©Zrtol)rQ   r   ÚnobsÚnobs_reducedÚfractionrP   Zdata_trimmedÚshapeÚmean_trimmedÚstd_mean_trimmedÚmean_winsorizedÚstd_mean_winsorizedÚvar_winsorizedr   rV   )r   rQ   Úresr   r   r   Ú
test_basicp   s     ÿzTestTrimmedR1.test_basicc                 C   sª   | j }| j}| ¡ }t|d |jdd� t|d |jdd� t|d |jƒ t|j|j	dd� d\}}}|jdd�}t|d |dd� t|d |dd� t|d |ƒ d S )	Nr   ç‚vIhÂ%<=r_   r0   r   )gÕ\Ks\@gÏBxRúK?r2   Ú
winsorized©Z	transform)
r^   rQ   Ú
ttest_meanr   rW   rY   r   rX   rd   r[   )r   r^   rQ   ZtttZttw_statisticZ
ttw_pvalueZtt_w_dfZttwr   r   r   Útest_inference{   s    
zTestTrimmedR1.test_inferencec                 C   s"   | j }| d¡}t|j|jƒ d S )Ng        )rQ   Zreset_fractionr   ra   r`   )r   rQ   Ztm2r   r   r   Ú
test_other�   s    
zTestTrimmedR1.test_otherr<   r   r0   c                 C   sš  | j }|j}t |d| f¡}|dkr<t|| jd dd�}nt|j| jd dd�}|jd|j g}t|j|dd� |j	d|j	 g}t|j	|dd� |j
d|j
 g}t|j
|dd� |jd|j g}t|j|dd� |jd|j g}t|j|dd� | ¡ \}}}	| ¡ \}
}}t||
|
gdd� t|||gdd� t|	|dd� |jd	d
�\}}}	|jd	d
�\}
}}t||
|
gdd� t|||gdd� t|	|dd� d S )Nr   r   r6   r;   r0   rk   r_   r   rl   rm   )rQ   Údatar   Zcolumn_stackr   rP   r,   rd   r   rh   re   rf   rg   rn   )r   r<   rQ   rT   Zx2Ztm2dÚt1Ús2Zpv2Údf2ÚsÚpvÚdfr   r   r   Útest_vectorized”   s4    zTestTrimmedR1.test_vectorizedN)rB   rC   rD   ÚclassmethodrU   rO   rj   ro   rp   ÚpytestÚmarkZparametrizerx   r   r   r   r   rE   Q   s   

rE   c                   @   s,   e Zd Zedd„ ƒZedd„ ƒZdd„ ZdS )ÚTestTrimmedRAnovac                 C   s„   t  ddddddddd	d
dddg¡t  ddddddddddddddddg¡t  dddddd d!d"d#d$dd%d&d'g¡g}|| _|  ¡  d S )(Ng     @|@g     P‹@g     P�@g     ð{@g     @v@g     �‡@g     p�@g     ð�@g     À„@g     P…@g     �@g     0{@g      n@g     �@g     0ˆ@g     }@g     °|@g     È„@g     0}@g     Ðv@g     h‚@g     °€@g     €|@g     X„@g     p„@g     È€@g     ˆˆ@g      |@g     °‹@g     À€@g     è„@g     ÈŠ@g     ¨‰@g      ˆ@g     à†@g     ˆ…@g     ¨‚@g     ð‰@g     Ø‰@)r   r*   rT   rO   rR   r   r   r   rU   ¼   s2       ÿ      ÿ    ÿüzTestTrimmedRAnova.setup_classc                 C   sš   dddg| _ tdddddd	�| _td
t ddg¡ddddd�| _tdt ddg¡dddd�| _tdt ddg¡ddd�| _tdt ddg¡dd d�| _d S )!Ng±;±+�@g     l�@gnÛ¶mÛ’†@g²-S>q¡!@r   gj®¼[ïã3@gô‹?1»]?göøŒùXµä?)ÚtestÚdf1rt   rY   ÚeffsizegôœŠp»Ä?gŠ%˜þ]ÀgªÐC=ýX@g`¨ºž0óë?gâÑMÙGÉ.@g@ìS{ ÀgÏÁÝxa­?)r}   rZ   rY   rw   Údiffr   gùk#IŸo@g µq¬´k?@gO=Ló˜@g?gš™™™™™©?zBrown-Forsythe Test)rW   rX   rY   Úalphar]   gÝ: @gâÿÍ¶E8@gûMòßQa?z8One-way analysis of means (not assuming equal variances))rW   rX   rY   r]   gìhŽ hå@é(   g!ˆû2�\?zOne-way analysis of means)	Úres_mr   Ú
res_onewayr   r*   Úres_2sÚres_bfmÚres_waÚres_fa)rS   r   r   r   rO   È   s@    üÿúüýýzTestTrimmedRAnova.get_resultsc           	      C   s”  | j }| j}| j}| j}| j}dd„ | jD ƒ}t|| jdd� tj	| jddd�}t|j
|jdd� t|j|j|jgdd� tj	| jd d… ddd�}t|j
|jdd� t|jd	|jgdd� tj	| jd
d�}t|d |jdd� t|j|jdd� t|j|jdd� tj	| jdd�}t|j|jdd� t|j
|jdd� t|j|jdd� tj	| jdd�}t|j|jdd� t|j
|jdd� t|j|jdd� d S )Nc                 S   s   g | ]}|  ¡ ‘qS r   )Zmean)Ú.0Zx_ir   r   r   Ú
<listcomp>þ   s     z1TestTrimmedRAnova.test_oneway.<locals>.<listcomp>rk   r_   Zunequalg;±;±³?)Úuse_varZ	trim_fracr   r0   Úbf)r‹   r   Úequal)r„   r…   r†   r‡   rˆ   rT   r   rƒ   ÚsmoZanova_onewayZpvaluerY   rw   r~   rt   rW   Zpvalue2rX   )	r   Úr1Zr2sr†   r‡   rˆ   ÚmZresgri   r   r   r   Útest_onewayö   s6    ÿzTestTrimmedRAnova.test_onewayN)rB   rC   rD   ry   rU   rO   r‘   r   r   r   r   r|   º   s
   

-r|   )Ú__doc__Únumpyr   Znumpy.testingr   r   r   rz   Z statsmodels.stats.robust_comparer   r   r   Zstatsmodels.stats.onewayÚstatsZonewayrŽ   Zstatsmodels.tools.testingr   Zscipy.statsr	   r
   rE   r|   r   r   r   r   Ú<module>   s   8i