
    !g4              	       $   d Z ddlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZ d\  ZZg d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 G d de      Z G d de      Z G d de      Zd Zedk(  rd\  ZZg dZg dZg d	Ze  ed        ed ee      z   e
j>                  eee              ed ee      z  d e
j@                  eee      z
          ed ee      z  ejB                  j?                  ed              ed  ee      z   e
jD                  eee              ed! ee      z  ejB                  jE                  ed              ed" ee      z   e
jF                  eee              ed# ee      z  ejB                  jG                  ed              ed$ e
j>                  ed%d&              ed'ejB                  j?                  edd%d&              ed(        ed)        ed* ee      z   ej>                  eee              ed+ ee      z  d ej@                  eee      z
          ed, ee      z  ejH                  j?                  ed-              ed. ee      z  ejJ                  j?                  e              ed/ ee      z   ejD                  eee              ed0 ee      z  ejH                  jE                  ed-              ed1 ee      z  ejJ                  jE                  e              ed2 ee      z   ejF                  eee              ed3 ee      z  ejH                  jG                  ed-              ed4 ee      z  ejJ                  jG                  e              ed5        ed6        ed7        ed8        ed9 ee      z   ej>                  eee              ed: ee      z  d ej@                  eee      z
          ed; ee      z   ejD                  eee              ed9 ee      z   ej>                  eee              ed: ee      z  d ej@                  eee      z
          ed< ee      z  ejB                  jA                  ed              ed; ee      z   ejD                  eee              ed= ee      z  ejB                  jE                  ed              ed; ee      z   ejD                  eee              ed>        ed?        ed@ ee      z   ej>                  edA              edB ee      z  d ej@                  edA      z
          edC ee      z  ejL                  j?                  eddA              edD ee      z   ejD                  edA              edE ee      z  ejL                  jE                  eddA              edF ee      z   ejF                  edA              edG ee      z  ejL                  jG                  eddA              edH ej>                  dIdA              edJejL                  j?                  dIddA              edK ej                  dAdLM              edNejL                  j                  ddAdLM             dZ'dAZ(dOe(dOe'z  z   dPz
  z  e(dQz
  z   ejR                  dOe(dRz
  z  e'e(e'z   dPz
  z  z        z  Z*dSdPe(z  dTz
  z  dUe*e*z  e(dQz
  z  z   z  Z+ edVe*e+        e e
jX                                 e e
jX                  dWX              edY        eejL                  jY                  ddAdZX              e ejX                  dAdZX             ejZ                  j]                  d[        ejX                  dAd\X      Z/ ej`                  dZdA       e/dZz  jc                           ej`                  dSdA       e/dSz  jc                           ej                  dAdLM        ejd                  e/       	  ejF                   ejf                  d]dd^      dA      Z4 ejj                  e/e4_      \  Z6Z7 ee6 e8 e9e/            z         ddl:m;Z<  e<jz                  e/d`dadbc      \  Z6Z7Z>e7e7d   e7d   z
  dPz  z  Z7 e<j~                  e7ddd  ejD                  e7ddd dA      de       	 ddl@Z@ e@j                  eBdfdgdhg       yy)izD
Created on Sun May 09 22:23:22 2010
Author: josef-pktd
Licese: BSD
    N)assert_almost_equal)stats)ExpTransf_genLogTransf_gensquarenormalg
absnormalgnegsquarenormalgsquaretg)              ?)g?g      ?g?)gffffff?r   g?)gffffffg      gc                  2   t        t        j                        } | j                  dd      }t        j                  j                  dd      }t        ||d       | j                  dd      }t        j                  j                  dd      }t        ||d       y )N   
            )r   r   gamma_cdfloggammacdfr   )loggammaexpgcdftrcdfsts      r/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/sandbox/distributions/examples/ex_transf2.pytest_loggammar      sx     -La#ENNq$Eub)a#ENNq$Eub)    c                      t        t        j                        } t        j                  j	                  dd      }| j                  ddd      }t        ||d       y )N   r   gUUUUUU?r   )r   r   laplace
loglaplacer   r   r   )loglaplaceexpgr   r   s      r   test_loglaplacer"       sL     #5==1N  1%E !D)Eub)r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)CheckDistEquivalencec                     | j                   j                  t        g| j                  i | j                  }d | j                   j
                  t        g| j                  i | j                  z
  } | j                  j                  t        g| j                  i | j                  }t        ||d       t        ||d       y )Nr   r   )
distr   xxtrargstrkwdssf	statsdiststargsstkwdsr   )selfr   sfctrr   s       r   test_cdfzCheckDistEquivalence.test_cdf0   s    		b>4;;>$++>,$)),,r?DKK?4;;??"""2CCt{{CE5"-E5"-r   c                      | j                   j                  t        g| j                  i | j                  } | j
                  j                  t        g| j                  i | j                  }t        ||d       y N   )	r&   pdfr'   r(   r)   r+   r,   r-   r   )r.   pdftrpdfsts      r   test_pdfzCheckDistEquivalence.test_pdf8   s\    		b>4;;>$++>"""2CCt{{CE5"-r   c                      | j                   j                  t        g| j                  i | j                  } | j
                  j                  t        g| j                  i | j                  }t        ||d       y r2   )	r&   ppfppfqr(   r)   r+   r,   r-   r   )r.   ppftrppfsts      r   test_ppfzCheckDistEquivalence.test_ppf>   s\    		d@T[[@DKK@"""4E$++EEE5"-r   c                 ^    | j                   j                  | j                  i ddi}|j                  d      } | j                   j                  | j                  i ddi\  }}t        j                  t        j                  |      dk        rt        ||d       y t        ||z  dd       y )Nsized   r   momentsmvr   r   )	r&   rvsr(   meanr   npanyabsr   )r.   rC   mean_smean_dvar_ds        r   test_rvszCheckDistEquivalence.test_rvsD   s    diimmT[[9VCL9!'		I48HI66"&&.1$%2vr15r   c                 `   ddi}|j                  | j                         ddi}|j                  | j                         t        j                   | j                  j
                  | j                  i |      }t        j                   | j                  j
                  | j                  i |      }t        |d d |d d d       t        j                  t        j                  |dd        dk        rt        |dd  |dd  d       y t        |dd  |dd  z  t        j                  d      d       y )NrA   mvskr      r   r   )updater-   rE   arrayr&   r   r(   r+   r,   r   rF   rG   ones)r.   r)   r-   mvsktrmvsksts        r   
