U
    ÃmœdßI  ã                   @   sN  d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	 edƒZ
e
 d ¡ e	e
ddd	� e¡Z
G d
d„ dƒZG dd„ dƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG d d!„ d!eƒZG d"d#„ d#eƒZG d$d%„ d%eƒZG d&d'„ d'eƒZdS )(é    )ÚStringION)Úanova_lm)Úols)Úread_csvaé  Days      Duration Weight ID
    0.0      1      1      1
    2.0      1      1      2
    1.0      1      1      3
    3.0      1      1      4
    0.0      1      1      5
    2.0      1      1      6
    0.0      1      1      7
    5.0      1      1      8
    6.0      1      1      9
    8.0      1      1     10
    2.0      1      2      1
    4.0      1      2      2
    7.0      1      2      3
   12.0      1      2      4
   15.0      1      2      5
    4.0      1      2      6
    3.0      1      2      7
    1.0      1      2      8
    5.0      1      2      9
   20.0      1      2     10
   15.0      1      3      1
   10.0      1      3      2
    8.0      1      3      3
    5.0      1      3      4
   25.0      1      3      5
   16.0      1      3      6
    7.0      1      3      7
   30.0      1      3      8
    3.0      1      3      9
   27.0      1      3     10
    0.0      2      1      1
    1.0      2      1      2
    1.0      2      1      3
    0.0      2      1      4
    4.0      2      1      5
    2.0      2      1      6
    7.0      2      1      7
    4.0      2      1      8
    0.0      2      1      9
    3.0      2      1     10
    5.0      2      2      1
    3.0      2      2      2
    2.0      2      2      3
    0.0      2      2      4
    1.0      2      2      5
    1.0      2      2      6
    3.0      2      2      7
    6.0      2      2      8
    7.0      2      2      9
    9.0      2      2     10
   10.0      2      3      1
    8.0      2      3      2
   12.0      2      3      3
    3.0      2      3      4
    7.0      2      3      5
   15.0      2      3      6
    4.0      2      3      7
    9.0      2      3      8
    6.0      2      3      9
    1.0      2      3     10
z\s+Úpython)ÚsepZenginec                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestAnovaLMc                 C   s   t | _td| jd� ¡ | _d S )Nz(np.log(Days+1) ~ C(Duration) * C(Weight)©Údata©Úkidney_tabler
   r   ÚfitÚ	kidney_lm©Úcls© r   ú[/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/stats/tests/test_anova.pyÚsetup_classM   s    ÿzTestAnovaLM.setup_classc                 C   sÀ   t  ddddg¡}t  ddddg¡}t  ddd	d
