U
    Kvfa                  `   @   s  d dl mZ d dlmZmZmZ d dlZd dl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_equal)assert_array_almost_equalassert_equalassert_raisesN)AnovaRM                  	   
                                                   c                 C   s   g | ]}d | qS )z%d ).0ir   r   I/tmp/pip-unpacked-wheel-2v6byqio/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@gZeia?r   r   r   r
   decimalr   datailocfitr   anova_tablevaluesdfr$   r   r   r"   *test_single_factor_repeated_measures_anovaS   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
    N0   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(?c5@+5b?@Û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_anovak   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_name|   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jd	 }t| j|j d S )
Nr+   r'   r(   r)   r*   r/   r   Zaxisr0   aggregate_func)	r   r4   r6   pdconcatSeriesmeanr   r7   )df1double_datadf2r   r   r"   "test_repeated_measures_aggregation   s    
r_   c                  C   s|   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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jd	}t| dddddgt j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   sX   t jttgdd} t| dddddgt j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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   	DataFrameZIndexrY   r4   r   rZ   r[   r6   r7   r   )Zezr]   r:   r   r   r"   5test_repeated_measures_aggregate_compare_with_ezANOVA   s*    
   rn   )Zstatsmodels.compat.pandasr   Znumpy.testingr   r   r   ZpandasrX   Zstatsmodels.stats.anovar   r+   r'   r(   r)   r*   rm   Tr4   Zastyper;   r=   rL   rP   rS   rT   r_   rb   rg   rh   rn   r   r   r   r"   <module>   s                                                                                                                                                                                                                                                                                                                                                                                                   $	