a
    ˆù»j6G  ã                   @   sR   d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 G dd„ dƒZdS )é    N)Úassert_allclose)Ústats)Ú_pvalue_dunnettÚDunnettResultc                   @   sÈ  e Zd Zg d¢g d¢g d¢ddgdggZg d¢Zg d¢Zg d	¢Zg d
¢Zg d¢Zg d¢Z	g d¢g d¢gZ
g d¢Zg d¢Zeeeed�Zee
eed�Zeeee	eed�Zg d¢g d¢gZg d¢ZddgZddgZddgZddgZddgZd d!gd"d#ggZd$d%gZd&d'gZeeeed�Zeeeed�Zeeeeeed�Zg d(¢g d)¢g d*¢gZg d+¢Zg d,¢Z g d-¢Z!g d.¢Z"g d/¢Z#g d0¢Z$g d1¢g d2¢gZ%g d3¢Z&g d4¢Z'ee!e#e"d�Z(ee%e'e&d�Z)eeee$e(e)d�Z*g d5¢g d6¢gZ+g d7¢Z,d8d9gZ-d:d;gZ.d<d=gZ/d>d?gZ0d@dAgZ1dBdCgdDdEggZ2dFdGgZ3dHdIgZ4ee.e0e/d�Z5ee2e4e3d�Z6ee+e,e1e5e6d�Z7e8j9 :dJdKdLdMdNdOdPdQdRdSdTdUdVdWgdXdYgdZfd[d\d]d^d_d`dadbdSdTdUdcddgdXdYgdefg¡dfdg„ ƒZ;e8j9 :dheeee	feeeefeee e$fe+e,e-e1fg¡didj„ ƒZ<e8j9 :dkg dl¢¡dmdn„ ƒZ=e8j9 :dodpdqdrgfdZdrdqgfdedqdqgfg¡dsdt„ ƒZ>e8j9 :dueee*e7g¡e8j9 :dkg dv¢¡dwdx„ ƒƒZ?e8j9 :dkg dl¢¡dydz„ ƒZ@d{d|„ ZAd}d~„ ZBe8j9 Cd¡e8j9 :d€g d�¢¡d‚dƒ„ ƒƒZDd„S )…ÚTestDunnett)ç      8@ç      ;@g     €@@ç      @@ç      <@ç      3@g     €B@ç      ?@ç      B@r   ç      A@ç      C@r	   r   r	   )	ç      :@r   r   ç      9@ç      =@g     €=@ç     €0@r   g      F@)r   r   r   r   ç      4@r
   )@ç      2@ç      .@r   ç      0@g      1@r   ç      ,@r   r   r   r   r   r   r   ç      6@r   ç      5@r   ç      $@r   g      &@g      "@r   r   ç     €1@r   g      /@g      -@r   r   r   g     €6@r   g     €8@r   r   g     €2@r   g     €:@ç      *@r   r   r   r   r
   r   r   r   r   r   r   g      7@r   r   r   r   r   r   r   r   r   r	   r
   r   )gCRºÝ“ÓÓ>gG!É¬Þá–?g0�[wóTï?ç@Þ«V&üï?gÛ…æ:�´ë?)ç-Cëâ6?g€e¥I)è–?g
