U
    md2                  >   @   s  d Z ddlZddlmZmZmZ ddlmZm	Z	m
Z
mZ ddlmZ ed eddZeddd	df Zdd
d	gdddgdd	dggZed
d
d
d
d
d
gddddddgddddddgddddddgdddd
d
d
gd	d	ddddgddddddgd	d	dddd
gd	d	d
d
d
d
gddddddgd	d
d
d
d
d
gd	dd
d
d
d
gddddddgd	d
d
d
d
d
gddd
d
d
dgddddddgd	d	d	d
ddgd	d	d	d	d	dgddd
d
d
d
gd	dddddgddddddgdd
d
d
d
d
gddd
dddgd	d	d
d
d
d
gd	d
d
d
d
dgdddddd
gd	d	d	d	ddgddd
d
d
d
gd	dddddgddddddggZdddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,gZd-d.d/d0d1d2gZd3d4 Zd5d6 ZG d7d8 d8ZG d9d: d:eZG d;d< d<eZd=d> Zedddd
dddddddd?d	dddd	dd
ddd?d
d?dd
dd
ddddddddd	ddd
dd	d
d
ddd	d?d	d	d	dddd	d	ddddg<jd@ddAdBZdddddddddddddddddd d!d"gZ d-d.d/gZ!dCdD Z"dEdF Z#dGdH Z$dIdJ Z%dS )Kz>

Created on Mon Dec 10 09:18:14 2012

Author: Josef Perktold
    N)assert_almost_equalassert_equalassert_allclose)fleiss_kappacohens_kappato_tableaggregate_raters)Holderz1 	0 	0 	0 	0 	14 	1.000
2 	0 	2 	6 	4 	2 	0.253
3 	0 	0 	3 	5 	6 	0.308
4 	0 	3 	9 	2 	0 	0.440
5 	2 	2 	8 	1 	1 	0.330
6 	7 	7 	0 	0 	0 	0.462
7 	3 	2 	6 	3 	0 	0.242
8 	2 	5 	3 	2 	2 	0.176
9 	6 	5 	2 	1 	0 	0.286
10 	0 	2 	2 	3 	7 	0.286
                     12345678910Z11Z12Z13Z14Z15Z16Z17Z18Z19Z2021Z22Z23Z24Z25Z2627Z28Z29Z30Zrater1Zrater2Zrater3Zrater4Zrater5Zrater6c                  C   s   d} t tt| dd d S )NgzG?r   decimal)r   r   table1)Zkappa_wp r!   a/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/stats/tests/test_inter_rater.pytest_fleiss_kappaG   s    r#   c                  C   s  ddgddgg} t t| ddd ddgddgg} tt| dd	d
 tt| dddd	d
 ddgddgg} tt| dddd	d
 tt| dddd	d
 ddgddgg} tt| d tt| ddd dddgdddgg} tt| dd	d
 tt| dddd	d
 d S )N   r   Zunif)methodr   g(\@g{Gz?gtE)!XUſgTqs*>)ZatolgVBw?r   r   fleissgaM?Zrandolphg@m?uniform   g?ZrandgL$?)r   r   r   )tabler!   r!   r"   test_fleis_randolphM   s    r*   c                   @   s   e Zd Zdd ZdS )CheckCohensc                 C   sR   | j }| j}|j|j|j|j|j|j|j|j	g}t
||dd tt|| j d S )Nr   r   )resres2kappaZ	std_kappaZ	kappa_lowZ	kappa_uppZ
std_kappa0z_valueZpvalue_one_sidedpvalue_two_sidedr   r   str
res_string)selfr,   r-   Zres_r!   r!   r"   test_resultsr   s      zCheckCohens.test_resultsN)__name__
__module____qualname__r4   r!   r!   r!   r"   r+   p   s   r+   c                   @   s    e Zd Zedd Zdd ZdS )TestUnweightedCohensc                 C   s6   t t| _ddddg}ddddg}|| | _d	| _d S )
NgH.!?gDl?gݓZ?gQI&?g\m?go_
@ga2U0*C?g/nR?a                    Simple Kappa Coefficient
              --------------------------------
              Kappa                     0.4842
              ASE                       0.1380
              95% Lower Conf Limit      0.2137
              95% Upper Conf Limit      0.7547

                 Test of H0: Simple Kappa = 0

              ASE under H0              0.1484
              Z                         3.2626
              One-sided Pr >  Z         0.0006
              Two-sided Pr > |Z|        0.0011
r   table10r,   r-   r2   )clsZ	res10_sasZres10_sash0r!   r!   r"   setup_class   s
    

z TestUnweightedCohens.setup_classc                 C   s$   t tdd}t|| jd dd d S )NF)return_resultsr   r   r   r   r:   r   r-   r3   r.   r!   r!   r"   test_option   s    z TestUnweightedCohens.test_optionNr5   r6   r7   classmethodr<   r@   r!   r!   r!   r"   r8   }   s   
r8   c                   @   s    e Zd Zedd Zdd ZdS )TestWeightedCohensc                 C   s@   t tdddgd| _ddddg}d	d
ddg}|| | _d| _d S )Nr   r   r   weightsg_vO?gJ{/L?gV-?g:#J{/?gm4@?g!u`
@gMb@?gMbP?a                    Weighted Kappa Coefficient
              --------------------------------
              Kappa                     0.4701
              ASE                       0.1457
              95% Lower Conf Limit      0.1845
              95% Upper Conf Limit      0.7558

                 Test of H0: Weighted Kappa = 0

              ASE under H0              0.1426
              Z                         3.2971
              One-sided Pr >  Z         0.0005
              Two-sided Pr > |Z|        0.0010
r9   )r;   Z
res10w_sasZres10w_sash0r!   r!   r"   r<      s
    
