U
    ÃmœdU  ã                `   @   s°  d dl mZ d dlZd dlZd dlmZ d dlm	Z	m
Z
mZ dddddd	dddd
dd
ddd
d
d	ddd
ddd
dddd
ddd
d	d	ddddddd
ddddddddddddd	dddd	dddddddddddddd
dd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`Zdddddddd	dddddddd	dddddddd	dddddddd	dddddddd	dddddddd	dddddddd	dddddddd	dddddddd	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`Zdd„ eD ƒZddddddddddddddddddddddddd d d d d d d d d d d d d d d d d d d d d d d d dddddddddddddddddddddddd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`Zddddddddd d d d d d d d d!d!d!d!d!d!d!d!ddddddddd d d d d d d d d!d!d!d!d!d!d!d!ddddddddd d d d d d d d d!d!d!d!d!d!d!d!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`Zddddddddddddddddddddddddddddddddddddddddddddddddd d d d d d d d d d d d d d d d d d d d d d d d 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`Zejeeeeegd"d#d$d%d&gd'�jZed&  d(¡ed&< d)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Zd=d>„ ZdS )?é    )Úassert_frame_equalN)ÚAnovaRM)Úassert_array_almost_equalÚassert_raisesÚassert_equalé   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   c                 C   s   g | ]}d | ‘qS )z%d© )Ú.0Úir   r   ú^/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/stats/tests/test_anova_rm.pyÚ
<listcomp>#   s     r#   ÚaÚbÚcÚidÚAÚBÚDÚDV©ÚindexÚintc                  C   sb   t tjdd…dd…f dddgd� ¡ } ddd	d
gg}t| jjdd…ddddgf j|dd� dS )zs
    Testing single factor repeated measures anova
    Results reproduces R `ezANOVA` function from library ez
    Nr   r+   r'   r)   ©Úwithinr   r   gffffff6@gÀóˆZeia?r   r   r   r
   ©Údecimal©r   ÚdataÚilocÚfitr   Úanova_tableÚvalues©Údfr$   r   r   r"   Ú*test_single_factor_repeated_measures_anovaP   s    ( ÿr;   c                  C   sx   t tjdd…dd…f ddddgd� ¡ } dd	d
dgddddgddddgg}t| jjdd…ddddgf j|dd� dS )zq
    Testing two factors repeated measures anova
    Results reproduces R `ezANOVA` function from library ez
    Né0   r+   r'   r(   r)   r/   r   r   gg¸ŸD@gfÍ¯ñ—9?r   r   g:züÞ¦7=@g{&#Í<!å>gû\mÅþ1@g�&W5èÒ&?r   r   r
   r1   r3   r9   r   r   r"   Ú(test_two_factors_repeated_measures_anova[   s    *


þ ÿr=   c               
   C   s�   t tdddddgd� ¡ } ddd	d
gddddgddddgddddgddddgddddgddddgg}t| jjdd…ddddgf j|dd� dS )zs
    Testing three factors repeated measures anova
    Results reproduces R `ezANOVA` function from library ez
    r+   r'   r(   r)   r*   r/   r   r   ç>}_·‡!@ç^#Q�ö—•?r   r   ç<ú_®Eÿ @ç×/ï©Pho?çù©à¦õ�4@ç¬tº˜'f?ç´Üã– ë?ç]-Y(ÍÜ?çšÿücÂ5@çÇ—+5Ûb?ç@Ã›5x÷@çfã&B¡ ‡?çHBA‹³@çcabq’?Nr   r   r
   r1   )r   r4   r6   r   r7   r5   r8   r9   r   r   r"   Ú*test_three_factors_repeated_measures_anovah   s    






ú ÿrL   c                   C   s,   t tttjdd…dd…f dddgd� dS )zE
    Test with a factor name of 'C', which conflicts with patsy.
    Nr   r+   r'   ÚCr/   ©r   Ú
