U
    ÃmœdÜ%  ã                   @   s$  d dl Zd dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ ej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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d&d'd(d)gd*�Zd+d,„ Zd-d.„ Zejjd/d0„ ƒZd1d2„ Zd3d4„ Zd5d6„ ZdS )7é    N)Úassert_almost_equalÚassert_raisesÚassert_allclose)ÚMANOVA)ÚMultivariateTestResults)Úadd_constantzMinas Graesg%�•C‹ @g�Âõ(\� @gHáz®Gù?gd;ßO�— @goƒÀÊ¡ù?g¸…ëQ¸ @g+‡ÙÎù?g-²�ï§Æ @gX9´Èv¾ @gV-²�ï @g      @gÏ÷Sã¥›ú?g…ëQ¸@g^ºI+@gL7‰A`åú?zMatto Grossog\�Âõ(\ @g;ßO�—n @gÏ÷Sã¥› @gNbX9´ @g}?5^ºIú?gÙÎ÷Sã @g¶óýÔxé @z
Santa CruzgbX9´È @g¦›Ä °rú?gÍÌÌÌÌÌ @g+‡Ù @g+‡ÙÎ÷ù?g¢E¶óýÔ @g+‡ÙÎ @ÚLocÚBasalÚOccÚMax)Úcolumnsc                  C   sJ  t jdtd�} |  ¡ }t|d d jd ddd� t|d d jd	 d
dd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd ddd� t|d d jd  d!dd� t|d d jd" d#d$d� t|d d jd% d&dd� t|d d jd' d(d$d� t|d d jd) d*d$d� t|d d jd+ d,d$d� t|d d jd- d.d$d� d S )/NúBasal + Occ + Max ~ Loc©Údatar   Ústat©úWilks' lambdaÚValueç½%Rý÷>ã?é   ©Údecimal©úPillai's tracer   çÇÜÎ!œÜ?©úHotelling-Lawley tracer   çú›/z— â?©úRoy's greatest rootr   ç3“^Ša½Ö?©r   úF Valueç¤p=
×£è?é   ©r   r"   ç…ëQ¸…ë?©r   r"   ç      è?©r   r"   ç…ëQ¸ñ?©r   úNum DFé   é   ©r   r,   ©r   r,   ©r   r,   ©r   úDen DFé   ©r   r3   é   ©r   r3   ç­iÞqŠ."@é   ©r   r3   é	   ©r   úPr > FçvOjMã?©r   r=   ç¡Ö4ï8Eá?©r   r=   çn£¼ä?©r   r=   ç#J{ƒ/LÚ?)r   Úfrom_formulaÚXÚmv_testr   Úloc)ÚmodÚr© rK   úc/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/multivariate/tests/test_manova.pyÚtest_manova_sas_example   s¤     ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿrM   c                  C   s¬  t tjtdg dtd�ƒ} tdddg }t|| ƒ}t d¡}d|d	< t d
¡}d |d< |d< d|fd|fg}| |¡}t	|d d j
d ddd� t	|d d j
d ddd� t	|d d j
d ddd� t	|d d j
d ddd� t	|d d j
d ddd� t	|d d j
d ddd� t	|d d j
d ddd� t	|d d j
d  d!dd� t	|d d j
d" d#d$d� t	|d d j
d% d#d$d� t	|d d j
d& d#d$d� t	|d d j
d' d$d$d� t	|d d j
d( d)d$d� t	|d d j
d* d+d$d� t	|d d j
d, d-d.d� t	|d d j
d/ d0d$d� t	|d d j
d1 d2d.d� t	|d d j
d3 d4d.d� t	|d d j
d5 d6d.d� t	|d d j
d7 d8d.d� d S )9Nr   T©Z
drop_firstZdtyper	   r
   r   )é   r.   rO   )r   r   )r$   r.   )r   rO   )rO   r$   Z	Interceptr   r   r   r   r   r   r   r   r   r   r    r!   r#   r$   r%   r&   r'   r(   r)   r*   r+   r-   r.   r/   r0   r1   r2   r4   r5   r6   r7   r8   r9   r:   r;   r<   r>   r?   r@   rA   rB   rC   rD   )r   ÚpdÚget_dummiesrF   Úfloatr   ÚnpZzerosrG   r   rH   )ÚexogÚendogrI   Z	interceptrH   Z
hypothesesrJ   rK   rK   rL   Útest_manova_no_formulaO   s¶    ÿ



 ÿ ÿ þ ÿ ÿ ÿ þ ÿ ÿ ÿ þ ÿ ÿ ÿ þ ÿ ÿ ÿ þ ÿrV   c                  C   sL   t tjtdg dtd�ƒ} tdddg }t|| ƒ}| ¡ }t|tƒsHt	‚d S )Nr   TrN   r	   r
   r   )
r   rP   rQ   rF   rR   r   rG   Ú
isinstancer   ÚAssertionError)rT   rU   rI   rJ   rK   rK   rL   Ú$test_manova_no_formula_no_hypothesisŠ   s    ÿ
rY   c                  C   sÈ   t jdtd�} dt dddgg¡d fg}|  |¡ dt ddgg¡d fg}tt| j|ƒ dt dddgg¡t dgdgdgg¡fg}|  |¡ dt dddgg¡t dgdgg¡fg}tt| j|ƒ d S )Nr   r   ÚtestrO   )r   rE   rF   rS   ÚarrayrG   r   Ú
ValueError)rI   Z
hypothesisrK   rK   rL   Ú!test_manova_test_input_validation•   s    
,
(r]   c                   C   s   t ttjdtƒ d S )NzBasal ~ Loc)r   r\   r   rE   rF   rK   rK   rK   rL   Útest_endog_1D_array¬   s    r^   c                  C   s  d} dddg|  }t j | d¡dddg  ¡ }t j | d¡d	d
dg  ¡ }t j | d¡dddg  ¡ }t t||||d�¡}tjd|d�}| 	¡ }|dddg  
¡ }|dddg | |dddg< tjd|d�}|j	dd�}	|jd d  t¡}
|	jd d  t¡}t|
|dd� d S )Né   r	   r
   r   r.   r   g      à?rO   g      Ð?r(   g333333Ó?g333333ã?)r   r	   r
   r   z#Basal + Occ + Max ~ C(Loc, Helmert)r   T)Zskip_intercept_testzC(Loc, Helmert)r   g»½×Ùß|Û=)Zrtol)rS   ÚrandomZrandnZravelrP   Ú	DataFrameÚdictr   rE   rG   ZmeanÚresultsZto_numpyrR   r   )ÚngrH   Úy1Úy2Zy3ZdtarI   Zres1ZmeansZres2Zstat1Zstat2rK   rK   rL   Útest_manova_demeaned°   s    rg   )ÚnumpyrS   ZpandasrP   ZpytestZnumpy.testingr   r   r   Zstatsmodels.multivariate.manovar   Z)statsmodels.multivariate.multivariate_olsr   Zstatsmodels.toolsr   ra   rF   rM   rV   ÚmarkZsmokerY   r]   r^   rg   rK   rK   rK   rL   Ú<module>   s:   











ô
ó0;

