
    M/PhB                     <   d Z ddlZddlZddlmZmZmZmZm	Z	 ddl
ZddlZddlmc mZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZ dd	d
dddZej                             de          ej                             de          d                         Z!ej                             de          d             Z"d Z#d Z$d Z%d Z&d Z' G d d          Z( G d de(          Z)d Z*d Z+d Z,d Z-d Z.d  Z/d! Z0d" Z1d# Z2d$ Z3d% Z4d& Z5d' Z6d( Z7d) Z8ej                             d* ej9        d+d,d-                    ej                             d e:e;                                          d.gz             ej                             d/d0d1g          d2                                     Z<ej                             d3d4d5g          ej                             d* ej9        d6                    ej                             d/d0d1g          d7                                     Z=d8 Z>ej                             d* ej9        d+d,d-                    ej                             d e:e;                                          d.gz             d9                         Z?dS ):z>

Created on Fri Mar 01 14:56:56 2013

Author: Josef Perktold
    N)assert_allcloseassert_almost_equalassert_array_lessassert_equalassert_raises)confint_proportions_2indepmultinomial_proportions_confintpower_proportions_2indepproportion_confint%samplesize_proportions_2indep_onetailscore_test_proportions_2indep)HypothesisTestWarning)Holder)	res_binomres_binom_methodszagresti-coull
asymptoticexactwilsonbayes)agresti_coullnormalbetar   jeffreyscasemethodc                 b   |\  }}t          j        t          |                    }t          |         j        |         }t          |         j        |         }t          j        |          st          j        |          rt          j	        d           |dk    s||k    r| dk    rt          j	        d           | dk    r|dk    rt          j	        d           t          ||d|           }t          |d          }t          |d	          }t          |||gd
t          |          | z              d S )NzSkipping due to NaN valuer   r   z%Skipping nobs 0 or count and jeffreys   z<Skipping nobs is 30 and jeffreys due to extreme case problem皙?alphar         decimalerr_msg)r   indexprobci_methodsr   ci_lowci_uppnpisnanpytestskipr   maxminr   repr)r   r   countnobsidxres_lowres_uppcis           g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/stats/tests/test_proportion.pytest_confint_proportionr8   (   s2    KE4

!."8
9
9Co$S)Go$S)G	x 1BHW-- 1/000

etmm:)=)=;<<<

RSSS	E4tF	C	C	CB'1ooG'1ooGWg. $T

V 35 5 5 5 5 5    c                 ,   t          j        d                              dd          }dt          j        d          z  }t	          j        |          }t	          j        |          }t          ||d|           }t          ||d|           }t          ||d         j        |d	         j        fd
           t          |d         |d         d|           }t          |d         j        d         |d	         j        d         f|d
           t          |d         d         |d	         d         f|d
           t          |	                                |	                                d|           }t          ||d         |d	         fd
           t          |j
        d         |j
        d         d|           }	t          |	d         j        |	d	         j        f|d         j        d         |d	         j        d         fd
           t          ||d         d|           }
t          |
d         d         |d	         d         f|d
           t          |dz   |d         d|           }
t          |
d         d         |d	         d         f|d           d S )Nr"         
   )r;   r<   r   r   r   r!   vIh%<=rtol)r!   r;   -C6?)r*   arangereshapeonespd	DataFramer   r   valuestolistiloc)r   r1   r2   count_pdnobs_pdci_arrci_pdci12ci_lici_pdsci_arr2s              r7   test_confint_proportion_ndimrR   ?   s    IaLL  A&&ED|E""H|D!!Gt4GGGFx&,. . .EFU1X_eAho>UKKKKeDk4:T%+- - -DU1X_T*E!HOD,ABD       VAYt_fQio65IIII u||~~t{{}}D&,. . .EFU1XuQx0u====  a 0',q/&*6; ; ;FVAY%vay'781X_Q'q);<5J J J J !T
$(.0 0 0GWQZ%vay7EJJJJ !tDz(.0 0 0G WQZ%vay7DIIIIIIr9   c                      d} t          j        d| dd          }t          j        d| z  |d         |d         z
  d	z            }t          || d
           d S )N      r   r   r   g      (@r!   r   r;      r$   )smpropr   samplesize_confint_proportionr   )r2   r6   ress      r7   'test_samplesize_confidenceinterval_propr[   k   sb    D		"2t4	I	I	IB