zTestWeightedCohens.setup_classc                 C   s,   t tdddgdd}t|| jd dd d S )Nr   r   r   F)rE   r=   r   r   r>   r?   r!   r!   r"   r@      s    zTestWeightedCohens.test_optionNrA   r!   r!   r!   r"   rC      s   
rC   c                  C   s  t jd t jjdddddt d  } t dddddgdddddgg}t t || |j}t| t 	ddkd	d
}t|t 	dd	d
}t
|j|jdd t
|j|jdd t| dt 	d d	d
}t| dt 	d dd
}t| |jd dd
}t| |jd}t
|j|jdd t
|j|jdd t
|j|jdd t
|j|jdd t
|j|jdd t
|j|jdd t| dt 	dd  dd
}t| dt 	d dd
}t
|j|jdd t
|j|jdd d S )Ni> r   r
   )r   r   )sizer   r   r   linearrE   wt   r   toeplitzrD   	quadratic)nprandomseedrandinteyearraydotTr   aranger   r.   Z	var_kapparE   )r)   matZ	table_aggres1r-   res3res4r!   r!   r"   test_cohenskappa_weights   s,     "rZ   r(      F)orderc                  C   s  t  } t  }d| _d| _d| _d| _d| _d| _d|_d|_d|_d|_d	|_d
|_t  }t  }t  } t  }d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d| _d| _d| _d| _d| _d| _d|_d|_d|_d|_d|_d|_|d d f|d df|tdd f|tddf| d df| tdd df| d tdd  df|d!d!d"d"dgdfg}t	t
d d d"d f d"dd#d d$d%gd"dd#d d$d%gf}|D ]j\}}}t|t| }	t|d! ||d&}
t|
j|jd$|	d' t|
j|jd|	d' t|
j|jd$|	d' qd S )(Nz1Cohen's Kappa for 2 Raters (Weights: 0,0,0,1,1,1)Kappag`	Z7?zg18@?gpO?z1Cohen's Kappa for 2 Raters (Weights: 0,0,1,1,2,2)gR ?gY?g٢?z0Cohen's Kappa for 2 Raters (Weights: unweighted)gHByg+'끠gygu?z+Cohen's Kappa for 2 Raters (Weights: equal)g^?gG \?g?z-Cohen's Kappa for 2 Raters (Weights: squared)gAL!?gӣ?g,;͆F?z/Cohen's Kappa for 2 Raters (Weights: 0,0,1,1,2)g\/ӛ?g_Pj?gٛsK?rG   r   rK   rL   r   r   r   r   r   r(   r$   rH   )r   err_msg)r	   r%   irr_namevalue	stat_name	statisticp_valuerM   rU   Zhistogramddanxietyreprr   r   r.   r/   r0   )Zck_w3Zck_w4Zck_w1Zck_w2Z	all_casesrr-   wrI   msgrW   r!   r!   r"   test_cohens_kappa_irr   st    
8rk   c                  C   sR   t  } d| _d| _d| _d| _d| _d| _tt\}}t	|}t
|| jdd d S )	NzFleiss' Kappa for m Ratersr^   g*2: ?r_   g;Tަ1@r   r$   r   )r	   r%   ra   rb   rc   rd   re   r   	diagnosesr   r   )r&   data__Z
res1_kappar!   r!   r"   test_fleiss_kappa_irr8  s    ro   c                     s"  t  t d d d df d d} t fddtdD }t| d | t d d d df }t|d | ddd	d
ddg}t d d d df |}t|d | t d d d df d dddd	d
dgd}t d d d df d dd}t|d d| t|d d| d S )Nr   r   r   c                    s$   g | ]  fd dt dD qS )c                    s6   g | ].} d d d df d |gk d qS )Nr   r   )allsum).0j)datair!   r"   
<listcomp>I  s   z,test_to_table.<locals>.<listcomp>.<listcomp>r   )range)rr   rt   )ru   r"   rv   I  s   z!test_to_table.<locals>.<listcomp>r   g      ?g      ?g      @g      @g      @g      @r   g      )binsr   )rl   r   rM   asarrayrw   r   rq   )rW   Zres0r-   ry   rX   rY   Zres5r!   rx   r"   test_to_tableF  s    , r{   c                  C   sH   t } t| \}}tdddddg}t|d| ttt | d S )N      7   +   r   )rl   r   rM   rR   r   rq   unique)rt   rm   
categoriesZcolsumr!   r!   r"   test_aggregate_raters\  s
    r   )&__doc__numpyrM   Znumpy.testingr   r   r   Zstatsmodels.stats.inter_raterr   r   r   r   Zstatsmodels.tools.testingr	   rz   splitfloatZreshapeZtable0r    r:   rR   rl   Zdiagnoses_rownamesZdiagnoses_colnamesr#   r*   r+   r8   rC   rZ   rf   Zanxiety_rownamesZanxiety_colnamesrk   ro   r{   r   r!   r!   r!   r"   <module>   s   


 @##                                                           ,
S