L i*ddlZddlmZmZmZmZmZddlZddlm Z ddl m Z ddl mZddlmZmZmZmZdZdZGd d Zd Zej0j3d gd dZy)N) assert_equalassert_array_equalassert_array_almost_equalassert_approx_equalassert_allclose)raises)stats)xlogy)margins expected_freqchi2_contingency associationctjdg}t|}tt |d|d}t |tjdgtjdgg}t|\}}tjdgg}tjdgg}t ||t ||tj djdd}t|\}}tjdgdgg}tjgdg}t ||t ||tj d jdd d }t|\}}}tjd ggd ggg}tjdgdgdggg}tjgdgg}t ||t ||t ||y)Nr 3)r rB<\|)rrHN)nparrayr rlenrarangereshape)amm0m1 expected0 expected1m2 expected2s h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/stats/tests/test_contingency.py test_marginsr2 s ! A AQ 1Br288QC=) 1#A QZFB1#I1#Ir9%r9% " a#A QZFB2$&I012Ir9%r9% " aA&AJBBB4&C5'*+IB4"u-./I+,-.Ir9%r9%r9%cttdgtjdgtjddgddggddgddggddgddggg}t|}t|tj|tjgdgdg}t|}tjgdgdg}t ||y) Nr?rr)rr)r6r6r6)(@r7g0@)2@r8g8@)rr r$r% ones_liker)observedecorrects r1test_expected_freqr=,s}aS)288SE?;xx1a&1a&)QFQF+;q!fq!f=MNOHhAq",,x01xx|45HhAhh9:Ga)r3cReZdZdZdZdZdZdZejjdddgd Z ejjd Z ejjejjd ejej fd Zd Zy)TestChi2Contingencycptjddgddgg}t|d\}}}}t|dt|dt|dt ||tjgd}t|d\}}}}t|dt|dt|dt ||y) NrrF correctiongr5)rrrr)r$r%r rrselfobschi2pdofexpecteds r1test_chi2_contingency_trivialz1TestChi2Contingency.test_chi2_contingency_trivial:shhAA'(!1#%!HahT3QS!3)hhy!!1#%!HahT3QS!3)r3ctjgdgdgdgdggdgdgdgdgg}t|\}}}}t|d d t|d d t |dtjddgddggddgddgggddgddggddgddgggg}t|\}}}}t|dd t|dd t |dy)N)r")# )r )rrr)r/rP)rLr)rT )rR!g{GY@) significantg"j,5#=rrrPrrrMrgjt!@gQI?)r$r%r rrrCs r1test_chi2_contingency_Rz+TestChi2Contingency.test_chi2_contingency_RMs<hh  "2#!6ahD&a8Aya8S"LhhBxBxBxBxBxBxBxBx  "2#!6ahD%Q7Av15S"r3c tjddgddgg}t|dd\}}}}t|dt |||z j zt|dd\}}}}|tjd d gd d ggz}t|dt |||z j ztjgd gd g}t|d \}}}}t|dt |||z j zy)NrrZzlog-likelihoodF)lambda_rBrTgg?)rrr)rrr)ra)r$r%r rr sum)rDcgrGrHr;c_corrs r1test_chi2_contingency_gz+TestChi2Contingency.test_chi2_contingency_gs HHr2hR) *'3C38: 1c11U1ac]..001'3C379 1c1RXXc{S$K8991U66!8488::; HHlL1 2'3CD 1c11U1ac]..001r3ctjddgddgg}ttt|tjddgddgg}ttt|tj d}ttt|y)Nrrrr)rr)r$r% assert_raises ValueErrorr empty)rDrEs r1test_chi2_contingency_bad_argsz2TestChi2Contingency.test_chi2_contingency_bad_argssshhR1a&)*j"2C8hhAA'(j"2C8hhvj"2C8r3crtjddgddgg}t|d}t|ddy)Ni%rrrrg-q=rtol)r$r%r r)rDr:rGs r1#test_chi2_contingency_yates_gh13875z7TestChi2Contingency.test_chi2_contingency_yates_gh13875s:88dAYA/0 X &q )15)r3rBFTctjddgddgg}t||}t|j|j |j |jf|y)NrrrA)r$r%r r statisticpvaluerHr )rDrBrEress r1 test_resultzTestChi2Contingency.test_resultsNhhAA'(sz:cmmSZZ#:K:KLcRr3c^tjdjdd}t|dj}t j |j}t jd}t|d|}t|j|t|j|d y) NrrFrAiP) n_resamplesrBmethodgV瞯uv#Ou7S]]CMM2 CJJT:SWWbff%S&&(9(9:r3ctjdjddd}tj}d}t j t|5t|d|dddtjdjdd}tj}d}t j t|5t|| dddtj}d }t j t|5t|dd| dddd }d }t j t|5t|d|dddtjtjj}d}t j t|5t|d|dddy#1swYXxYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw)Nrrz7Use of `method` is only compatible with two-way tables.)matchFrxrz+`correction=True` is not compatible with...)ryz%`lambda_=2` is not compatible with...)rBraryherringz;`method='herring'` not recognized; if provided, `method`...)rz4If the `method` argument of `chi2_contingency` is...) r$r'r(r r{pytestrrjr MonteCarloMethodnormr)rDr|rymessages r1test_resampling_invalid_argsz0TestChi2Contingency.test_resampling_invalid_argss ! $$Q1-((*K ]]:W 5 E UuV D E ! $$Q*((*? ]]:W 5 3 U6 2 3'')9 ]]:W 5 P Uua O PO ]]:W 5 E UuV D E''EJJNN;H ]]:W 5 E UuV D E E- E E 3 3  P P  E E  E Es<F=G  GG"%G.=G GG"G+.G7N)__name__ __module__ __qualname__rJr^rfrlrprmark parametrizeruslowrr r{rrrr3r1r?r?9s*&\| 29 * [[\E4=9S:S  [[<< [[ [[X(?(?(-(>(>(@A ;A ;Er3r?c tttddgddggdtttddggddgggdtttddgddggdttttjddgd dggt dy) NrrrrXcramerrhrdd)dtype)rirjrr$r%objectrr3r1test_bad_association_argsrs*kQFQF+;SA*kaVH1vh+?J*kRHq!f+=xH*k((QFT1I.f=xIr3zstat, expected))rg?) tschuprowg:ǰ`ڳ?)pearsong!2q܍?crtjgdgdgdg}t||}t||y)N)rrUrrr)r[rrTrVrP)rRrrrrP)r:ry)r$r%rr)statrIobs1r)s r1 test_assocrs8 88))(* +D T$/AAx r3)numpyr$ numpy.testingrrrrrrrriscipyr scipy.specialr scipy.stats.contingencyr r r rr2r=r?rrrrrr3r1rsv,,*DD&> *TETEn I)<=! =!r3