pUï?r   gi©¼á´ë?)r   gmFAðø†?gd;ßO�—è?g�Í9x&´ì?gÏ†ü3ƒxâ?)é   r    gù1æ®%äï?gé`ýŸÃ|ï?r   )gœùÕ @g>yX¨5M@ge�zˆFwã?gÕQ÷HÑ?g”¼:Ç€ìî?)g˜#Èùt@gÞÐÃëÿXç?gºwí‰¥Æ Àg@ÛRrÑ'Àgýßûåï‡'À)gg!O¶$ñ/@gjß
sŒÉ+@gŠ"˜4Pé*@g@ÛRrI-@gÿïýò÷9@)géöÝS�@g…Â.Ä¨fö?gæb¿HÀgìÚ¨Ã%Àg”61¼#À)gï@ÇyÜ.@g¹ 4r*@gy›.ê•¯(@g�“²þæ”*@g°â]fý™7@)ÚtwosidedÚlessÚgreater)ÚsamplesÚcontrolÚ	statisticÚpvaluesÚcis)g…ëQ¸…#@gš™™™™™!@g¸…ëQ¸@g¸…ëQ¸"@)gš™™™™™)@g\�Âõ(\#@gR¸…ëQ(@gffffff"@gš™™™™%@)gš™™™™™@g      !@gÍÌÌÌÌÌ@g{®Gáz @g®Gáz®#@g¤p=
×£ @g¹ü‡ôÛ×ã?gàœ¥½Áw?gçäE&à×ã?g$Çç_Üw?g8¯ûØnÌÔ?gÇ¥…&äÞg?g ýHVí?gÉq§t°þï?g°¶-Êlë?gÍÌÌÌÌŒ@g„»,Cô¿gSE/:Þê?g(Äüò‡s@g=pF—]ª@g¥™Qù®î¿g‹lvmæñ?gÐ¬Ìº$@g}Q˜‰Œ@)é7   é@   r*   )r)   é1   é4   )é2   é,   é)   )r)   é/   é0   )gÂ&S£¢?gÅþ²{ò°ì?gXÊ2Ä±.Ú?)gµá°4ð£¢?gZÕ’Žr°ì?gý¤Ú§ã1Ú?)g¤rµ4·’?g(×Èì¬à?gn‡†Å¨kï?)gAJ˜iûï?gÅ¬C9Ñì?gÞT¤ÂØÊ?)gï v¦Ð¹@g$—ÿ�~ûá?g&ßlsczö¿)gÞv:žÇè?g’X†ƒ~ Àg’X†ƒ~.À)gI,ÃA?5@g’X†ƒ~(@g$±8ý@)gBïõÕ8@g_•ùcÀg/„‚Êü1+À)g¨Ía3™3@gO›7Âf2%@g=mÞ›É@)gffffff@gš™™™™™@g      @g333333@)gffffff@g333333@gš™™™™™@gš™™™™™@g       @)ç333333@g      @g      @gÍÌÌÌÌÌ@gš™™™™™	@gÓÞà“©â?gÀ[ Añï?g(DÀ!T©â?g77¦',ñï?gòÒMbXÓ?g=,Ôšææ?g_F±ÜÒjí?g )"Ã*Þä?g®Gází?g}iÆ¢©¿gQ2N¡÷æ¿g`¦l•ˆð¿g{ÑÅUg[÷?gxk¶Ã|Éï?gì‘¿W¿˜à¿g!%-L$çë¿gH�þ0Kžô?gÙC²7vŸê?z1rho, n_groups, df, statistic, pvalue, alternative)ç      à?r    é
   gö(\�Âõü?çš™™™™™©?r#   )r3   é   r4   g¸…ëQ¸@r5   r#   )r3   é   é   g×£p=
×ÿ?r5   r#   )r3   é   r8   g¤p=
×£@r5   r#   )r3   é   é   g�Âõ(\�
@ç{®Gáz„?r#   )r3   é   r;   g{®Gáz@r<   r#   )r3   r7   é<   g…ëQ¸@r<   r#   )r3   r:   r>   çö(\�Âõ@r<   r#   r3   r:   r>   r?   g®Gáz®@r<   r5   r#   )r3   r    r4   g×£p=
×@r5   ú	two-sided)r3   r6   r4   g{®Gáz@r5   r@   )r3   r7   r8   g�Âõ(\�@r5   r@   )r3   r6   é   g�Âõ(\�@r5   r@   )r3   r:   r;   g®Gáz@r<   r@   )r3   r=   r;   gR¸…ëQ@r<   r@   )r3   r7   r>   r2   r<   r@   )r3   r:   r>   ç…ëQ¸	@r<   r@   rB   gffffff@r@   c           	      C   sV   t j d¡}t  ||f|¡}t  |d¡ t  |¡}t|||||d�}t||dd� d S )Nl	   ­Š¥<·~(zh.W)| r    )ÚrhoÚdfr&   ÚalternativeÚrngç{®Gázt?©Úatol)ÚnpÚrandomÚdefault_rngÚfullZfill_diagonalÚarrayr   r   )	ÚselfrC   Zn_groupsrD   r&   ÚpvaluerE   rF   Úres© rR   úFE:\soccer\ml_env\Lib\site-packages\scipy/stats/tests/test_multicomp.pyÚtest_critical_valuesª   s    
ýz TestDunnett.test_critical_valuesz#samples, control, pvalue, statisticc                 C   sR   t j d¡}tj|||dœŽ}t|tƒs,J ‚t|j|dd� t|j	|ddd� d S )Nl	   ÈsuVP}—vº*Úd ©r%   Úrandom_stateg-Cëâ6
?)Úrtolr<   r   ©rW   rI   )
rJ   rK   rL   r   ÚdunnettÚ
isinstancer   r   r&   rP   )rO   r$   r%   rP   r&   rF   rQ   rR   rR   rS   Ú
test_basicÓ   s
    
