
    M/Ph4              	          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    	rUd\  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j!                            ed                      ed  ee          z   e
j"        eee                      ed! ee          z  ej!        "                    ed                      ed" ee          z   e
j#        eee                      ed# ee          z  ej!        #                    ed                      ed$ e
j        ed%d&                      ed'e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j$                            ed-                      ed. ee          z  ej%                            e                      ed/ ee          z   ej"        eee                      ed0 ee          z  ej$        "                    ed-                      ed1 ee          z  ej%        "                    e                      ed2 ee          z   ej#        eee                      ed3 ee          z  ej$        #                    ed-                      ed4 ee          z  ej%        #                    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j"        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j!                             ed                      ed; ee          z   ej"        eee                      ed= ee          z  ej!        "                    ed                      ed; ee          z   ej"        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j&                            eddA                      edD ee          z   ej"        edA                      edE ee          z  ej&        "                    eddA                      edF ee          z   ej#        edA                      edG ee          z  ej&        #                    eddA                      edH ej        dIdA                      edJej&                            dIddA                      edK ej        dAdLM                      edNej&                            ddAdLM                     dZ'dAZ(dOe(dOe'z  z   dPz
  z  e(dQz
  z   ej)        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
j,                                e e
j,        dWX                      edY            eej&        ,                    ddAdZX                      e ej,        dAdZX                     ej-        .                    d[            ej,        dAd\X          Z/ ej0        dZdA           e/dZz  1                                  ej0        dSdA           e/dSz  1                                  ej        dAdLM            ej2        e/           	  ej#         ej3        d]dd^          dA          Z4 ej5        e/e4_          \  Z6Z7 ee6 e8 e9e/                    z             ddl:m;Z<  e<j=        e/d`dadbc          \  Z6Z7Z>e7e7d         e7d         z
  dPz  z  Z7 e<j?        e7ddd          ej"        e7ddd         dA          de           	 ddl@Z@ e@jA        eBdfdgdhg           dS dS )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                  T   t          t          j                  } |                     dd          }t          j                            dd          }t          ||d           |                     dd          }t          j                            dd          }t          ||d           d S )N   
            )r   r   gamma_cdfloggammacdfr   )loggammaexpgcdftrcdfsts      u/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/sandbox/distributions/examples/ex_transf2.pytest_loggammar      s     --La##ENq$$Eub)))a##ENq$$Eub)))))    c                      t          t          j                  } t          j                            dd          }|                     ddd          }t          ||d           d S )N   r   gUUUUUU?r   )r   r   laplace
loglaplacer   r   r   )loglaplaceexpgr   r   s      r   test_loglaplacer"       s\     #5=11N  1%%E !D))Eub)))))r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )CheckDistEquivalencec                 .    | j         j        t          g| j        R i | j        }d | j         j        t          g| j        R i | j        z
  } | j        j        t          g| j        R i | j        }t          ||d           t          ||d           d S )Nr   r   )
distr   xxtrargstrkwdssf	statsdiststargsstkwdsr   )selfr   sfctrr   s       r   test_cdfzCheckDistEquivalence.test_cdf0   s    	b>4;>>>$+>>,$),r?DK???4;???""2CCCCt{CCE5"---E5"-----r   c                      | j         j        t          g| j        R i | j        } | j        j        t          g| j        R i | j        }t          ||d           d S N   )	r&   pdfr'   r(   r)   r+   r,   r-   r   )r.   pdftrpdfsts      r   test_pdfzCheckDistEquivalence.test_pdf8   si    	b>4;>>>$+>>""2CCCCt{CCE5"-----r   c                      | j         j        t          g| j        R i | j        } | j        j        t          g| j        R i | j        }t          ||d           d S r2   )	r&   ppfppfqr(   r)   r+   r,   r-   r   )r.   ppftrppfsts      r   test_ppfzCheckDistEquivalence.test_ppf>   si    	d@T[@@@DK@@""4E$+EEEEEE5"-----r   c                 <    | j         j        | j        i ddi}|                    d          } | j         j        | j        i ddi\  }}t          j        t          j        |          dk               rt          ||d           d S t          ||z  dd           d S )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    dimT[9VCL99!'	I48HII6"&..1$%% 	622222vr155555r   c                 z   ddi}|                     | j                   ddi}|                     | 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           d S t          |dd          |dd          z  t          j        d          d           d S )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   s1   F#dk"""F#dk"""/$)/4;A&AABB.$..FvFFGGF2A2Jrr
A6666"&$$q()) 	Fqrr
F122J:::::qrr
6!"": 5rwqzz1EEEEEr   N)__name__
__module____qualname__r0   r7   r=   rK   rT    r   r   r$   r$   ,   sd        . . .. . .. . .6 6 6F F F F Fr   r$   c                       e Zd Zd ZdS )TestLoggamma_1c                     t          t          j                  | _        d| _        i | _        t          j        | _        d| _        i | _	        d S )Nr   )
r   r   r   r&   r(   r)   r   r+   r,   r-   r.   s    r   __init__zTestLoggamma_1.__init___   s<    !%+..	r   NrU   rV   rW   r^   rX   r   r   rZ   rZ   ]   #            r   rZ   c                       e Zd Zd ZdS )TestSquaredNormChi2_1c                 x    t           | _        d| _        i | _        t          j        | _        d| _        i | _        d S )NrX   r   )	r   r&   r(   r)   r   chi2r+   r,   r-   r]   s    r   r^   zTestSquaredNormChi2_1.__init__j   s2    !	r   Nr_   rX   r   r   rb   rb   h   r`   r   rb   c                       e Zd Zd ZdS )TestSquaredNormChi2_2c                     t           | _        d| _        t          dd          | _        t
          j        | _        d| _        t          dd          | _	        d S )NrX      locscalerd   )
