o
    ×Ëh  ã                   @   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ej dddg¡dd„ ƒZdd„ Zej dg d¢¡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   s^  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  g d¢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  g d¢gg¡}t||ƒ t||ƒ t||ƒ d S )Né   r   é   é   é   é   é3   )r   é   é
   r   é   é   é   é   é   éB   éÒ   é<   é\   é|   )r   r   éH   éN   )ÚnpÚarrayr	   r   Úlenr   ÚarangeÚreshape)ÚaÚmÚm0Úm1Ú	expected0Ú	expected1Úm2Ú	expected2© r.   ú]/var/www/html/scripts/venv/lib/python3.10/site-packages/scipy/stats/tests/test_contingency.pyÚtest_margins   s2   





r0   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 g d¢g d¢g¡} t| ƒ}t g d¢g d¢g¡}t||ƒ d S )	Nr   ç      ð?r   r   )r   r   é   )r2   r2   r2   )ç      (@r3   g      0@)ç      2@r4   g      8@)r   r
   r!   r"   Ú	ones_liker   )ÚobservedÚeÚcorrectr.   r.   r/   Útest_expected_freq+   s   4r9   c                  C   s    t  ddgddgg¡} t| dd\}}}}t|dƒ t|dƒ t|dƒ t| |ƒ t  g d¢¡} t| dd\}}}}t|dƒ t|dƒ t|dƒ t| |ƒ d S )	Nr   r   F©Ú
correctiong        r1   )r   r   r   r   )r!   r"   r   r   r   ©ÚobsÚchi2ÚpÚdofÚexpectedr.   r.   r/   Útest_chi2_contingency_trivial8   s   






rB   c                  C   sô   t  g d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢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 )N)r   é"   é   )é#   é   é   )r   é    é	   )r   r   r   )r   é/   rG   )rC   r   é   )rK   é   é   )rI   é!   é   g{®GáŠY@é   )Úsignificantg"„j,5È#=r   é   r   rG   r   r   rD   é   é   r   gj¼t“„!@g“©‚QIä?)r!   r"   r   r   r   r<   r.   r.   r/   Útest_chi2_contingency_RL   sL   ýýüÿ	
&ÿÿþÿÿþüÿ	rU   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  g d¢g d¢g¡} t| dd\}}}}t|dt| | | ƒ ¡  ƒ d S )Nr   r   éZ   zlog-likelihoodF)Úlambda_r;   r   Tg      à¿g      à?)r   r   r   )r   r   r   )rW   )r!   r"   r   r   r   Úsum)ÚcÚgr?   r@   r7   Úc_corrr.   r.   r/   Útest_chi2_contingency_g«   s   ÿÿ r\   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)r=   r.   r.   r/   Útest_chi2_contingency_bad_args»   s   
ra   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=)Úrtol)r!   r"   r   r   )r6   r?   r.   r.   r/   Ú#test_chi2_contingency_yates_gh13875Ì   s   rc   r;   FTc                 C   s@   t  ddgddgg¡}t|| d}t|j|j|j|jf|ƒ d S )Nr   r   r:   )r!   r"   r   r   Ú	statisticÚpvaluer@   r
   )r;   r=   Úresr.   r.   r/   Útest_resultÔ   s   rg   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Úcramerr]   r   Údd)Údtype)r^   r_   r   r!   r"   Úobjectr.   r.   r.   r/   Útest_bad_association_argsÛ   s   ÿrm   zstat, expected))ri   gÀŽ¾ûÿ›·?)Ú	tschuprowg:Ç°¼`Ú³?)Úpearsong!Ã2qÜÀ?c                 C   s6   t  g d¢g d¢g d¢g¡}t|| d}t||ƒ d S )N)r   rL   r   r   r   )rR   r   rK   rM   rG   )rI   r   r   r   rG   )r6   Úmethod)r!   r"   r   r   )ÚstatrA   Úobs1r&   r.   r.   r/   Ú
test_assocç   s   
þrs   )Únumpyr!   Únumpy.testingr   r   r   r   r   Úpytestr   r^   Úscipy.specialr   Úscipy.stats.contingencyr	   r
   r   r   r0   r9   rB   rU   r\   ra   rc   ÚmarkÚparametrizerg   rm   rs   r.   r.   r.   r/   Ú<module>   s(    _
ÿ