test_statszCheckDistEquivalence.test_statsM   s    F#dkk"F#dkk"/$))//4;;A&AB.$....FvFGF2AJr
A666"&&$q()qr
F12J:qr
6!": 5rwwqz1Er   N)__name__
__module____qualname__r0   r7   r=   rK   rT    r   r   r$   r$   ,   s    ...6Fr   r$   c                       e Zd Zd Zy)TestLoggamma_1c                     t        t        j                        | _        d| _        i | _        t        j                  | _        d| _        i | _	        y )Nr   )
r   r   r   r&   r(   r)   r   r+   r,   r-   r.   s    r   __init__zTestLoggamma_1.__init___   s9    !%++.	r   NrU   rV   rW   r^   rX   r   r   rZ   rZ   ]       r   rZ   c                       e Zd Zd Zy)TestSquaredNormChi2_1c                 |    t         | _        d| _        i | _        t        j
                  | _        d| _        i | _        y )NrX   r   )	r   r&   r(   r)   r   chi2r+   r,   r-   r]   s    r   r^   zTestSquaredNormChi2_1.__init__j   s0    !	r   Nr_   rX   r   r   rb   rb   h   r`   r   rb   c                       e Zd Zd Zy)TestSquaredNormChi2_2c                     t         | _        d| _        t        dd      | _        t
        j                  | _        d| _        t        dd      | _	        y )NrX      locscalerd   )
r   r&   r(   dictr)   r   re   r+   r,   r-   r]   s    r   r^   zTestSquaredNormChi2_2.__init__t   s>    !	s"-s"-r   Nr_   rX   r   r   rg   rg   r   s    .r   rg   c                       e Zd Zd Zy)TestAbsNormHalfNormc                 |    t         | _        d| _        i | _        t        j
                  | _        d| _        i | _        y )NrX   )	r   r&   r(   r)   r   halfnormr+   r,   r-   r]   s    r   r^   zTestAbsNormHalfNorm.__init__~   s0    	r   Nr_   rX   r   r   rp   rp   |   r`   r   rp   c                       e Zd Zd Zy)TestSquaredTFc                 |    t         | _        d| _        i | _        t        j
                  | _        d| _        i | _        y )Nr\   )r   r   )	r
   r&   r(   r)   r   fr+   r,   r-   r]   s    r   r^   zTestSquaredTF.__init__   s0    	r   Nr_   rX   r   r   rt   rt      s    r   rt   c                     t        j                  t        t        t              } dt        j
                  t        t        t              z
  }t        j                  j                  t        d      }t        || d       t        ||d       y )Nrk   r   r   )	r   r   r'   lsr*   r   re   r   )r   r/   r   s      r   test_squared_normal_chi2rz      s[    bQa0Emraq11EJJNN2a Eub)ub)r   __main__zN
