
    !g1              !          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j                  dj                         e      j#                  dd      Zeddd	df   Zg d
g dg dgZ ej*                  g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d g dg d!g d"g d#g dg d$g dg      Zg d%Zg d&Zd' Zd( Z G d) d*      Z G d+ d,e      Z G d- d.e      Zd/ Z ej*                  g d0      j#                  d1d2d34      Zg d5Z g d6Z!d7 Z"d8 Z#d9 Z$d: Z%y);z>

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
      )r      r   )r      r   )r   r      )r   r   r   r   r   r   )   r   r   r   r   r   )r      r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )123456789101112131415161718192021222324252627282930)rater1rater2rater3rater4rater5rater6c                  >    d} t        t        t              | d       y )NgzG?r   decimal)r   r   table1)kappa_wps    e/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_inter_rater.pytest_fleiss_kappar=   F   s    HV,hB    c                     ddgddgg} t        t        | d      d       ddgddgg} t        t        |       dd	
       t        t        | d      dd	
       ddgddgg} t        t        | d      dd	
       t        t        | d      dd	
       ddgddgg} t        t        |       d       t        t        | d      d       g dg dg} t        t        |       dd	
       t        t        | d      dd	
       y )N   r   unif)methodr   g(\@g{Gz?gtE)!XUſgTqs*>)atolgVBw?r   r   fleissgaM?randolphg@m?uniform)   r   r   )r   r@   r   g?randgL$?)r   r   r   )tables    r<   test_fleis_randolphrJ   L   s     VaVEeF3Q7D\D$<(E L'>Lv6tLVaVE Lx8(NLz:H4PVaVE L'+Ly91=	"E L'=Lv6tLr>   c                       e Zd Zd Zy)CheckCohensc                 B   | j                   }| j                  }|j                  |j                  |j                  |j
                  |j                  |j                  |j                  |j                  g}t        ||d       t        t        |      | j                         y )Nr   r8   )resres2kappa	std_kappa	kappa_low	kappa_upp
std_kappa0z_valuepvalue_one_sidedpvalue_two_sidedr   r   str
res_string)selfrN   rO   res_s       r<   test_resultszCheckCohens.test_resultsq   sr    hhyy		3==#--S1133G3GI 	D$2SXt/r>   N)__name__
__module____qualname__r\    r>   r<   rL   rL   o   s    0r>   rL   c                   "    e Zd Zed        Zd Zy)TestUnweightedCohensc                 ^    t        t              | _        g d}g d}||z   | _        d| _        y )N)gH.!?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   table10rN   rO   rY   )cls	res10_sasres10_sash0s      r<   setup_classz TestUnweightedCohens.setup_class~   s/     w'4	6{*9r>   c                 \    t        t        d      }t        || j                  d   d       y )NF)return_resultsr   r   r8   r   re   r   rO   rZ   rP   s     r<   test_optionz TestUnweightedCohens.test_option   s"    WU;E499Q<;r>   Nr]   r^   r_   classmethodri   rn   r`   r>   r<   rb   rb   |       9 9,<r>   rb   c                   "    e Zd Zed        Zd Zy)TestWeightedCohensc                 f    t        t        g d      | _        g d}g d}||z   | _        d| _        y )Nr   r   r   weights)g_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
rd   )rf   
res10w_sasres10w_sash0s      r<   ri   zTestWeightedCohens.setup_class   s1     w	:5
7,9r>   c                 b    t        t        g dd      }t        || j                  d   d       y )Nru   F)rw   rk   r   r   r8   rl   rm   s     r<   rn   zTestWeightedCohens.test_option   s$    WiNE499Q<;r>   Nro   r`   r>   r<   rs   rs      rq   r>   rs   c                     t         j                  j                  d       t         j                  j                  ddd      dt        j                  d      z  z   } t        j
                  g dg dg      }t        j                  t        j                  ||       |j                        }t        | t        j                  d      d	kD  d
      }t        |t        j                  d	      d
      }t        |j                  |j                  d       t        |j                  |j                  d       t        | d	t        j                  d      z  d
      }t        | d	t        j                  d      z  d      }t        | |j                  d   d      }t        | |j                        }t        |j                  |j                  d       t        |j                  |j                  d       t        |j                  |j                  d       t        |j                  |j                  d       t        |j                  |j                  d       t        |j                  |j                  d       t        | dt        j                  d      d	z  z  d      }t        | dt        j                  d      z  d      }t        |j                  |j                  d       t        |j                  |j                  d       y )Ni> r   r   )r   r   )sizer   )r   r   r   r   r   )r   r   r   r   r   r   linearrw   wt   r8   toeplitzrv   	quadratic)nprandomseedrandinteyearraydotTr   aranger   rP   	var_kapparw   )rI   mat	table_aggres1rO   res3res4s          r<   test_cohenskappa_weightsr      s   IINN7IIa%01RVVAY;>E ((L-
.Crvvc5)3551Iryy|a'7HED	299Q<HED

DJJ;C q1~(CDq1~*EDt||A:FDt||4D

DJJ;C

DJJ;C

DJJ;C q1q'8ZHDq1~+FD

DJJ;Cr>   )<r   r   r   r   r   r   r   r   r   r   r   rG   r   r   r   r   r   r   r   r   r   rG   r   rG   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rG   r   r   r   r   r   r   r   r   r   r   r   r      r   F)order)r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   )r1   r2   r3   c                     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        j                  d      d f|t        j                  d      df| d df| t        j                  d      dz  df| d t        j                  d      dz  z  df|g d!dfg}t        j                  t        d d d"d f   g d#g d#f      }|D ]  \  }}}t        |      t        |      z   }	t        |d$   ||%      }
t        |
j                  |j                  d&|	'       t        |
j                  |j
                  d|	'       t        |
