L i'YnddlmZmZmZddlZddlmZmZm Z m Z m Z m Z ddl Z ddl mZdZdZe j$j'dde j(d e j$j*g gd Ze j$j'dde j(d e j$j*g gd Zd ZdZGddej4ZGddej4ZGddej4ZdZdZdZ dZ!gdZ"e j$j'de"ddgze j$j'de"dZ#dZ$d Z%d!Z&d"Z'e j$j*d#Z(d$Z)e j$j*d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/y)+)statslinalg integrateN)assert_almost_equalassert_ assert_equalassert_array_almost_equalassert_array_almost_equal_nulpassert_allclose)raisescDtjjd}d}|jdd|}|j }|j d}t j|}tjgd}|jtj|j}}t||t jj|dddf||jd |j z d tj"d d d} |j%| } t jj| ||} | d| dz } t'tj| | z dz| zdk|j)|tj*} |j)tj* |}t-| ddt-|ddt-|j/|tj*| dt-|j/tj* ||dt-|j1|| dzj| zdt-|j3||dz| | zj| zdy)Nr)ddofg??g?locscaleaxisvIh%,=rtol{Gz?rdecimal )nprandom default_rngnormalmeanstdr gaussian_kdeasarraydatasetsqrt covariancer normpdfsumnlinspaceevaluaterintegrate_box_1dinfr integrate_box integrate_kdeintegrate_gaussian)rng n_basesamplexnxnmeanxnstdgkdexxrrxskdepdfnormpdf intervallprob1prob2s c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/stats/tests/test_kdeoth.py test_kde_1drI s ))   (CL Aq, 'B WWYF FFFNE   b !D O $Brwwt7C R r!T'{59==2=FO  RC B ]]2 FjjnnRV5n9G11 I BFFFW$q( )) 3d :;  ! !&"&& 1E  ! !266'6 2EsA.sA.**6266:E2N**BFF7F;UBO**40))3Q@//qA,,.y8!Ec tjjd}d}|jdd|}|j|}tj||}tj tj||z dz|}t j||}tjgd}|jtj |j} }t jj} t||tj| |dddf|| |jzd d tj d dd} |j#| } t jj| ||} | d| dz }t%tj| | z dz|zdk|j'|tj(}|j'tj( |}t+|ddt+|ddt+|j-|tj(|dt+|j-tj( ||dt+|j/|| dzj|zdt+|j1||dz| | zj|zdy)Nrrrrweightsr rrrrrrrrrr!rr"r$)r%r&r'r(averager.rr+r,r-r/r0r1r r2rMr4r5rr6r7rr8r9r:)r;r<r=wnr>r?r@rArrr1rBrCrDrErFrGs rHtest_kde_1d_weightedrP1sA ))   (CL Aq, 'B L !B ZZB 'F GGBJJ6 A~r: ;E   b" -D O $Brwwt7C **..C R s2ag;Cu5 D2N  RC B ]]2 FjjnnRV5n9G11 I BFFFW$q( )) 3d :;  ! !&"&& 1E  ! !266'6 2EsA.sA.**6266:E2N**BFF7F;UBO**40))3Q@//qA,,.y8!ErJr<r)marksc "tjjd}tjddg}tjddgddgg}|j |||j }t j|}tjddgd d gd d gg}|dddddf|jj z }t jj}t||j |||j jd|jz dt jj} ddgddg} } | |jj z | |jj z } } t|j!| | || | | |j|jd|jz dtj"ddddddf\}}tj$|j'|j'g}|j)|}|j+dd}t jjtj,||g||}|j'd|j'dz }t/tj||z dz|dzzdkd}d}|j!||dg||g|}|j!||g||dg|}t1|dd t1|dd t1|j3||dzj|dzzd t1|j5||||zj|dzzd y)!Nr?@@@sizerr covrrrrrr; lower_limitr_r;gƠ>rr@@rr)r_r!}Ô%I}Ô%ITrr")r%r&r'arraymultivariate_normalTrr+r,r-r1r r/r2r3cdfr8mgridvstackravelr5reshapedstackrrr9r:)r<r;r)r/r=r@rAargr1rklohilo_hi_xy grid_coordsrCrDrEsmalllargerFrGs rH test_kde_2dr{\s6 ))   (C 88S#J DC:Sz23J z E G GB   b !D aVaVaV, -B QaZ.4<<>> )C  # # ' 'C RTT  CT__%))r)2TVV;   # # ' 'C"X1vBDLLNN"B$7C 2rs+ CSdoo3?CCCLtvvU  88BqIr!Dy( )DAq))QWWY 23K ]]; 'F ^^C %F''++BIIq!f,=15:,GG ! qwwy|+I BFFFW$q( )Y\ :T AB E E   tAw/%S  IE   u~tAw/?S  IEsA.sA.**40)9a<8!E//jA,,. 1 =qJrJc \tjjd}tjddg}tjddgddgg}|j |||j }|j |}tj||}tjdd gd d gd d gg}|dddddf|jj z }tjj} t||j tj| ||j|jzddtjj } ddgddg} } | |jj z | |jj z }} t|j#| | |tj| || |j||jzddtj$ddddddf\}}tj&|j)|j)g}|j+|}|j-dd}tjjtj.||g||}|j)d|j)dz }t1tj||z d z|d zzdkd}d}|j#||dg||g|}|j#||g||dg|}t3|d d!t3|d d!t3|j5||d zj|d zzd !t3|j7||||zj|d zzd !y)"NrrTrUrVrWrXrLrr rZr[r\r]r^rrrrr`rrarbgh㈵>rrrdrrer!rfrgrr")r%r& RandomStaterhrirjrandrr+r,r-r1r r2r/rMrkr8rlrmrnr5rorprrr9r:)r<r;r)r/r=rOr@rArqr1rkrrrsrtrurvrwrxrCrDrEryrzrFrGs rHtest_kde_2d_weightedrsF ))   (C 88S#J DC:Sz23J z E G GB , B   b" -D aVaVaV, -B QaZ.4<<>> )C  # # ' 'C RTT  s3DOO,t||;"E   # # ' 'C"X1vBDLLNN"B$7C 2rs+ s3CT__#F||"$ &   88BqIr!Dy( )DAq))QWWY 23K ]]; 'F ^^C %F''++BIIq!f,=15:,GG ! qwwy|+I BFFFW$q( )Y\ :T AB E E   tAw/%S  IE   u~tAw/?S  IEsA.sA.**40)9a<8!E//jA,,. 1 =qJrJcd}tjjd}d}|jdd|}t j |}t j ||}t j ||j }tjddd }|j|}|j|} t|| |j|} t|| tttj |d y) Ncbtj|jd|jdzz Sz*Same as default, just check that it works.gr[)r%powerr3dkde_objs rH scotts_factorz0test_kde_bandwidth_method..scotts_factors$xx 3 ! #455rJr2rr bw_methodrr3 wrongstring r%r&r'r(rr+factorr4r5r assert_raises ValueError rr;r<r=r@gkde2gkde3rBrCkdepdf2kdepdf3s rHtest_kde_bandwidth_methodrs6 ))   (CL Aq, 'B   b !D   r] ;E   rT[[ 9E R" B ]]2 FnnR G(nnR G(*e00" NrJcd}tjjd}d}|jdd|}t j |}t j ||}t j ||j }tjddd }|j|}|j|} t|| |j|} t|| tttj |d y) Ncbtj|jd|jdzz Sr)r%rneffrrs rHrz9test_kde_bandwidth_method_weighted..scotts_factors$xx c799Q;&788rJrrrrrrrrrrrs rH"test_kde_bandwidth_method_weightedrs9 ))   (CL Aq, 'B   b !D   r] ;E   rT[[ 9E R" B ]]2 FnnR G(nnR G(*e00" NrJceZdZdZy)_kde_subclass1ctj||_|jj\|_|_|j |_|jyN) r% atleast_2dr-shaperr3rcovariance_factor_compute_covariance)selfr-s rH__init__z_kde_subclass1.__init__sC}}W- ++!%!3!3   "rJN)__name__ __module__ __qualname__rrJrHrrs#rJrceZdZfdZxZS)_kde_subclass2cF|j|_t| |yr)rrsuperr)rr- __class__s rHrz_kde_subclass2.__init__ s!%!3!3 !rJ)rrrr __classcell__)rs@rHrrs ""rJrceZdZdZy)_kde_subclass4c(d|jzS)Nr)silverman_factor)rs rHrz _kde_subclass4.covariance_factor&sT**,,,rJN)rrrrrrJrHrr%s-rJrc tjgdt}tjddd}t j |  |}t |}||}t||dt|}||}t||dt|}||}gd} t| |d  } fd | _ | j| |} t|| dy) Nrrr[r\dtype rnumnulp)gn,?gǻe??gW[3?ga)?gKd8;?r]r"cjSr)r)kdesrHz/test_gaussian_kde_subclassing..Hs SZZrJ) r%rhfloatr4rr+rr rrr rr) x1rByskde1y1kde2y2kde4y4 y_expectedkde5y5rs @rHtest_gaussian_kde_subclassingr*s #5 1B S"" %B   R C RB " D bB"2r3 " D bB"2r3 " D bBMJj"a8 D/D bB"2r3rJctjgdt}tjddd}gd}t j |}|j d |j d ||}t||d y) Nrrrrr\r)g>L\9?gp4=?gH꟫?g8(H MT?gIJCR ?rrscottrr")r%rhrr4rr+ set_bandwidthr )rrBrrrs rH$test_gaussian_kde_covariance_cachingrNsv #5 1B S"! $BNJ   R C$( RBj"a8rJcDtjgdt}tjddd}t j |}|j |_|j||}t j |d}||}t||d y ) zUgly, but people may rely on this. See scipy pull request 123, specifically the linked ML thread "Width of the Gaussian in stats.kde". If it is necessary to break this later on, that is to be discussed on ML. rrrrrr silvermanrrN) r%rhrr4rr+rrrr )rrBrrrrs rHtest_gaussian_kde_monkeypatchr^s #5 1B S"" %B   R C00C RB   bK 8D bB"2r3rJctjd}tj|}gd}t |||dy)zRegression test for #1181.r\)B\A?筱 ES?g f?rrr]r"N)r%arangerr+r )rrrs rHtest_kde_integer_inputrss4 1B   R CMJc"gz1=rJ)float32float64float96float128int32int64bw_typerrrctt|d}|dvr|}ntt|d}|r|dnd}td||fDrtjtj d|}tj d|}t j|||}tj d|}||}|jtj||tj||jk(sJy)N)rrrZc3$K|]}|du ywrr).0dts rH z(test_kde_output_dtype..s ,"2: ,sr\r)rrM) getattrr%anypytestskiprrr+r result_typerr)rrbwrMr-kpointsresults rHtest_kde_output_dtyper~s Bt $E(( "gt,"WQZ , ,, ii'Gii'G 7b'BA YYq &F vYF <<2>>'62::g;N*+((4 44 4rJc6tjjd}|jd}t j |}|jd}d}t jt|5|j|dddy#1swYyxYw)Nl Fgu \U.lt&0)r r)rZrz0points have dimension 3, dataset has dimension 2match) r%r&r'standard_normalrr+rr rlogpdf)r;r=r@rBmsgs rHtest_pdf_logpdf_validationrsz ))   F GC  W %B   b !D  W %B .marginal_pdf_single..fs/U:%678A771:a= rJr)rquadr%r7r r r rs` rHmarginal_pdf_singlez1test_marginal_1_axis..marginal_pdf_singles, !~~a"&&"&&1!44rJc4tjd|S)Nrrarrr%apply_along_axis)rrs rH marginal_pdfz*test_marginal_1_axis..marginal_pdfs""#6QFKKrJư>r r%r&r'r(rhrr+marginalr1r ) r;n_datan_dimr-rrr1rrefr rrs @@@rHtest_marginal_1_axisrs ))   3 4C F Ejjufoj.G ZZeQZZ (F56J   W %C||J'H ,,vj) *C5 L v CC4(rJcx tjjd}d}d}|j||f}|j|df}tjddg t j | j }|j| } fd}||}t||d y) Nrr[rXrZrc@fd}tj|d|S)Ncfd}tj|tj tjtj tjdS)Ncn\}}tj||||g}j|dSr)r%rhr1)rwrvwzr rr s rHr zRtest_marginal_2_axis..marginal_pdf..marginal_pdf_single..fs9Z(1HHaAq\*wwqz!}$rJr)rdblquadr%r7rs` rHrzGtest_marginal_2_axis..marginal_pdf..marginal_pdf_singles< %$$Q"&&"&&I!L LrJrrr)rrr rs rHrz*test_marginal_2_axis..marginal_pdfs! M""#6QFKKrJrrr) r;rrr-rrr1rrr rs @@rHtest_marginal_2_axisr%s ))   3 4C F Ejjufoj.G ZZeQZZ (F1a&!J   W %C||J'H ,,vj) *CL v CC4(rJctjjd}d}d}|j||f}|j|df}t j |}ddg}|j |}|j||}ddg} |j | } | j|| } t|| d } tjt| 5|j dd gdddd } tjt| 5|j gd dddd} tjt| 5|j gddddy#1swY|xYw#1swYOxYw#1swYyxYw)Nrrr[rXrZrrz,Elements of `dimensions` must be integers...rg@z,All elements of `dimensions` must be unique.)rr r z;Dimensions \[-5 6\] are invalid for a distribution in 4...)rrr]) r%r&r'r(rr+rr1rrr r) r;rrr-rr dimensions1 marginal1pdf1 dimensions2 marginal2rmessages rHtest_marginal_ivr. se ))   3 4C F Ejjufoj.G ZZeQZZ (F   W %Cq'K [)I == , -Db'K [)I == , -Dt=G z 1 aX=G z 1  Y NG z 1! Z !!   !!s$E+E7F+E47FF c "tjjd}d}d}tjt d|Dcgc]}|j dd||zc}}t j|}|jtjd|}tjjtj|ddtjjtj|ddycc}w)Nri irF)r%r&r'rhranger(rr+rrtestingrisneginfisnan)r; n_dimensions n_samplesr3r=r@rs rHtest_logpdf_overflowr60s ))   "CLI e <?3::aI.!4 B   b !D [[1l3 4FJJBKKq 2E:JJBHHVAY/7sD c6tjjd}|jd}|j gd|j }|j }tjtj||t||ddy)Ni90drX)rTg$@r8rL+=atolr) r%r&r' lognormalchoicerYcopyrr+log10r )r;valsrM orig_weightss rHtest_weights_intactrBBsn ))   &C ==c= "Djj) j:G<<>L rxx~w7G\EBrJcgd}gd}tj||}tj|tj|}gd}t |j ||j |ddy)N)g?g+@g5@gR@gX@)rr r[rrL)g333333? Xr9r:)rr+r%rr r5)valuesrMpdf_ipdf_fr=s rHtest_weights_integerrJMsb *FG   vw 7E   vrzz'/B CE BENN2&NN2&U@rJc$d}tjjd}d}|j|}|jdd|}t j |}||t j ||}||tj ddg}tj dd gd d gg}|j||| j} t j | } || t j | |} || y) Ncjd}|j|}|j|}ttt||dd}|j||}|j||}t||dtj j d}|j||}tj j d}|j||}t||dttj dr3tj jd}|j||yy) NgvIh%<=)r;i?)seedr'i) resamplerAssertionErrorr r%r&r}hasattrr') gkde_trailn_samplesamp1samp2rNrstate1rstate2r;s rH test_seed_subz test_seed..test_seed_sub[s##H-##H- OUE ##H4#8##H4#8u51))''S'1##H7#;))''S'1##H7#;u51 299m ,))''-C   s  3 -rJrrrrrLrTrUrVrWrX) r%r&r'r(rr+rhrirj) rYr;r<rOxn_1dgkde_1dgkde_1d_weightedr)r/xn_2dgkde_2dgkde_2d_weighteds rH test_seedr`Ys44 ))   (CL L !B JJq!\ *E  'G'))%<"# 88S#J DC:Sz23J  # #D*< # H J JE  'G'))%<"#rJctjjd}tjgd}tjgdgdgdg}|j ||d} t j |jy#tj$rUd}ttj|5t j |jdddYy#1swYYyxYwwxYw) NlSDG.)rrrQ)r[rr)rrr)rrr8iz:The data appears to lie in a lower-dimensional subspace...r) r%r&r'rhrirr+rjr LinAlgErrorr)r;musigmadatars rH%test_singular_data_covariance_gh10205rfs ))   3 4C + B HHj+{; rts**LL*$EN(EV(FLLV[[5F5F4GH 7J  7Jt(FLLV[[5F5F4GH :J  :JzO4O<#U''#"U''" -U''- !4H 9 4*> JGw .D$DE'*4+F4./0/2)6))8"!J88"C @/$d '  rJ