
    M/Ph&                        d Z ddlmZ ddlZddlmZ dGdZg dZ	g Z
g Zg Zg Zg Zg Zg Zddd	d
ddZeee
eedZg dg dg dg dg ddgdZdgZed         ed         z   ed         z   ez   Ze	D ]Z eee          Z eed          r ej        ej                  rdZnej        dk    rdZnd
Z ej        ej                  rdZnej        dk    rdZnd
Ze                    e           e                    eefg                               e           g dZ d ed         D             Z	dgZ dgZ d dgZ d! eD             Z	e!d"k    rd#Z"d$Z#d%Z$d&Z%d&Z&g Z' e(d          D ]iZ)ej*        +                    e%e&e$e#z  '          Z, ej-        e,ej.        +                    d(d)e$de#z
  z  *          f          Z, ej/        e,          Z0e,e,dk             Z1dZ2e1Z3 e4d+            e4d,e$           e	D ]Z eee          Zeev re3Z+e2Z5ne,Z+dZ5 e4d-            e4d.ez             e+6                                Z7 ej8        e+9                                          Z:e+;                                e+<                                fZ=ed/v r-e7d0e:z  z
  e7d0e:z  z   fZ> e? ej@        e+ge>R e7e:d1          ZAnYed2k    r# e?e@                    e+e7e:1                    ZAn0edk    r$ e?e@                    e+d3e7e:1                    ZAnedk    r# e?e@                    e+d4de:1                    ZAned5k    r$ e?e@                    e+d&d6dd1                    ZAneev rXe+6                                Z7 ej8        e+9                                          Z: e?e@                    e+dd1                    ZAnWe+6                                Z7 ej8        e+9                                          Z: e?e@                    e+e7e:1                    ZA e4d7eA           eAdd8         ZBeAd8         ZCeAd9         ZDe+eCz
  eDz  ZE ejF        eEeeB          \  ZGZH e4d:eGeH           d;ZI ejJ        deI eKe5          z  z
  geAR eCeDd1ZLej*        M                    eLe%e&<          ZN e4d=eIeLeN           e'                    eeGeHeBeCeDeLeNg           ڐkdd>lOmPZP  eQe' ePd0          ?          ZReRS                                  e4d@ eTeR                     dAZUddlVZVeVjW        X                    eU          s eVjY        eU            eZeR          D ]\  Z[Z\e\dd         \  ZZGZHZBZCZDZLZN eee          Zeev re3Z+e2Z5dBZ]ne,Z+dCZ]dZ5 e4dDeeGeHeNfz              ee+eeBeCeDe5E            ej^        eVjW        _                    eUdFe"e]e[efz                       dS dS )Ha  given a 1D sample of observation, find a matching distribution

* estimate maximum likelihood parameter for each distribution
* rank estimated distribution by Kolmogorov-Smirnov and Anderson-Darling
  test statistics

Author: Josef Pktd
License: Simplified BSD
original December 2008

TODO:

* refactor to result class
* split estimation by support, add option and choose automatically
*

    )statsN   c           	         t          j                     t          j        | dddd          \  }}}t          d |D                       }	t	          |	           t          t          j                              }
|	dz  |
d<    |j        |g|R ||d	}|	|||	k    <   t          j        ||d
d          }t          j
                            |dd          |z  }t          j        ||dd          }t          j        d           t          j        d           t          j        d|j         d|dd|dd           t          j        d           t          j                     d S )N   r   green      ?)normed	facecoloralphac                 6    g | ]}|                                 S  )
get_height).0ps     t/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/sandbox/distributions/examples/matchdist.py
<listcomp>zplothist.<locals>.<listcomp>   s     555Q\\^^555    g?locscalezr--)	linewidth
   r   zb-SmartsProbabilityz$\mathrm{Testing: z	 :}\ \mu=fz
