B
    …Ž0d  ã               @   s¼   d dl Zd dlmZmZmZmZmZ d dlZd dlm	Z
 d dlmZ d dlmZmZmZmZ dd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej ddddg¡dd„ ƒZdS )é    N)Úassert_equalÚassert_array_equalÚassert_array_almost_equalÚassert_approx_equalÚassert_allclose)Úraises)Úxlogy)ÚmarginsÚexpected_freqÚchi2_contingencyÚassociationc              C   sj  t  dg¡} t| ƒ}tt|ƒdƒ |d }t|t  dg¡ƒ t  dgg¡} t| ƒ\}}t  dgg¡}t  dgg¡}t||ƒ t||ƒ t  d¡ dd¡} t| ƒ\}}t  dgdgg¡}t  ddd	dd
dgg¡}t||ƒ t||ƒ t  d¡ ddd¡} t| ƒ\}}}t  dggdggg¡}t  dgdgdggg¡}t  ddddggg¡}t||ƒ t||ƒ t||ƒ d S )Né   r   é   é   é   é   é3   é   é
   é   é   é   é   é   éB   éÒ   é<   é\   é|   éH   éN   )ÚnpÚarrayr	   r   Úlenr   ZarangeZreshape)ÚaÚmZm0Úm1Z	expected0Z	expected1Úm2Z	expected2© r(   úT/var/www/html/venv/lib/python3.7/site-packages/scipy/stats/tests/test_contingency.pyÚtest_margins   s2    





r*   c              C   s®   t tdgƒt dg¡ƒ t ddgddggddgddggddgddggg¡} t| ƒ}t |t | ¡ƒ t dddgdddgg¡} t| ƒ}t dddgd	d	d
gg¡}t||ƒ d S )Nr   g      ð?r   r   r   é   g      (@g      0@g      2@g      8@)r   r
   r!   r"   Z	ones_liker   )ÚobservedÚeZcorrectr(   r(   r)   Útest_expected_freq+   s    4r.   c              C   s¢   t  ddgddgg¡} t| dd\}}}}t|dƒ t|dƒ t|dƒ t| |ƒ t  dddg¡} t| dd\}}}}t|dƒ t|dƒ t|dƒ t| |ƒ d S )	Nr   r   F)Ú
correctiong        g      ð?r   r   )r!   r"   r   r   r   )ÚobsÚchi2ÚpÚdofÚexpectedr(   r(   r)   Útest_chi2_contingency_trivial8   s    






r5   c           	   C   s  t  dddgdddgdddgddd	ggd
ddgdddgdddgdddggg¡} t| ƒ\}}}}t|ddd t|dd
d t|dƒ t  ddgddggddgddgggddgddggd	dgddgggg¡} t| ƒ\}}}}t|dd
d t|dd
d t|dƒ d S )Nr   é"   é   é#   é   é   é    é	   r   r   é/   r   é   é   é   é!   é   g{®GáŠY@é   )Zsignificantg"„j,5È#=é   r   r   é   é   gj¼t“„!@g“©‚QIä?)r!   r"   r   r   r   )r0   r1   r2   r3   r4   r(   r(   r)   Útest_chi2_contingency_RL   s4    

&
rG   c              C   sâ   t  ddgddgg¡} t| ddd\}}}}t|dt| | | ƒ ¡  ƒ t| ddd\}}}}| t  d	d
gd
d	gg¡ }t|dt||| ƒ ¡  ƒ t  dddgdddgg¡} t| dd\}}}}t|dt| | | ƒ ¡  ƒ d S )Nr   r   éZ   zlog-likelihoodF)Úlambda_r/   r   Tg      à¿g      à?r   r   )rI   )r!   r"   r   r   r   Úsum)ÚcÚgr2   r3   r-   Zc_corrr(   r(   r)   Útest_chi2_contingency_g«   s    rM   c              C   s^   t  ddgddgg¡} ttt| ƒ t  ddgddgg¡} ttt| ƒ t  d¡} ttt| ƒ d S )Néÿÿÿÿr   r   r   r   )r   r   )r!   r"   Úassert_raisesÚ
ValueErrorr   Úempty)r0   r(   r(   r)   Útest_chi2_contingency_bad_args»   s    
rR   c              C   s4   t  ddgddgg¡} t| ƒd }t|ddd d S )Ni%  r   r   r   r   gê-™—q=)Zrtol)r!   r"   r   r   )r,   r2   r(   r(   r)   Ú#test_chi2_contingency_yates_gh13875Ì   s    rS   c               C   sz   t ttddgddggdƒ t ttddggddgggdƒ t ttddgddggdƒ t tttjddgd	dggtd
dƒ d S )Nr   r   r   r   ÚXÚcramerrN   r   Údd)Zdtype)rO   rP   r   r!   r"   Úobjectr(   r(   r(   r)   Útest_bad_association_argsÔ   s
    rX   zstat, expected)rU   gÀŽ¾ûÿ›·?)Z	tschuprowg:Ç°¼`Ú³?)Zpearsong!Ã2qÜÀ?c          	   C   sH   t  dddddgddddd	gd
dddd	gg¡}t|| d}t||ƒ d S )Nr   r?   r   r   r   rD   r>   r@   r:   r<   )r,   Úmethod)r!   r"   r   r   )Ústatr4   Zobs1r$   r(   r(   r)   Ú
test_assocà   s
    r[   )Únumpyr!   Znumpy.testingr   r   r   r   r   Zpytestr   rO   Zscipy.specialr   Zscipy.stats.contingencyr	   r
   r   r   r*   r.   r5   rG   rM   rR   rS   rX   ÚmarkZparametrizer[   r(   r(   r(   r)   Ú<module>   s"   _