r   r&   r(   dictr)   r   re   r+   r,   r-   r]   s    r   r^   zTestSquaredNormChi2_2.__init__t   sL    !	s"---s"---r   Nr_   rX   r   r   rg   rg   r   s#        . . . . .r   rg   c                       e Zd Zd ZdS )TestAbsNormHalfNormc                 x    t           | _        d| _        i | _        t          j        | _        d| _        i | _        d S )NrX   )	r   r&   r(   r)   r   halfnormr+   r,   r-   r]   s    r   r^   zTestAbsNormHalfNorm.__init__~   s2    	r   Nr_   rX   r   r   rp   rp   |   r`   r   rp   c                       e Zd Zd ZdS )TestSquaredTFc                 x    t           | _        d| _        i | _        t          j        | _        d| _        i | _        d S )Nr\   )r   r   )	r
   r&   r(   r)   r   fr+   r,   r-   r]   s    r   r^   zTestSquaredTF.__init__   s2    	r   Nr_   rX   r   r   rt   rt      s#            r   rt   c                  2   t          j        t          t          t                    } dt          j        t          t          t                    z
  }t          j                            t          d          }t          || d           t          ||d           d S )Nrk   r   r   )	r   r   r'   lsr*   r   re   r   )r   r/   r   s      r   test_squared_normal_chi2rz      st    bQa000Emraq1111EJNN2a  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      ss   
     - - - - - -      ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
 1	* 	* 	*
* 
* 
*,F ,F ,F ,F ,F ,F ,F ,Fb    )       0   . . . . .0 . . .    .   	 	 	 	 	( 	 	 	* * *" z CAa??D			B


C	E	E
[\\\	E
2UU2YY
>@Q@QRTYZbc@d@d@deee	E
2UU2YY
>BR-BRSUZ[cdBeBeBe@efff	E
2UU2YY
>
rRS@T@TUUU	E
2UU2YY
>@Q@QRTYZbc@d@d@deee	E
2UU2YY
>
rRS@T@TUUU	E
2UU2YY
>@Q@QRV[\de@f@f@fggg	E
2UU2YY
>
tTU@V@VWWW	E
&(9(9"B(O(O(OPPP	E
&
r!2(N(NOOO 
E
STTT	E
!"""	E
3eeBii
?PRWX`aAbAbAbccc	E
3eeBii
?=:=QSXYabCcCcCcAcddd	E
3eeBii
?ASASTVW[A\A\]]]	E
3eeBii
?ASASTVAWAWXXX	E
3eeBii
?PRWX`aAbAbAbccc	E
3eeBii
?ASASTVW[A\A\]]]	E
3eeBii
?ASASTVAWAWXXX	E
3eeDkk
A>:>RV[\deCfCfCfggg	E
3eeDkk
A5>CUCUVZ[_C`C`aaa	E
3eeDkk
A5>CUCUVZC[C[\\\ 
E
CDDD	E
.///	E
&'''	E
HIII	E
3eeBii
?AUAQAUVX]^fgAhAhAhiii	E
3eeBii
?CVCSCVWY^_ghCiCiCiAijjj	E
3eeBii
?AUAQAUVX]^fgAhAhAhiii	E
3eeCjj
@BVBRBVWZ_`hiBjBjBjkkk	E
3eeCjj
@!DWDTDWX[`aijDkDkDkBklll	E
3eeBii
?rRSATATUUU	E
3eeCjj
@BVBRBVWZ_`hiBjBjBjkkk	E
3eeBii
?PRSTAUAUVVV	E
3eeCjj
@BVBRBVWZ_`hiBjBjBjkkk 
E
FGGG	E
/000	E
/%%))
;\X\"R=P=PQQQ	E
/%%))
;Q{x{2b?Q?Q=QRRR	E
/%%))
;UW[[Ab=Q=QRRR	E
/%%))
;\X\"R=P=PQQQ	E
/%%))
;UW[[Ab=Q=QRRR	E
/%%++
=|x|DQS?T?TUUU	E
/%%++
=uw{{4PQRT?U?UVVV	E
|x|C33444	E
uw{{3q44555	E-F;;;<<<	E-qV<<=== 	B	B	
BqtGBJB	2b5	2r"uRx=(A B B	BB	
BrE"HqB2	'B	E
2B;;;	E
-


	E
-

'
'
'(((	E
 !!!	E%'++a+
"
"###	E,(,rq
!
!
!""" INN9X\"&)))FHOAbQYHOAbQYHN2v&&&&EN6$ (,{r{2a++B
/
/Cf3///JD	E$uuSS[[!!
!"""######38F5EEELDq	eAhuQx$$ECHU3B3ZeCRCj"55s;;;4 MMMFK64122222q r   