,\ \sigma=$T)pltfigurehistmaxprintlistaxispdfplotr   txlabelylabeltitlenamegriddraw)xdistfnargsr   r   rightnbinspatches	maxheightaxlimytltyslss                  r   plothistr<      sk   JLLLx2a7$OOOAtW55W55566I	)E$E"I 
T	7$	7	7s%	7	7	7BBr)|	$EQ	/	/	/B	dBR	)	)%	/B	$DA	.	.	.BJxJ}IWV[WWCWWWUWWWWXXX HTNNNHJJJJJr   )]normr   anglitarcsinebeta	betaprimebradfordburrfiskcauchychichi2cosinedgammadweibullerlangexpon	exponweibexponpowfatiguelife
foldcauchyr   foldnorm	frechet_rweibull_min	frechet_lweibull_maxgenlogistic	genparetogenexpon
genextremegammagengammagenhalflogisticgompertzgumbel_rgumbel_l
halfcauchyhalflogistichalfnorm	hypsecant
gausshyperinvgammainvnorm
invweibull	johnsonsb	johnsonsulaplacelevylevy_llogisticloggamma
loglaplacelognormgilbratmaxwellmielkenakagamincx2ncfr(   nctparetolomaxpowerlawpowerlognorm	powernormrdistrayleigh
reciprocalricerecipinvgausssemicirculartriang
truncexpon	truncnormtukeylambdauniformvonmiseswald
wrapcauchybinom	bernoullinbinomgeom	hypergeomlogserpoissonplanck	boltzmannrandintzipfdlaplaceunboundr2   leftfiniteother)openr   0r   r   r   r   r   )othr   )rT   rU   rl   )r>   rH   r}   r   )+r   rC   rD   rF   rG   rK   rL   rM   rN   rO   rP   r   rQ   rR   rS   rW   rX   rZ   r[   r\   r]   r`   ra   rb   re   rf   rg   rk   ro   rp   rq   rr   rs   rt   ru   rv   ry   r{   r~   r   r   r   r   )rE   rI   rJ   rV   rY   r^   r_   rc   ri   rj   rm   rn   r(   rw   r|   r   r   r   r   )
r?   r@   rA   rB   rd   rh   rz   r   r   r   rx   )r   r   r   r   r   r   r   r   rY   r   r   r   _pdfr   r   )rY   r   r   c                 $    g | ]}|t           v|S r   not_goodr   r   s     r   r   r      s"    FFFAAX4E4Ea4E4E4Er   r   r   r   rX   c                 $    g | ]}|t           v|S r   r   r   s     r   r   r      s"    777AQh%6%6a%6%6%6r   __main__run_conv500_1_r   i  r   )r   sizeg?g      @)r   r   r   z2==================================================zsamplesize = z------------------------------ztarget = %s)r   rA   r      r   r=   g      ?r      fitr   kstestg?r   z
crit, prob)
itemgetter)keyznumber of distributionsmatchresultsr z-%s ks-stat = %f, ks-pval = %f tail_prob = %f))r2   z%s%s%02d_%s.png)r   )`__doc__scipyr   numpynpmatplotlib.pyplotpyplotr   r<   
targetdistr   r2   r   r   r   contdistdiscretecategcateg2right_incorrect	right_alldistnamegetattrr0   hasattrisinfalowbhighappend
setdefaultr   __name__prefixconvolr3   dgp_arg	dgp_scaleresultsrangeir(   rvsrvs_orighstackra   absolutervs_absrvs_posrightfactor	rvs_rightr#   rindmeansmsqrtvarsstdminr"   ssupppar0tupler   par_estarg_estloc_est	scale_est
rvs_normedr   ks_statks_pvalquantppffloatcritsf	tail_proboperatorr   sortedres_sortreverselenimagedirospathexistsmakedirs	enumerateiidirisavefigjoinr   r   r   <module>r     sT   "                   JL L L
( 

	

"v!)	A 	A u4!'e	= 	= ;::HHH? ? ?8 8 8L L L"#
 
,  .=!F?$;;fEW>XX	  9 9HWU8$$Fwvf 928FH 	CCX]]CCC28FH 	DDX]]DDD!!!#dB''..x888333FF/0FFF
><z"77777
 z FFAGIGU1XX <b <b7;;wYAfH;EE29hu'9'='=#SWXZ[\bZbWc'='d'deff"+h''8A:&	foq!!!" 3	b 3	bHWU8,,F9$$" E&MMME-(*+++B2737799%%DWWYY		*EAAA1T6	"QtV),%

3 G$ G G2D G G GHHV##%

32D
 A ABB\))%

3rbt
 D DEE\))%

3sqt
 D DEES%

3r"
 C CDDU""XXZZrwswwyy))%

311
 = =>>XXZZrwswwyy))%

32D
 A ABB E%!!!crclGbkGIg+y0J+u|JxIIGWE(GW---E6:aeeDkk 11YQXYYwiYYYD

4i
@@IE,tY777 NNHWgggiPTU^`aaaag3	bx $#####vgZZ]]333H	E
#SS]]333HIII7>>(## H8$$ Y Y2MOPQPQPQUJ''')Dx((y  CDBBCBD='956 	7 	7 	7 	VGGIdCCCCBGLL*;fbX=V*VWWXXXXU tY Yr   