ValueErrorr   r4   r5   r   r   r   r"   Ú*test_repeated_measures_invalid_factor_namey   s    ÿrP   c                  C   sB   t jd d…d d …f  ¡ } | d | d< ttt| ddddgd� d S )Nr<   r(   ÚEr+   r'   r/   )r4   r5   Úcopyr   rO   r   )Zdata1r   r   r"   Ú#test_repeated_measures_collinearity�   s    rS   c                   C   s.   t tttjdd…d d …f ddddgd� d S )Nr   r<   r+   r'   r(   r)   r/   rN   r   r   r   r"   Ú&test_repeated_measures_unbalanced_data‡   s    ÿrT   c                  C   s\   t tdddddgd� ¡ } tjttgdd�}t |dddddgtjd	� ¡ }t| j|jƒ d S )
Nr+   r'   r(   r)   r*   r/   r   ©Zaxis©r0   Úaggregate_func)	r   r4   r6   ÚpdÚconcatÚnpÚmeanr   r7   )Údf1Údouble_dataÚdf2r   r   r"   Ú"test_repeated_measures_aggregationŒ   s    ÿ
r_   c                  C   sz   t tdddddgd� ¡ } tjttjtd dkd d …f gdd	�}| ¡ }t |dddddgtjd
� ¡ }t	| j
|j
ƒ d S )Nr+   r'   r(   r)   r*   r/   Ú1r   rU   rV   )r   r4   r6   rX   rY   ÚlocZreset_indexrZ   r[   r   r7   )r\   Zdata2r^   r   r   r"   Ú9test_repeated_measures_aggregation_one_subject_duplicated•   s    (  þ
rb   c               	   C   sŒ   t jttgdd�} ttt| dddddgd� t| dddddgtjd	�}t| dddddgtjd	�}tt	t
|j|jƒ t| ¡ j| ¡ jƒ d S )
Nr   rU   r+   r'   r(   r)   r*   r/   rV   )rX   rY   r4   r   rO   r   rZ   r[   ZmedianÚAssertionErrorr   rW   r   r6   r7   ©r]   Úm1Úm2r   r   r"   Ú%test_repeated_measures_aggregate_func    s    ÿÿÿ ÿrg   c                  C   sV   t jttgdd�} t| dddddgtjd�}t| dddddgd	d�}t|j|jƒ d S )
Nr   rU   r+   r'   r(   r)   r*   rV   r[   )rX   rY   r4   r   rZ   r[   r   rW   rd   r   r   r"   Ú*test_repeated_measures_aggregate_func_mean¯   s    ÿÿrh   c                  C   s¸   t jdddddddgdd	dd	dd	d	gd
dd
dd
ddgdddddddgdœt  dddddddg¡d�} | ddddg } t jttgd d!�}t|d"d#dddgtjd$� ¡ j	}t
| |d%d&� d S )'Nr>   r@   rB   rD   rF   rH   rJ   r   r   r   r   r?   rA   rC   rE   rG   rI   rK   )úF ValueúNum DFúDen DFúPr > Fr(   r)   r*   zA:BzA:DzB:DzA:B:Dr,   ri   rj   rk   rl   r   rU   r+   r'   rV   F)Zcheck_dtype)rX   Ú	DataFrameÚIndexrY   r4   r   rZ   r[   r6   r7   r   )Zezr]   r:   r   r   r"   Ú5test_repeated_measures_aggregate_compare_with_ezANOVAº   s*    
 ÿ  ÿüùÿro   ) Zstatsmodels.compat.pandasr   ZpandasrX   ÚnumpyrZ   Zstatsmodels.stats.anovar   Znumpy.testingr   r   r   r+   r'   r(   r)   r*   rm   ÚTr4   Zastyper;   r=   rL   rP   rS   rT   r_   rb   rg   rh   ro   r   r   r   r"   Ú<module>   s¨                                                                               õ                                                                             õ                                                                             õ                                                                             õ                                                                             õ$	