.s4x"Q%"Q%-19L
M
MCT2......r9   c                  T    t          j        dd          } t          | dd           d S )N      ?皙?gAJ?rV   rW   )rX   proportion_effectsizer   )ess    r7   test_proportion_effect_sizera   r   s0    		%c3	/	/B.;;;;;;r9   c            
          ddl m}  |                                 D ]B\  \  }}}t          |j        d|          }t          |j        ||j        d| d|            Cd S )Nr!   )res_multinomialr   r   "z
" method, r#   )'results.results_multinomial_proportionsrc   itemsr	   proportionsr   cis	precision)rc   r   descriptionrG   ri   s        r7   $test_confint_multinomial_proportionsrl   w   s    HHHHHH+:+@+@+B+B 9 9'	&+-f.@$5;= = =JV%5777+77	9 	9 	9 	9 	99 9r9   c                      dD ]#} t          t          t          dgdz  |            $t          t          t          t          j        d          dz
             dD ]#}t          t
          t          dgdz  |           $d S )N)皙r   r!   g?   2   r    r!   )unknown_methodsisok_methodzunknown-glazrd   )r   
ValueErrorr	   r*   rB   NotImplementedErrorr   s     r7   #test_multinomial_proportions_errorsrv      s    ! - -j"AcBhe	- 	- 	- 	- 	- *=)B--!#% % % E / /)+JcBhv	/ 	/ 	/ 	/ 	// /r9   c                     t          j        g d                              dd          } t          j        g d                              dd          }t          j        ddg          }g d}t          j        |dd	
          }g d}t          j        |dd	
          }t          || d           t          |t          j        ||z
  d          d           t          ||d           d S )N)gnvB?gTw?L?        g&Od¨?gsʊ~?g"?gc@?gVE?g/E~ܻ?gW$U>?g\P?gG\+?gYfE?g a?r;   )g/x$?g"1?rx   gh?g:]?gu"?gx?g@?g6?gaS ?gy\?gDU?g|E?g]F?g<d?gQgښd?)8   皙?I   ;   >   W   :   r   
sison_glazrd   )rz   r   r|   r}   r~   r   r   h㈵>atolr   Mb@?)r*   arrayrC   rX   r	   r   maximum)ci01ci0	ci0_shiftpci_01ci_0s         r7   *test_confint_multinomial_proportions_zerosr      s/    8      %WR]] 	 (      %WR]]  +{344I%%%A21d:FH H HE###A1!T9EG G GD E4d++++D"*S9_a88tDDDDE4d++++++r9   c                        e Zd Zd Zd Zd ZdS )CheckProportionMixinc                    t          j        | j        | j        d           }t	          |d         | j        j        d           t	          |d         | j        j        d           t          j        | j        | j        | j        j	        d                   }t	          |d         | j        j        d           t	          |d         | j        j        d           t          j        | j        d         | j        d         | j
        j	                  }t	          |d         | j
        j        d           t	          |d         | j
        j        d           d S )Nvaluer   rV   rW   r!   )rX   proportions_chisquare	n_successr2   r   res_prop_test	statisticp_valueres_prop_test_val
null_valueres_prop_test_1)selfpts     r7   test_proptestz"CheckProportionMixin.test_proptest   sE   )$.$)4PPPBqE4#5#?LLLLBqE4#5#=rJJJJ )$.$)*.*@*KA*NP P PBqE4#9#CRPPPPBqE4#9#A2NNNN )$.*;TYq\*.*>*IK K KBqE4#7#A2NNNNBqE4#7#?LLLLLLr9   c                    t          j        | j        | j        d           }t	          |j        | j                   t          j        | j        | j        d          }t	          |                                | j                   t          j	        | j        | j        d          }t	          |j        |j        d t          | j                  dz
           d           d S )Nmultitest_methodhhommelr!   rV   rW   )rX   proportions_chisquare_allpairsr   r2   r   	pvals_rawres_ppt_pvals_rawpval_correctedres_ppt_pvals_holm"proportions_chisquare_pairscontrollen)r   pptpptds      r7   test_pairwiseproptestz*CheckProportionMixin.test_pairwiseproptest   s    3DNDI379 9 9CM4+ABBB3DNDI368 8 8C..00$2IJJJ8"&)hH H HDNCM:M3ty>>A;M:M,N$&	( 	( 	( 	( 	( 	(r9   c                     t          j        | j        d d         | j        d d         d           }t	          t          |j                  d           g d}t          |j        | j        |                    d S )Nr<   r   )r   r!   r<   )	rX   r   r   r2   r   r   r   r   r   )r   r   r3   s      r7   test_number_pairs_1493z+CheckProportionMixin.test_number_pairs_1493   s~    3DN2A24F48IbqbMEIK K K 	S''+++iiCM4+A#+FGGGGGr9   N)__name__
