
    M/Ph1              !          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                                e                              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                              d1d2d34          Zg d5Z g d6Z!d7 Z"d8 Z#d9 Z$d: Z%dS );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                  R    d} t          t          t                    | d           d S )NgzG?r   decimal)r   r   table1)kappa_wps    h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/stats/tests/test_inter_rater.pytest_fleiss_kappar=   F   s*    HV,,hBBBBB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	
           d S )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333Q777D\D$<(E L''>>>>Lv666tLLLLVaVE Lx888(NNNNLz:::H4PPPPVaVE L''+++Ly9991===YY			"E L''====Lv666tLLLLLLr>   c                       e Zd Zd ZdS )CheckCohensc                     | j         }| j        }|j        |j        |j        |j        |j        |j        |j        |j	        g}t          ||d           t          t          |          | j                   d S )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   sq    hy	3=#-S133GI 	D$2222SXXt/////r>   N)__name__
__module____qualname__r\    r>   r<   rL   rL   o   s#        0 0 0 0 0r>   rL   c                   *    e Zd Zed             Zd ZdS )TestUnweightedCohensc                 j    t          t                    | _        g d}g d}||z   | _        d| _        d S )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~   sB     w''444	666{*9r>   c                 l    t          t          d          }t          || j        d         d           d S )NF)return_resultsr   r   r8   r   re   r   rO   rZ   rP   s     r<   test_optionz TestUnweightedCohens.test_option   s5    WU;;;E49Q<;;;;;;r>   Nr]   r^   r_   classmethodri   rn   r`   r>   r<   rb   rb   |   <        9 9 [9,< < < < <r>   rb   c                   *    e Zd Zed             Zd ZdS )TestWeightedCohensc                 r    t          t          g d          | _        g d}g d}||z   | _        d| _        d S )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   sK     w			:::555
777,9r>   c                 r    t          t          g dd          }t          || j        d         d           d S )Nru   F)rw   rk   r   r   r8   rl   rm   s     r<   rn   zTestWeightedCohens.test_option   s;    WiiiNNNE49Q<;;;;;;r>   Nro   r`   r>   r<   rs   rs      rq   r>   rs   c                     t           j                            d           t           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	k    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           d S )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      st   INN7Ia%001RVAYY;>E (LLL-
.
.Crvc5))3511Iry||a'7HEEED	29Q<<HEEED
DJ;;;;CCCC q1~(CCCDq1~*EEEDt|A:FFFDt|444D
DJ;;;;CCCC
DJ;;;;CCCC
DJ;;;;CCCC q1q'8ZHHHDq1~+FFFD
DJ;;;;CCCCC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&|	'           d 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?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      s   HHEHHE GELENEKEOEOEM GELENEKEOEOEMHHEHHEHHEHHE 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29Q<<?*J7j13I 	wqqqt}'9'9'9;M;M;M&NOOA  Y Ya1ggR AaD!333DJ
AsKKKKDL$.!SQQQQD14<TWXXXXXY Yr>   c                      t                      } d| _        d| _        d| _        d| _        d| _        d| _        t          t                    \  }}t          |          }t          || j        d           d S )	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  st    XXF 1FMFOFLFFFN	**HE1e$$J
FL!<<<<<<r>   c                     t           t          d d d df         dz
  d          } t          j        fdt	          d          D                       }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                             d
          |           t          |d                             d
          |           d S )Nr   r   r   c                 J    g | ]fd t          d          D             S )c                     g | ]>}d d d df         dz
  |gk                         d                                          ?S )Nr   r   )allsum).0jdatais     r<   
<listcomp>z,test_to_table.<locals>.<listcomp>.<listcomp>H  s`     / / / ! aaadA!A.33A66::<< / / /r>   r   )range)r   r   r   s    @r<   r   z!test_to_table.<locals>.<listcomp>H  sV     3 3 3$%/ / / / /%*1XX/ / / 3 3 3r>   r   )      ?      ?      @      @      @g      @r   )g      r   r   r   r   r   )binsr   )r   r   r   asarrayr   r   r   )r   res0rO   r   r   r   res5r   s          @r<   test_to_tabler   E  s   DD2A2JqL!$$D: 3 3 3 3).q3 3 3 5 5D a$D2A2JDa$---DD2A2J%%Da$ D2A2JqL'K'K'KLLLDD2A2JqLq)))DaR$'''aR$'''''r>   c                      t           } t          |           \  }}t          j        g d          }t	          |                    d          |           t	          t          j        t                     |           d S )N)   r      7   +   r   )r   r	   r   r   r   r   unique)r   r   
categoriescolsums       r<   test_aggregate_ratersr   [  si    D(..E:X***++F1v&&&9%%z2222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 L L L L L L L LG G G G G G G G G G G G , , , , , , 
 
 "EGGU

, 

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