zTestDunnett.test_basicrE   )r@   r"   r#   c                 C   sŠ   t j d¡}tdƒD ]p}|jdddd�}|jdddd�}tj||||d�}tj||||d�}t|j	|j	d	d
d� t|j
|j
d	d
d� qd S )Nì	   ÿQšy§¾p^\Èj˜.…sU r4   éœÿÿÿéd   ©r4   ©Úsize©r%   rE   rV   )rE   rV   gü©ñÒMbP?çñhãˆµøä>rX   )rJ   rK   rL   ÚrangeÚintegersr   rY   Z	ttest_indr   r&   rP   )rO   rE   rF   Ú_Úsampler%   rQ   ÚrefrR   rR   rS   Útest_ttest_indå   s    þþzTestDunnett.test_ttest_indzalternative, pvaluer"   r   r    c           	      C   sÌ  t j d¡}|jdddd�}|jdddd�}|jdd	dd�}tj|||||d
�}t|j|dd� | ¡ }|dkrÈt  	|j
¡ ¡ s„J ‚d|jd   k rždk s¤n J ‚d|jd   k r¾dk sÄn J ‚�n |dk�r.d|j
d   k rìdk sòn J ‚d|j
d   k �rdk �sn J ‚t  |j¡ ¡ �sÈJ ‚nš|dk�rÈd|j
d   k �rVdk �s\n J ‚d|j
d   k �rzdk �s€n J ‚d|jd   k �rždk �s¤n J ‚d|jd   k �rÂdk �sÈn J ‚d S )Nr\   r   rA   r_   r`   éP   r^   é    é´   rb   gH¯¼šò×z>rH   r"   r]   iÄÿÿÿr>   r    r#   r@   )rJ   rK   rL   re   r   rY   r   rP   Úconfidence_intervalZisneginfÚlowÚallÚhighZisposinf)	rO   rE   rP   rF   Zsample_lessr%   Zsample_greaterrQ   ÚcirR   rR   rS   Útest_alternativesþ   s.    	þ $
 $
$$$zTestDunnett.test_alternativesÚcase©r"   r#   r@   c                 C   s*  t j d¡}|d }|d }ddddœ}|d | d	d
¡ }tj||||dœŽ}t|j|ddd� |d ||  }	|dkr†|	t jg}	n|dkršt j |	g}	|j	d u s¨J ‚|j
d u s¶J ‚|jdd�}
t|
j|	d ddd� t|
j|	d ddd� |j	|
u süJ ‚|j
dk�sJ ‚|jdd�}||
u �s&J ‚d S )Nì	   Ó><�FÃl&\z]Ô	a#Ž r$   r%   r"   r#   r!   rt   r'   ú-Ú rb   rG   r   rX   r(   gffffffî?©Zconfidence_levelr   rc   r    )rJ   rK   rL   Úreplacer   rY   r   rP   ÚinfZ_ciZ_ci_clrm   rn   rp   )rO   rs   rE   rF   r$   r%   ZalternativesZp_refrQ   Zci_refrq   Zci_rR   rR   rS   Útest_against_R_multicomp_glht%  s2    ÿ
ÿz)TestDunnett.test_against_R_multicomp_glhtc                 C   s¤   t j d¡}tj| j| j||dœŽ}t|ƒ}d|v s8J ‚d|v sDJ ‚|dkrfd|v sXJ ‚d|v s J ‚n:|dkrˆd	|v szJ ‚d
|v s J ‚nd	|vs”J ‚d|v s J ‚d S )Nru   rb   z(Sample 2 - Control)z95.0%r"   z-infz19.r#   rz   z-13.z21.)rJ   rK   rL   r   rY   Ú	samples_3Ú	control_3Ústr)rO   rE   rF   rQ   Úres_strrR   rR   rS   Útest_strE  s     
þzTestDunnett.test_strc                 C   sd   t j d¡}tj| j| j|dœŽ}d}tjt	|d�� |j
dd� W d   ƒ n1 sV0    Y  d S )Nru   rU   z7Computation of the confidence interval did not converge©Úmatchrc   )Ztol)rJ   rK   rL   r   rY   r|   r}   ÚpytestZwarnsÚUserWarningZ
_allowance)rO   rF   rQ   ÚmsgrR   rR   rS   Útest_warnings]  s    
ÿzTestDunnett.test_warningsc                 C   sØ  | j | j }}tjtdd��" tj||ddœŽ W d   ƒ n1 sD0    Y  t |¡}|d g|d< tjtdd��  tj|d|iŽ W d   ƒ n1 sš0    Y  t |¡}|g}tjtdd��  tj|d|iŽ W d   ƒ n1 sè0    Y  t |¡}g |d< tjtd	d��  tj|d|iŽ W d   ƒ n1 �s:0    Y  g }tjtd	d��  tj|d|iŽ W d   ƒ n1 �s~0    Y  tj|d|iŽ}tjtd
d�� |j	dd� W d   ƒ n1 �sÊ0    Y  d S )Nzalternative must ber�   Zbob)r%   rE   r   zmust be 1D arraysr%   r    zat least 1 observationzConfidence level mustr6   rx   )
r|   r}   rƒ   ZraisesÚ
ValueErrorr   rY   ÚcopyÚdeepcopyrm   )rO   r$   r%   Zsamples_Zcontrol_rQ   rR   rR   rS   Útest_raisesg  s*    0
.
.
00zTestDunnett.test_raisesz$ignore:Computation of the confidenceÚ	n_samples)r    r7   r6   c                 C   sŽ   t j d¡}|j|dfd�}|jdd�}tj|||dœŽ}|jj|fksLJ ‚|jj|fks^J ‚| 	¡ }|j
j|fksxJ ‚|jj|fksŠJ ‚d S )Nl   V=ä0œ(‹Lr4   r`   rU   )rJ   rK   rL   Únormalr   rY   r&   ÚshaperP   rm   rn   rp   )rO   r‹   rF   r$   r%   rQ   rq   rR   rR   rS   Útest_shapes‰  s    zTestDunnett.test_shapesN)EÚ__name__Ú
__module__Ú__qualname__Z	samples_1Z	control_1Zpvalue_1Zp_1_twosidedZp_1_greaterZp_1_lessZstatistic_1Zci_1_twosidedZci_1_greaterZ	ci_1_lessÚdictZ	pvalues_1Zcis_1Zcase_1Z	samples_2Z	control_2Zpvalue_2Zp_2_twosidedZp_2_greaterZp_2_lessZstatistic_2Zci_2_twosidedZci_2_greaterZ	ci_2_lessZ	pvalues_2Zcis_2Zcase_2r|   r}   Zpvalue_3Zp_3_twosidedZp_3_greaterZp_3_lessZstatistic_3Zci_3_twosidedZci_3_greaterZ	ci_3_lessZ	pvalues_3Zcis_3Zcase_3Z	samples_4Z	control_4Zpvalue_4Zp_4_twosidedZp_4_greaterZp_4_lessZstatistic_4Zci_4_twosidedZci_4_greaterZ	ci_4_lessZ	pvalues_4Zcis_4Zcase_4rƒ   ÚmarkZparametrizerT   r[   ri   rr   r{   r€   r†   rŠ   ÚfilterwarningsrŽ   rR   rR   rR   rS   r      s   Cø
þÿÿÿÿÿÿÿëþ




üþ	
	þ



ýþ


"
r   )rˆ   ÚnumpyrJ   rƒ   Znumpy.testingr   Zscipyr   Zscipy.stats._multicompr   r   r   rR   rR   rR   rS   Ú<module>   s   