__module____qualname__r   r   r    r9   r7   r   r      sI        M M M$( ( (H H H H Hr9   r   c                        e Zd Zd Zd Zd ZdS )TestProportionc                    t          j        g d          | _        t          j        g d          | _        t          j        g d          | _        t          j        g d          | _        t                      }d|_        d|_        d|_	        t          j        g d          
                    d	d
d          |_        d|_        d|_        d|_        d|_        d|_        || _        t                      }t          j        dg          
                    d
d
d          |_        t          j        d	g          
                    d
d
d          |_        d|_	        t          j        g d          
                    d	d
d          |_        t          j        g d          
                    d	d
d          |_        d|_        d|_        d|_        d|_        || _        t                      }d|_        d
|_        d|_	        d|_        d|_        t          j        ddg          |_        d|_        d|_        d|_        || _        d S )N)r|   Z   r   K   )V   ]      R   )gDu?n?gC?ggn`?g۾?gws?)gwGT?r   绶ws?g)?r   r   g3O b =&@r<   guJ?)Κ)?g{?g?gEJԮD?   r!   F)orderNULL	two.sidedzG4-sample test for equality of proportions without continuity correctionzsmokers2 out of patientsg~g*@gv R%?)?r   r   r   zA4-sample test for given proportions without continuity correctionz;smokers2 out of patients, null probabilities rep(c(0.9), 4)g_@gv´?r   r   g]'$OD?g
8s?z71-sample proportions test without continuity correctionz4smokers2[1] out of patients[1], null probability 0.9)r*   r   r   r2   r   r   r   r   	parameterr   rC   estimater   conf_intalternativer   	data_namer   r   r   )r   r   r   r   s       r7   setup_methodzTestProportion.setup_method   s   "6"6"677H11122	!# + + + " " #%( , , , # #
 "3"# 4!# + + + " " wq#w&& 	 $. !+$/! ?"<* #HH&(h0 ' 'wq#w&& 	# ')h0 ' 'wq#w&& 	# %6!%'X / / / & & wq#w&& 	" (*x 1 1 1 ( (wq#w&& 	$ &0"(3%#f &c#!2 !(($5!$%!"3#4 %("#%8->-?-A $B $B &1#!Z$Z!.r9   c                     t          j        ddg          }t          j        ddg          }t          j        ||d           \  }}t	          |d           t	          |d           d S )Nro   rU   S   c   r   gyt/yg;u`?)r*   r   rX   proportions_ztestr   )r   r1   r2   statpvals        r7   test_default_valuesz"TestProportion.test_default_values$  sk    !R!!xR!!-eTFFF