square of standard normal random variable is chisquare with dof=1 distributedz&sqnorm  cdf for (%3.2f, %3.2f, %3.2f):rk   z&sqnorm 1-sf for (%3.2f, %3.2f, %3.2f):r   z&chi2    cdf for (%3.2f, %3.2f, %3.2f):z&sqnorm  pdf for (%3.2f, %3.2f, %3.2f):z&chi2    pdf for (%3.2f, %3.2f, %3.2f):z&sqnorm  ppf for (%3.2f, %3.2f, %3.2f):z&chi2    ppf for (%3.2f, %3.2f, %3.2f):zsqnorm  cdf with loc scaleri   rj   zchi2    cdf with loc scalezF
absolute value of standard normal random variable is foldnorm(0) and zhalfnorm distributed:z'absnorm  cdf for (%3.2f, %3.2f, %3.2f):z'absnorm 1-sf for (%3.2f, %3.2f, %3.2f):z'foldn    cdf for (%3.2f, %3.2f, %3.2f):gh㈵>z'halfn    cdf for (%3.2f, %3.2f, %3.2f):z'absnorm  pdf for (%3.2f, %3.2f, %3.2f):z'foldn    pdf for (%3.2f, %3.2f, %3.2f):z'halfn    pdf for (%3.2f, %3.2f, %3.2f):z'absnorm  ppf for (%3.2f, %3.2f, %3.2f):z'foldn    ppf for (%3.2f, %3.2f, %3.2f):z'halfn    ppf for (%3.2f, %3.2f, %3.2f):z6
negative square of standard normal random variable isz"1-chisquare with dof=1 distributedzthis is mainly for testingz<the following should be outside of the support - returns nanz'nsqnorm  cdf for (%3.2f, %3.2f, %3.2f):z'nsqnorm 1-sf for (%3.2f, %3.2f, %3.2f):z'nsqnorm  pdf for (%3.2f, %3.2f, %3.2f):z'chi2      sf for (%3.2f, %3.2f, %3.2f):z'chi2     pdf for (%3.2f, %3.2f, %3.2f):z9
square of a t distributed random variable with dof=10 isz#        F with dof=1,10 distributedz#sqt  cdf for (%3.2f, %3.2f, %3.2f):r   z#sqt 1-sf for (%3.2f, %3.2f, %3.2f):z#f    cdf for (%3.2f, %3.2f, %3.2f):z#sqt  pdf for (%3.2f, %3.2f, %3.2f):z#f    pdf for (%3.2f, %3.2f, %3.2f):z#sqt  ppf for (%3.2f, %3.2f, %3.2f):z#f    ppf for (%3.2f, %3.2f, %3.2f):zsqt  cdf for 100:r@   zf    cdf for 100:zsqt  stats:rM   )rA   zf    stats:r   g       @g      @g      @r      rN   z&corrected skew, kurtosis of f(1,10) is)r      )r?   zsqt random variablesr}   ii r      )bins2   )r   r}   T)r   rangenormedrz-vvsz-xz--pdb)C__doc__numpyrE   numpy.testingr   scipyr   (statsmodels.sandbox.distributions.extrasr   r   r   r   r	   r
   rx   ry   r:   r'   nxxr   r"   r$   rZ   rb   rg   rp   rt   rz   rU   printtupler   r*   re   r4   r9   foldnormrr   rv   v1v2sqrtg1g2rC   randomseedrvstsqmomentrD   describelinspacedec	histogramfreqedgesfloatlenmatplotlib.pyplotpyplotplthist_plotpytestmain__file__rX   r   r   <module>r      s	  
  - ; ;
 1	*
*,F ,Fb) 0 .0 .. 	( 	*" z CAaD	B
C		
[\	
2U2Y
>@Q@Q@QRTYZbc@de	
2U2Y
>BR-BRBRSUZ[cdBe@ef	
2U2Y
>

rRS@TU	
2U2Y
>@Q@Q@QRTYZbc@de	
2U2Y
>

rRS@TU	
2U2Y
>@Q@Q@QRV[\de@fg	
2U2Y
>

tTU@VW	
&(9(9(9"B(OP	
&

r!2(NO 

ST	
!"	
3eBi
?PRWX`aAbc	
3eBi
?=:==QSXYabCcAcd	
3eBi
?ASASTVW[A\]	
3eBi
?ASASTVAWX	
3eBi
?PRWX`aAbc	
3eBi
?ASASTVW[A\]	
3eBi
?ASASTVAWX	
3eDk
A>:>>RV[\deCfg	
3eDk
A5>>CUCUVZ[_C`a	
3eDk
A5>>CUCUVZC[\ 

CD	
./	
&'	
HI	
3eBi
?AUAQAUAUVX]^fgAhi	
3eBi
?CVCSCVCVWY^_ghCiAij	
3eBi
?AUAQAUAUVX]^fgAhi	
3eCj
@BVBRBVBVWZ_`hiBjk	
3eCj
@!DWDTDWDWX[`aijDkBkl	
3eBi
?rRSATU	
3eCj
@BVBRBVBVWZ_`hiBjk	
3eBi
?PRSTAUV	
3eCj
@BVBRBVBVWZ_`hiBjk 

FG	
/0	
/%)
;\X\\"R=PQ	
/%)
;Q{x{{2b?Q=QR	
/%)
;UWW[[Ab=QR	
/%)
;\X\\"R=PQ	
/%)
;UWW[[Ab=QR	
/%+
=|x||DQS?TU	
/%+
=uww{{4PQRT?UV	
|x||C34	
uww{{3q45	-F;<	-qV<= 	B	B	
BqtGBJB	2b5	2r"uRx=(A B	BB	
BrE"HqB2	'B	
2B;	
-


	
-


'(	
 !	%''++a+
"#	,(,,rq
!" IINN9X\\"&)FHOOAbQYHOOAbQYHNN2v&ENN6$ (,,{r{{2a+B
/Cf3/JD	$uS[!
!"#388F5ELDq	eAhuQx$$ECHHU3BZeCRj"5s;4 FKK6412q r   