j                   |j                  d&|	'        y )(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?r}   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   rG   r@   r   r~   rG   )r9   err_msg)r
   rB   irr_namevalue	stat_name	statisticp_valuer   r   histogramddanxietyreprr   r   rP   rU   rW   )ck_w3ck_w4ck_w1ck_w2	all_casesrrO   wr   msgr   s              r<   test_cohens_kappa_irrr      sa   HEHE GELENEKEOEOEM GELENEKEOEOEMHEHEHEHE FELENEKEO EOEM AELENEKEOEOEM CELENEKEOEOEM EELENEKEOEOEMt$x(1t,1z2{+1q*5299Q<?*J7j13I 	wqt}'9;M&NOA  Ya1gR AaD!3DJJ

AsKDLL$..!SQD114<<TWXYr>   c                      t               } d| _        d| _        d| _        d| _        d| _        d| _        t        t              \  }}t        |      }t        || j                  d       y )	NzFleiss' Kappa for m Ratersr   g*2: ?r   g;Tަ1@r   r@   r8   )r
   rB   r   r   r   r   r   r	   	diagnosesr   r   )rD   data__
res1_kappas       r<   test_fleiss_kappa_irrr   7  s_    XF 1FMFOFLFFFN	*HE1e$J
FLL!<r>   c                     t         } t        | d d d df   dz
  d      }t        j                  t	        d      D cg c]I  }t	        d      D cg c]2  }| d d d df   dz
  ||gk(  j                  d      j                         4 c}K c}}      }t        |d   |       t        | d d d df         }t        |d   |       g d}t        | d d d df   |      }t        |d   |       t        | d d d df   dz
  g d      }t        | d d d df   dz
  d      }	t        |d   j                  d	      |       t        |	d   j                  d	      |       y c c}w c c}}w )
Nr   r   r   r   )      ?      ?      @      @      @g      @r   )g      r   r   r   r   r   )binsr   )r   r   r   asarrayrangeallsumr   )
datar   ijres0rO   r   r   r   res5s
             r<   test_to_tabler   E  s_   DD2A2JqL!$D::).q3$% &+1X/ ! adA!A.33A6::< / 3 5D a$D2A2JDa$-DD2A2J%Da$ D2A2JqL'KLDD2A2JqLq)DaR$'aR$'!/ 3s   E"
7EE"
E"
c                      t         } t        |       \  }}t        j                  g d      }t	        |j                  d      |       t	        t        j                  t               |       y )N)   r      7   +   r   )r   r	   r   r   r   r   unique)r   r   
categoriescolsums       r<   test_aggregate_ratersr   [  sJ    D(.E:XX*+F1v&9%z2r>   )&__doc__numpyr   numpy.testingr   r   r   statsmodels.stats.inter_raterr   r   r   r	   statsmodels.tools.testingr
   r   splitfloatreshapetable0r:   re   r   r   diagnoses_rownamesdiagnoses_colnamesr=   rJ   rL   rb   rs   r   r   anxiety_rownamesanxiety_colnamesr   r   r   r   r`   r>   r<   <module>r      s    L LG G , 
 
 "EGU

, -4GBrN  
1R4
 BHH))))))))))))))))))))))))))))));+ ,	< C S C MF
0 
0<; <<< <<!DF "((   wr!3w	 
 E 3 PYf=(,3r>   