g¡}t  dddt jg¡}t  dddt jg¡}t| jƒ}t j |d j|¡ t j |d j|d¡ t j |d j|d¡ t j |d j|¡ d S )Né   é   é6   gçp­ö°·@ç�î v¦ø0@ç›¯íHPWä?ç46<ý<@ç�î v¦ø @ç›¯íHPWÔ?çNÉÉÄ-á?güŠ5\än@çÀx�/@çï$}µþñâ?g‹Fˆ<“G¥?çÞr%t`‹Ð>çÔ»ÓøàÐá?ÚdfÚsum_sqé   ÚFúPR(>F)©	ÚnpÚarrayÚnanr   r   ÚtestingÚassert_equalÚvaluesÚassert_almost_equal©ÚselfÚDfr"   Zmean_sqZf_valueZpr_fÚresultsr   r   r   Útest_resultsU   s    
zTestAnovaLM.test_resultsN©Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r2   r   r   r   r   r   L   s   
r   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestAnovaLMNoconstantc                 C   s   t | _td| jd� ¡ | _d S )Nz,np.log(Days+1) ~ C(Duration) * C(Weight) - 1r	   r   r   r   r   r   r   d   s    ÿz!TestAnovaLMNoconstant.setup_classc                 C   sÀ   t  ddddg¡}t  ddddg¡}t  ddd	d
g¡}t  dddt jg¡}t  dddt jg¡}t| jƒ}t j |d j|¡ t j |d j|d¡ t j |d j|d¡ t j |d j|¡ d S )Nr   r   gˆ�Z‡Ôc@r   r   r   g£TgZ‡ÔS@r   r   r   gún©9/xb@r   r   gú©A#ac;r   r    r!   r"   r#   r$   r%   r&   r.   r   r   r   r2   l   s    
z"TestAnovaLMNoconstant.test_resultsNr3   r   r   r   r   r8   c   s   
r8   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnovaLMComparec           	      C   sô   t d| jƒ ¡ }t|| jƒ}t ddg¡}t ddg¡}t ddg¡}t tjdg¡}t tjd	g¡}t tjd
g¡}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ tj |d j
|¡ tj |d j
|¡ tj |d j
|¡ d S )Nz(np.log(Days+1) ~ C(Duration) + C(Weight)é8   r   ç”0ÓöŸ=@r   r   r   r   r   r    Údf_residÚssrr#   Údf_diffÚss_diffr$   úPr(>F)©r   r
   r   r   r   r'   r(   r)   r*   r+   r,   r-   ©	r/   Z	new_modelr1   ZRes_DfZRSSr0   Z	Sum_of_Sqr$   ÚPrFr   r   r   r2   Š   sD    ÿ ÿ ÿ ÿ ÿ ÿ ÿzTestAnovaLMCompare.test_resultsN©r4   r5   r6   r2   r   r   r   r   r9   ‰   s   r9   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnovaLMCompareNoconstantc           	      C   sô   t d| jƒ ¡ }t|| jƒ}t ddg¡}t ddg¡}t ddg¡}t tjdg¡}t tjd	g¡}t tjd
g¡}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ tj |d j
|¡ tj |d j
|¡ tj |d j
|¡ d S )Nz,np.log(Days+1) ~ C(Duration) + C(Weight) - 1r:   r   r;   r   r   r   r   r   r    r<   r=   r#   r>   r?   r$   r@   rA   rB   r   r   r   r2   «   sD    ÿ ÿ ÿ ÿ ÿ ÿ ÿz)TestAnovaLMCompareNoconstant.test_resultsNrD   r   r   r   r   rE   ª   s   rE   c                   @   s   e Zd Zdd„ ZdS )Ú
TestAnova2c                 C   sÐ   | j  dddg¡}td|ƒ ¡ }t ddddg¡}t dddd	g¡}t d
ddtjg¡}t dddtjg¡}t|dd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   ú0np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)ggc%æY‰@çìÀ9#J‹*@ç°»ŠÖ›bÈ?çàg\8š;@é3   g<iá²
«@çÙ±ˆ×…(@çžÒÁú?‡Æ?g !Põ�•?ç]dÊ‘‡?ç/.ú¯Úê?ÚII©Útypr!   r"   r#   r$   r%   ©r
   Zdropr   r   r'   r(   r)   r   r*   r+   r,   r-   ©r/   r
   Úanova_iiÚSum_Sqr0   ÚF_valuerC   r1   r   r   r   r2   Î   sB    ÿ   ÿ   ÿ   ÿ   ÿzTestAnova2.test_resultsNrD   r   r   r   r   rF   Ë   s   rF   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova2Noconstantc                 C   sÐ   | j  dddg¡}td|ƒ ¡ }t ddddg¡}t dddd	g¡}t d
ddtjg¡}t dddtjg¡}t|dd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   z4np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum) - 1gwÐ6HÒVc@rH   rI   rJ   rK   gCOoëÓÝa@rL   rM   g_§C>že—;rN   rO   rP   rQ   r!   r"   r#   r$   r%   rS   rT   r   r   r   r2   ê   sB    ÿ   ÿ   ÿ   ÿ   ÿz!TestAnova2Noconstant.test_resultsNrD   r   r   r   r   rX   ç   s   rX   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova2HC0c                 C   s¾   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t dddd
g¡}t dddtjg¡}t dddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   ç^ºIíb@çƒ‡iß<@çCÅ8ê*@rI   rJ   rK   gY…Í ä@gÈ˜»–��+@ç�£éGãÅ?gqaöp†?gÇ›²GÛ6ñ>çòu¾Daüê?rP   Úhc0©rR   Zrobustr!   r$   r#   r%   rS   ©r/   r
   rU   rV   r0   r$   rC   r1   r   r   r   r2     sB    ÿ    ÿ   ÿ   ÿ   ÿzTestAnova2HC0.test_resultsNrD   r   r   r   r   rY     s   rY   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova2HC1c                 C   s¾   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t dddd
g¡}t dddtjg¡}t dddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   gÐî�b€ô@g·zNzß¨(@ç�¹|5Q•Ã?g»"�&Ø$�?g3�/x×w?ç¬tw�yë?rP   Úhc1r`   r!   r$   r#   r%   rS   ra   r   r   r   r2   /  sB    ÿ    ÿ   ÿ   ÿ   ÿzTestAnova2HC1.test_resultsNrD   r   r   r   r   rb   ,  s   rb   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova2HC2c                 C   s¾   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t dddd
g¡}t dddtjg¡}t dddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   gÏÙBë@g§t°þÏ�(@çäÑ2÷57Ã?gü{�’{Ó�?gvÍõ›«§?çµÀ)�ë?rP   Úhc2r`   r!   r$   r#   r%   rS   ra   r   r   r   r2   J  sB    ÿ    ÿ   ÿ   ÿ   ÿzTestAnova2HC2.test_resultsNrD   r   r   r   r   rf   G  s   rf   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova2HC3c                 C   s¾   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t dddd
g¡}t dddtjg¡}t dddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   g�¦z2ÿˆ@g%Ì´ýË%@ç³S½FÜÀ?gD‘…µï•?g£}áp
?çŽ¿þ5jì?rP   Úhc3r`   r!   r$   r#   r%   rS   ra   r   r   r   r2   f  sB    ÿ    ÿ   ÿ   ÿ   ÿzTestAnova2HC3.test_resultsNrD   r   r   r   r   rj   c  s   rj   c                   @   s   e Zd Zdd„ ZdS )Ú
TestAnova3c                 C   sØ   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t ddddd
g¡}t ddddtjg¡}t ddddtjg¡}t|dd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   gP�—n|q@gu=Ñuáw@gvOjÝ(@rM   gr­ëOûq;gŒmŒ|â)™?gUxò÷?rO   ÚIIIrQ   r!   r"   r#   r$   r%   rS   )r/   r
   Ú	anova_iiirV   r0   rW   rC   r1   r   r   r   r2   �  sJ    ÿ    ÿ    ÿ    ÿ    ÿzTestAnova3.test_resultsNrD   r   r   r   r   rn   ~  s   rn   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova3HC0c                 C   sÄ   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t ddddd
