U
    Kvf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20Z21Z22Z23Z24Z25Z26Z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   L/tmp/pip-unpacked-wheel-2v6byqio/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__r2   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+   r0   )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   r8   r   r+   r1   r,   r   r   r    test_option   s    z TestUnweightedCohens.test_optionNr3   r4   r5   classmethodr:   r>   r   r   r   r    r6   }   s   
r6   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
r7   )r9   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)rC   r;   r   r   r<   r=   r   r   r    r>      s    zTestWeightedCohens.test_optionNr?   r   r   r   r    rA      s   
rA   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rC   wt   r   toeplitzrB   	quadratic)nprandomseedrandintZeyearraydotTr   aranger   r,   Z	var_kapparC   )r'   matZ	table_aggres1r+   res3res4r   r   r    test_cohenskappa_weights   s,     "rW   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?rE   r   rI   rJ   r   r   r   r   r   r&   r"   rF   )r   err_msg)r	   r#   irr_namevalue	stat_name	statisticp_valuerK   rR   Zhistogramddanxietyreprr   r   r,   r-   r.   )Zck_w3Zck_w4Zck_w1Zck_w2Z	all_casesrr+   wrG   msgrT   r   r   r    test_cohens_kappa_irr   st    
8rh   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#   r^   r_   r`   ra   rb   r   	diagnosesr   r   )r$   data__Z
res1_kappar   r   r    test_fleiss_kappa_irr8  s    rl   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)ro   rq   )rr   r    rs   I  s   z!test_to_table.<locals>.<listcomp>r   g      ?g      ?g      @g      @g      @g      @r   g      )binsr   )ri   r   rK   asarrayrt   r   rn   )rT   Zres0r+   rv   rU   rV   Zres5r   ru   r    test_to_tableF  s    , rx   c                  C   sH   t } t| \}}tdddddg}t|d| ttt | d S )N      7   +   r   )ri   r   rK   rO   r   rn   unique)rq   rj   
categoriesZcolsumr   r   r    test_aggregate_raters\  s
    r   )&__doc__ZnumpyrK   Znumpy.testingr   r   r   Zstatsmodels.stats.inter_raterr   r   r   r   Zstatsmodels.tools.testingr	   rw   splitfloatZreshapeZtable0r   r8   rO   ri   Zdiagnoses_rownamesZdiagnoses_colnamesr!   r(   r)   r6   rA   rW   rc   Zanxiety_rownamesZanxiety_colnamesrh   rl   rx   r   r   r   r   r    <module>   s   

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