dD"5666D"566666r9   c                     d}d}d}t          j        |||          \  }}t          |d           t          |d           t          t          t           j        ||d            d S )Nro   r   r   r   gu?g}r'=?)rX   r   r   r   rt   )r   r1   r2   r   r   r   s         r7   test_scalarzTestProportion.test_scalar,  sn    -eTGGG
dD.111D.111j&":E4tTTTTTTr9   N)r   r   r   r   r   r   r   r9   r7   r   r      sJ        A/ A/ A/H7 7 7U U U U Ur9   r   c                  l   t                      } d| _        d| _        d| _        ddg| _        d| _        d| _        d| _        d	| _        d
| _	        t                      }d|_        d|_        d|_        ddg|_        d|_        d|_        d|_        d	|_        d
|_	        t                      }d|_        d|_        d|_        ddg|_        d|_        d|_        d|_        d	|_        d
|_	        d|fd| fd|fg}|D ]4\  }}t          j        ddd|          }t          ||j        d           5t          j        dddd          }t          j        dddd          \  }}	t          ||j        d           t          |	| j        d         d           t          ||j        d         d           d S )N3      g-$Ǻl?r   g&dB?g	jZ?gUUUUUU?lesszExact binomial testz
51 and 235gs0,j.?g.6?r!   greatergJfJ"f?gK-A?g+H3?r   largersmaller	two-sidedpropr   rV   rW   r   r   r   r{   )r   r   r   r   r   r   r   r   r   r   rX   
binom_testr   r   )
binom_test_lessbinom_test_greaterbinom_test_2sidedalltestsaltres0rZ   ci_2sr(   r)   s
             r7   test_binom_testr   7  s"    hhO "O #O/O !#56O1O!'O"(O2O ,O  #% #& !4#5q"9"4$*!%." 5#/  "$"% 2"46H!I!3#) $/!4".-.O,/02H  ; ;	TCf#FFFCr::::: %b#T&IIIE.r3c6<> > >NFF092FFFF 8 ;RHHHH 2 ;A >KKKKKKr9   c                     d} d}d}d}t          j        ||| |          \  }}t          ||           t          j        ||||          }t	          ||            t          j        |dz   |||          }t	          | |           d}t          j        ||| |          \  }}t          |d	           t          j        ||||          }t	          ||            t          j        |dz
  |||          }t	          | |           d
}t          j        ||| |          \  }}t          j        ||||          }t	          ||            t          j        |dz
  |||          }t	          | |           t          j        ||||          }t	          ||            t          j        |dz
  |||          }t	          | |           d S )Nr      333333?r   )r    r   r   r!   r   r   r   )rX   binom_test_reject_intervalr   r   r   )r    r2   r   r   r(   r)   r   s          r7   test_binom_rejection_intervalr   r  sM    EDDK6tTCNP P PNFFVT.9; ; ;DdE"""VaZD.9; ; ;DeT"""K6tTCNP P PNFFVT.9; ; ;DdE"""VaZD.9; ; ;DeT"""K6tTCNP P PNFFVT)46 6 6DdE"""VaZD)46 6 6DeT"""VT)46 6 6DdE"""VaZD)46 6 6DeT"""""r9   c                  L   t          j        dddd          } t          j        ddg| R  }t          |dgdz  d	           t          j        d
ddd          } t          j        d
dg| R  }t          |dgdz  d	           t          j        t	          j        dd          ddd          } t          j        t	          j        dd          d| d         | d                   }t	          j        |          }t          |dt	          j        |j                  z  d	           d S )Nr=   rT   r   r{   )r   r    r   r<   rU   rW   ro   r!   r   皙?)	rX   r   
binom_tostr   r*   rB   asarrayrD   shape)r6   bts     r7   test_binom_tostr     s1    
	"2r&	D	D	DB		2r	'B	'	'	'BTFQJ3333		"1bs	C	C	CB		1b	&2	&	&	&BTFQJ3333 
	"29Q#3#3R)-
/ 
/ 
/B		29Q++RA1	>	>B	BBEBGBH$5$55rBBBBBBr9   c                     dt          j        ddd          z   } t          j        ddd| d	          }t          j        g d
          }t          ||d           t          j        ddd          }d}t          ||           t          j        ddd          }t          j        dd|dd	          }t          j        g d          }t          t          j	        |d          |d           d S )Nr   r   g
ףp=
?r=   r]   gffffff?i  r   )p_altr    )
gS?g+?g rh?g&W?g%u?gNё\C?g?W[?g??g%u?g(?r   rW   )i  iL  rT      r^   
rx   rx   rx   RI&¶?Gx$(?n4@?JY?6>W[?z6>W[?7d?)
r*   linspacerX   power_binom_tostr   r   binom_tost_reject_intervalr   rB   r   )r   power	res_powerrej_intres_rej_intr2   s         r7   test_power_binom_tostr    s   "+ar***E#CcdKKKE = = = > >Iy!4444/S#>>GK+&&&
 9Rb!!D#Cd#TJJJE 5 5 5 6 6I 
5!,,iCCCCCCr9   c                     t          j        ddddddd          d	         } t          | d
d           t          j                    5  t          j        dt                     t          j        ddt          j        ddd          dddd          d	         } t          j	        g d          }t          t          j
        | d	          |d           t          j        ddt          j        ddd          ddddd dd
  
        d	         } t          j	        g d          }t          t          j
        | d	          |d           t          j        ddt          j        ddd          dddddd	  	        d	         } t          j	        g d          }t          t          j
        | d	          |d           d d d            d S # 1 swxY w Y   d S )Nr{   r   r=   r   r   Tbinom)r   r    discretedistr   gm4@?r   rW   ignorer^   rT   r   r]   F)