g¡}t ddddtjg¡}t ddddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   gï8EGr¥r@gG’ \å@gÚÉà(y…+@r]   gº7ˆÂQ;g5›C)Œó”?gÙÑƒS�oñ>r^   ro   r_   r`   r!   r$   r#   r%   rS   ©r/   r
   rp   rV   r0   r$   rC   r1   r   r   r   r2   �  sH    ÿ    ÿ    ÿ    ÿ    ÿzTestAnova3HC0.test_resultsNrD   r   r   r   r   rq   ™  s   rq   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova3HC1c                 C   sÄ   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t ddddd
g¡}t ddddtjg¡}t ddddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   g’\þCú®p@g@¤ß¾|@gVŸ«­ØŸ(@rc   gu”A‚ˆ¸ˆ;gQ² Ö—œ?gØ å¢¼?rd   ro   re   r`   r!   r$   r#   r%   rS   rr   r   r   r   r2   ¸  sH    ÿ    ÿ    ÿ    ÿ    ÿzTestAnova3HC1.test_resultsNrD   r   r   r   r   rs   µ  s   rs   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova3HC2c                 C   sÄ   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t ddddd
g¡}t ddddtjg¡}t ddddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   gH¿}8ˆp@g·£ xL@g§"Æb(@rg   g\<-ÈŽ;giD@ð¾K�?g¯4LŸ·ª?rh   ro   ri   r`   r!   r$   r#   r%   rS   rr   r   r   r   r2   Ó  sH    ÿ    ÿ    ÿ    ÿ    ÿzTestAnova3HC2.test_resultsNrD   r   r   r   r   rt   Ð  s   rt   c                   @   s   e Zd Zdd„ ZdS )ÚTestAnova3HC3c                 C   sÄ   | j  dddg¡}td|ƒ ¡ }t ddddd	g¡}t ddddd
g¡}t ddddtjg¡}t ddddtjg¡}t|ddd�}tj 	|d j
|¡ tj |d j
|d¡ tj |d j
|¡ d S )Nr   r   r   rG   rZ   r[   r\   rI   rJ   rK   gÔ+eâLm@g¥øø„ìü@g·Íu™%@rk   g¤°-f¢}È;gÑ©ŽÉ â£?gUÍØã ?rl   ro   rm   r`   r!   r$   r#   r%   rS   rr   r   r   r   r2   î  sH    ÿ    ÿ    ÿ    ÿ    ÿzTestAnova3HC3.test_resultsNrD   r   r   r   r   ru   ë  s   ru   )Úior   Únumpyr'   Zstatsmodels.stats.anovar   Zstatsmodels.formula.apir   Zpandasr   r   ÚseekZastypeÚintr   r8   r9   rE   rF   rX   rY   rb   rf   rj   rn   rq   rs   rt   ru   r   r   r   r   Ú<module>   s,   ?
&!!)