rx   rx   rx   r   r   gI+?gV-?r   g rh?r   r;   r!   r   r    r
  r  variance_prop
continuitycritval_continuityr   )r   r    r
  r  r  r  )
rx   rx   rx   r   r   r   r   r   r   gRI&?)rX   power_ztost_propr   warningscatch_warningssimplefilterr   r*   rB   r   r   r  r  s     r7   test_power_ztost_propr    s   #Cb4"&W6 6 6679Evq1111		 	"	" H Hh(=>>>'S")BR2H2H.1-46 6 6679 H & & & ' '	 	BJua00)QGGGG 'S")BR2H2H.1-4D34L L L MNO
 H 6 6 6 7 7	 	BJua00)QGGGG'S")BR2H2H.1-4C;<> > > ?@A
 H 6 6 6 7 7	 	BJua00)QGGGG=H H H H H H H H H H H H H H H H H Hs   E0GGGc                  H   t          j        ddgddg          } ddlm}m}  || dd          }t          |dd	gd
            || ddd          }t          |d         d         dd
           t          |d         d         dd
           t          |d         d           d S )Nr!   r      i  )zconfintztostr{   )r    ddofgAf?gL7A`?r   g
ףp=
?gRQ?)r  g"@r;   g~zrA   )r*   repeatstatsmodels.stats.weightstatsr  r  r   r   )xfairr  r  r   rZ   s        r7   
test_ztostr    s    Iq!fsGn--E >=======8E1---D/333
%tT
*
*
*CAq	61---Aq	7A...c!ff%%%%%r9   c                  n   t          j        t                    5  t          j        ddt          j        ddd          dddddd	d	

  
        d	         } d d d            n# 1 swxY w Y   t          j        g d          }t          t          j	        | d	          |d           t          j        t                    5  t          j        ddt          j        ddd          ddddddd	

  
        d	         } d d d            n# 1 swxY w Y   t          j        g d          }t          t          j	        | d	          |d           t          j        t                    5  t          j        ddt          j        ddd          ddddddd	

  
        d	         } d d d            n# 1 swxY w Y   t          j        g d          }t          t          j	        | d	          |d           t          j        t                    5  t          j        ddt          j        ddd          ddddddd

  
        d	         } d d d            n# 1 swxY w Y   t          j        g d          }t          t          j	        | d	          |d           t          j        t                    5  t          j        ddt          j        ddd          ddddd d	d	

  
        d	         } d d d            n# 1 swxY w Y   t          j        g d          }t          t          j	        | d	          |d           d S )Nr^   r   rT   r   r]   r   Fnormr   r  )
rx   rx   rx   gݼiO?gk?g?g-9?gmb?gn?gFm?r   rW   r!   )
rx   rx   g= P?gs=?gd-v?gvȋT1x?g,Ѝ?gxhG?gv10?g@ I?T)
rx   rx   rx   ʶ?a\q/?ʔ?g[7?SX#?F=D[?gN8P?)
rx   rx   rx   r"  r#  r$  gSii?r%  r&  gs?)
rx   rx   rx   rx   gY'WF]J?g Y?g6?g 7D?g =J?go0J?)
r,   warnsr   rX   r  r*   rB   r   r   r   r  s     r7   test_power_ztost_prop_normr(    sN    
+	,	, O O'S")BR2H2H.1-3334L L L MNOO O O O O O O O O O O O O O O  J J J K KI 
5!,,iCCCC 
+	,	, O O'S")BR2H2H.1-3334L L L MNOO O O O O O O O O O O O O O O  & & & ' 'I 
5!,,iCCCC 
+	,	, O O'S")BR2H2H.1-3334L L L MNOO O O O O O O O O O O O O O O  J J J K KI 
5!,,iCCCC 
+	,	, O O'S")BR2H2H.1-3334L L L MNOO O O O O O O O O O O O O O O  J J J K KI 
5!,,iCCCC 
+	,	, O O'S")BR2H2H.1-3434L L L MNOO O O O O O O O O O O O O O O  H H H I II 
5!,,iCCCCCCsY   9AA#&A#>9DD
D"9F''F+.F+9III*9K//K36K3c                  D   t          j        dddd          } t          j        ddd          }t          | d         |d         d           t          j        t	          j        dd	g          t	          j        dd
g          dd           } t          j        t	          j        dd	g          t	          j        dd
g                    }t          | d         |d         d           t          j        t	          j        dd	g          t	          j        d
dg          dd           } t          j        t	          j        dd	g          t	          j        d
dg                    }t          | d         |d         d           t          d|d         d                    d S )N   g      4@r]   )r   prop_varr   r!   rV   rW   r=   rT   r   iP  ry   )rX   r   r   r   r*   r   r   )res1res2s     r7   test_proportion_ztestsr.  A  s    #B3EEED'Cs;;;DQa"5555#BJBx$8$8$&JRy$9$9*+d< < <D '
B8(<(<(*
C9(=(=? ?D Qa"5555 #BJBx$8$8$&JE{$;$;*+d< < <D '
B8(<(<(*
B;(?(?A AD Qa"5555ab!%%%%%r9   c            	         d\  } }d\  }}	 t          | |||ddd          }t          |ddgd	
           t          | |||ddd          }t          |ddgd	
           t          | |||ddd          }t          |ddgd	
           t          | |||ddd          }t          |ddgd           t          | |||dd          }t          |ddgd           t          | |||dd          }t          |dd gd           t          | |||ddd!          }t          |d"d#gd           t          | |||d$d%          }t          |d&d'gd           t          | |||d$d(          }t          |d)d*gd           t          | |||d$d+          }t          |d&d,gd           t          | |||d-dd          }t          |d.d/gd           d S )0N   "   r!   r2  newcombdiffr   )r   comparer    g~jt?g(\?g{Gzt?r   waldgV-?g#~j?agresti-caffog~jt?gS㥛?scoreTr6  r   
correctiongy&1?gʡE?gQ?r?   ratiologr6  r   gQ?6   g{Gz?log-adjustedgq=
ףp?   Fg\(\?+   orlogitgGz?J   logit-adjustedg\(\?&   logit-smoothed<   
odds-ratiog)?g+O ;L@r   r   )count1nobs1count2nobs2r6   s        r7   test_confint_2indeprP  \  s   MFEMFE8 
$FE65+4,2$
@ 
@ 
@B BU3333	#FE65+1,2$
@ 
@ 
@B BU3333	#FE65+:,2$
@ 
@ 
@B BU3333	#FE65,2+2t
E 
E 
EB BT2222 
$FE65,3+0
2 
2 
2B Br
....	#FE65,3+9
; 
; 
;B Br
....	#FE65,3+2u
F 
F 
FB Br
.... 
$FE65,0+2
4 
4 
4B Br
....	#FE65,0+;
= 
= 
=B Br
....	#FE65,0+;
= 
= 
=B Br
....	#FE65,8+2t
E 
E 
EB B9-D999999r9   c            	         d\  } }d\  }}d}t          | |||ddd          }t          ||d	           d
}t          | |||dd          }t          ||d	           d}t          | |||ddd          }t          ||d	           d}t          | |||ddd          }t          ||d           d}t          | |||ddd          }t          ||d	           d S )Nr0  r3  )g˰?g.B@?r5  r9  Tr:  gMb`?r   )g.7Ǉ?gfYr?r8  r>  gv!>)g`ţޝ?g`$0?r7  F)g^?g`9>L@rJ  r   r?   )gh'?g۞ IE@r<  rK  )rL  rM  rN  rO  r6   ci1s         r7   test_confint_2indep_propcisrS    sl    MFEMFE 
B
$VUFE-3,3F F FC C%((((	B
$VUFE-3,;= = =C C$''''	B
$VUFE-3,2uF F FC C$'''' 
B
$VUFE-9,3F F FC C$'''' 
B
$VUFE-4,3G G GC C$''''''r9   c            
         d\  } }d\  }}dD ]}t          | ||||          }t          |j        |j        d           |dk    rdnd	}t          | |||||d
          d d         \  }}t          | |||||dz   d
          d d         \  }	}
t          ||	d           t          ||
d           t          | |||||dz
  d
          d d         \  }	}
t          ||	d           t          ||
d           d S )Nr0  r3  )r5  r<  rC  )r6  绽|=r?   r5  r         ?F)r6  r   return_resultsr;   :0yE>)r   r   
prop1_null
prop2_null)rL  rM  rN  rO  corZ   vals0pv0s1pv1s              r7   test_score_test_2indepra    s   MFEMFE% - -+FE65468 8 8UCCCC <<aaR/vu8:#?DF F FFHqbJC 0vu8:#+?DF F FFHqbJC 	BT****St,,,,/vu8:#+?DF F FFHqbJC 	BT****St,,,,,'- -r9   c                     d} d\  }}d\  }}g d}|D ]\  }}t          ||||||| d          \  }}	t          j        |||||||d          }
t          |
j        | d	           t          j        |||||	||d          }
t          |
j        | d	           t          j        |||||	||d
dd
  
        \  }}t          || dz  d	           t          j        |||||||ddd
  
        \  }}t          || dz  d	           d\  }}t          ||||||| d          \  }}	t          j        |||||||d          }
t          |
j        | d	           d S )Nr   r0  r3  
)r5  r8  )r5  r9  )r5  r7  )r<  r=  )r<  r@  r<  r9  )rJ  rD  )rJ  rF  )rJ  rH  )rJ  r9  Fr6  r   r    r;  )r   r6  r   r;  rU  r   r   )r   r6  r   r   r;  rW  r;   r   rd  T)r   rX   test_proportions_2indepr   pvalue)r    rL  rM  rN  rO  methods_bothr[  r   lowupprZ   _pvs                r7   test_test_2indeprm    s    EMFEMFE  L # 3 3
F-feVU6849eM M MS ,vuC%1 1 1 	
E6666,vuC%1 1 1 	
E6666.E65R!y$U< < <2 	EAIE2222.E65R!x$U< < <2 	EAIE22222 "JB)&%24V05$H H HHC 
(E65Rd, , ,C CJE222222r9   c                     d} d\  }}d\  }}ddgd}}ddgd}}g d}	|	D ]\  }
}t          |||||
|d| z  d	
          \  }}t          j        ||||||dz  |
|d		  	        }t          |j        | d           t          j        |||||dz  ||
|d		  	        }t          |j        | d           |dk    r d S |}t          j        |||||dz  ||
|d		  	        }t          |j        d         | d           d S )Nr   r0  r3  r1  r!   r2  rc  r;   Fre  g?r:  rU  r   gffffff?rH  r   )r   rX   tost_proportions_2indepr   rg  )r    rL  rM  rN  rO  count1vnobs1vcount2vnobs2vrh  r[  r   ri  rj  rZ   r,  s                   r7   test_equivalence_2indeprt  2  s    EMFEMFE!fbVG!fbVG  L # : :
F-feVU6845I9>@ @ @S ,vuc3:r%1 1 1 	
E6666,vucDj#r%1 1 1 	
E6666 %%%FF,&#*c2%1 1 1 	
1u5999993: :r9   c                  f   d\  } }d\  }}t                      }g d|_        ddg|_        t          j        ||| |d          }t          |j        |j        d	           t          |j        |j        d
	           g d}t          j        |d          }ddg}t          |j        |d
	           d S )N)   P   )$   (   )g6[?gsA?ga4?gQ@gS㥛@r   rq   r   r   r<   )C   	   r1  rv  g6^?gLMw?)	r   p0_rootsr   rX   _confint_riskratio_koopmanr   _p_rootsconfint_confint_riskratio_paired_nam)	x0n0x1n1results_namrZ   tablerespci_olds	            r7   test_score_confint_koopman_namr  e  s     FBFB ((K333K!5>K

+BB4
H
H
HCCL+"6Q????CK!5A>>>>NNE/TBBBD"FDL&q111111r9   c            	         t          ddd          } t          | j        dd           t          dddddd	d
          }t          |dd           t          dddd           t          | j        dd           t          dddd          } t	          | j        d           t          ddddd          } t          | dd           t          dddd          } t          | dd           t          dddddd	d
          }t          |dd           d	dlm} t          dddd          }t          |j        dd             |ddd!|j        |j        "          }t          |dd           t          dddddd	d
          }t          ||d#$           d%}d&}t          d'd(|d)          }t          |j        |d            t          d'd(|d*          }t          ||d+$           d S ),Ng      пg      ?g8b->-S@r   rX  r   r!   r   r   r   )r<  r    r   r   r   g*O@r   )r   g      ?r]   r   F)r   rW  g333333ÿg?g#T@)rW  )normal_sample_size_one_tailgy&1gQ?i&  rV  )r<  gB	ܺ?gHz>r   )std_nullstd_alternativer>   r?   g,KE?   rn   g?g       @r;   rA   )	r
   r   r  r   r   statsmodels.stats.powerr  r  std_alt)pow_nr  rZ   n2pwr_sts         r7   test_power_2indepr    s   #E4::DDJ$////-eT3a48:E	G 	G 	GA Axd++++UD(	JJJJDJ$////#D#xYOOODdj$'''#D#xX38: : :DD#D))))#E4OOODD#D))))-eT3a48:E	G 	G 	GA AwT**** DCCCCC
"65#R
@
@
@CCIyt4444##FIx-0\47K	A 	A 	AA As&&&&	.vui56d!;F
H 
H 
HB B&&&&  FA
"4ar
:
:
:CCIvD1111	.tS&	J	J	JBB%%%%%%r9   r1   r=   r   ro   r   
array_likeFTc           
          |r| gdz  n| }d}t          | ||          }t          || z
  ||          }t          t          j        |          dt          j        |d d d                   z
             d S )Nr<   d   rd   rV  ry   r   r   r*   r   )r1   r   r  _countr  abs          r7   test_ci_symmetryr    s     '1eWq[[EFA5!F333A1u9a777ABHQKKrx$$B$'8'8!899999r9   r2   /   rp   0   c           
         |r|gdz  n|}|r	| |z
  gdz  n| |z
  }t          || d          }t          || d          }t          t          j        |          dt          j        |d d d                   z
             d S )Nr<   r   rd   rV  ry   r  )r2   r1   r  r  nobs_m_countr  r  s          r7   test_ci_symmetry_binom_testr    s     '1eWq[[EF)3ED5L>A%%L64===A<lCCCABHQKKrx$$B$'8'8!899999r9   c                  j   t          j        t                    5  t          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          t	          j        dg          dd           d d d            n# 1 swxY w Y   t          dd	d          } t          d
d	d          }t          d
dd          }t          | |           t          | |           d S )Ng      %@rT   r   rd   r=   g     4@g$@g      5@r     g     G@)r,   raisesrt   r   r*   r   r   )r  r  cs      r7   test_int_checkr    s   	z	"	" : :4L9999: : : : : : : : : : : : : : :	z	"	" : :2tL9999: : : : : : : : : : : : : : :	z	"	" F F28TF++REEEEF F F F F F F F F F F F F F F 	4L999A2r,777A2tL999AAqAqs1   9= =A<<B B  &CCCc           
          d}t          | | g||          }t          || z
  || z
  g||          }t          t          j        |          dt          j        |d d d                   z
             d S )Nr  rd   rV  ry   r  )r1   r   r  r  r  s        r7   test_ci_symmetry_arrayr    sy    
 	AE5>1V<<<AAIq5y11VDDDABHQKKrx$$B$'8'8!899999r9   )@__doc__r  numpyr*   numpy.testingr   r   r   r   r   pandasrE   r,   statsmodels.stats.proportionstats
proportionrX   r   r	   r
   r   r   r   statsmodels.tools.sm_exceptionsr   statsmodels.tools.testingr   2statsmodels.stats.tests.results.results_proportionr   r   r'   markparametrizer8   rR   r[   ra   rl   rv   r   r   r   r   r   r   r  r  r  r(  r.  rP  rS  ra  rm  rt  r  r  rB   listkeysr  r  r  r  r   r9   r7   <module>r     s.                           - - - - - - - - -                B A A A A A , , , , , , [ [ [ [ [ [ [ [#2(!$%	  	**.115 5 21 +*5* >22(J (J 32(JV/ / /< < <
9 9 9/ / /#, #, #,L(H (H (H (H (H (H (H (HVUU UU UU UU UU) UU UU UUp8L 8L 8Lv+# +# +#^C C C&D D D,#H #H #HL& & &"=D =D =D@& & &6S: S: S:l&( &( &(R- - -693 93 93x0: 0: 0:f2 2 262& 2& 2&j )")BA"6"677dd>&&(())\N:  t}55: : 65  87
: "b**)")B--00t}55: : 65 10 +*:    )")BA"6"677dd>&&(())\N: : :  87: : :r9   