U
    Ãmœdª4  ã                   @   s†  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ddd	gZd
ddgZdddgZdd„ Zdd„ ZG dd„ dƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZd d!„ Zed"k�r‚d\ZZddd	gZd
ddgZdddgZe ed#ƒ ed$eeƒ e
jeeed%�ƒ ed&eeƒ d'e
j eeed%� ƒ ed(eeƒ ej! ed'¡ƒ ed)eeƒ e
j"eeed%�ƒ ed*eeƒ ej! "ed'¡ƒ ed+eeƒ e
j#eeed%�ƒ ed,eeƒ ej! #ed'¡ƒ ed-e
jed.d/d%�ƒ ed0ej!jed'd.d/d%�ƒ ed1ƒ ed2ƒ ed3eeƒ ejeeed%�ƒ ed4eeƒ d'ej eeed%� ƒ ed5eeƒ ej$ ed6¡ƒ ed7eeƒ ej% e¡ƒ ed8eeƒ ej"eeed%�ƒ ed9eeƒ ej$ "ed6¡ƒ ed:eeƒ ej% "e¡ƒ ed;eeƒ ej#eeed%�ƒ ed<eeƒ ej$ #ed6¡ƒ ed=eeƒ ej% #e¡ƒ ed>ƒ ed?ƒ ed@ƒ edAƒ edBeeƒ ejeeed%�ƒ edCeeƒ d'ej eeed%� ƒ edDeeƒ ej"eeed%�ƒ edBeeƒ ejeeed%�ƒ edCeeƒ d'ej eeed%� ƒ edEeeƒ ej!  ed'¡ƒ edDeeƒ ej"eeed%�ƒ edFeeƒ ej! "ed'¡ƒ edDeeƒ ej"eeed%�ƒ edGƒ edHƒ edIeeƒ e edJ¡ƒ edKeeƒ d'e  edJ¡ ƒ edLeeƒ ej& ed'dJ¡ƒ edMeeƒ e "edJ¡ƒ edNeeƒ ej& "ed'dJ¡ƒ edOeeƒ e #edJ¡ƒ edPeeƒ ej& #ed'dJ¡ƒ edQe dRdJ¡ƒ edSej& dRd'dJ¡ƒ edTejdJdUdV�ƒ edWej&jd'dJdUdV�ƒ d'Z'dJZ(dXe(dXe'  dY  e(dZ  e )dXe(d[  e'e(e' dY   ¡ Z*d\dYe( d]  d^e*e* e(dZ    Z+ed_e*e+ƒ ee
 ,¡ ƒ ee
j,d`da�ƒ edbƒ eej&j,d'dJdcda�ƒ eej,dJdcda�ƒ ej- .dd¡ ej,dJdeda�Z/e 0dcdJ¡ e/dc  1¡  e 0d\dJ¡ e/d\  1¡  ejdJdUdV� e 2e/¡ e #e 3dfd'dg¡dJ¡Z4ej5e/e4dh�\Z6Z7ee6e8e9e/ƒƒ ƒ ddl:m;Z< e<j=e/didjdkdl�\Z6Z7Z>e7e7d' e7d  dY 7 Z7e< ?e7ddm… e "e7ddm… dJ¡dn¡ ddl@Z@e@ AeBdodpdqg¡ dS )rzD
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š™™™™™ñ?gffffffî¿g      ð¿gš™™™™™ñ¿c                  C   sZ   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   )ZloggammaexpgÚcdftrÚcdfst© r   ún/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/sandbox/distributions/examples/ex_transf2.pyÚtest_loggamma   s    
r   c                  C   s6   t tjƒ} tj dd¡}|  ddd¡}t||dƒ d S )Né   r   gUUUUUUÕ?r   )r   r   ZlaplaceZ
loglaplacer   r   r   )Zloglaplaceexpgr   r   r   r   r   Útest_loglaplace!   s    
r   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚCheckDistEquivalencec                 C   sh   | j jtf| jž| jŽ}d| j jtf| jž| jŽ }| jjtf| jž| jŽ}t	||dƒ t	||dƒ d S )Nr   r   )
Údistr   ÚxxÚtrargsÚtrkwdsÚsfÚ	statsdistÚstargsÚstkwdsr   )Úselfr   Úsfctrr   r   r   r   Útest_cdf1   s
    zCheckDistEquivalence.test_cdfc                 C   s@   | j jtf| jž| jŽ}| jjtf| jž| jŽ}t||dƒ d S ©Né   )	r   Úpdfr   r   r    r"   r#   r$   r   )r%   ZpdftrZpdfstr   r   r   Útest_pdf9   s    zCheckDistEquivalence.test_pdfc                 C   s@   | j jtf| jž| jŽ}| jjtf| jž| jŽ}t||dƒ d S r(   )	r   ÚppfÚppfqr   r    r"   r#   r$   r   )r%   ZppftrZppfstr   r   r   Útest_ppf?   s    zCheckDistEquivalence.test_ppfc                 C   sl   | j j| jddiŽ}| d¡}| j j| jddiŽ\}}t t |¡dk ¡rXt||dƒ nt|| ddƒ d S )NÚsizeéd   r   ÚmomentsÚmvr   r   )	r   Úrvsr   Úmeanr   ÚnpÚanyÚabsr   )r%   r3   Zmean_sZmean_dZvar_dr   r   r   Útest_rvsE   s    
zCheckDistEquivalence.test_rvsc                 C   sÔ   ddi}|  | j¡ ddi}|  | j¡ t | jj| j|Ž¡}t | jj| j|Ž¡}t	|d d… |d d… dƒ t 
t |dd … ¡dk ¡rªt	|dd … |dd … dƒ n&t	|dd … |dd …  t d¡dƒ d S )Nr1   Úmvskr   é   r   r   )Úupdater$   r5   Úarrayr   r   r   r"   r#   r   r6   r7   Zones)r%   r    r$   ZmvsktrZmvskstr   r   r   Ú
test_statsN   s    zCheckDistEquivalence.test_statsN)Ú__name__Ú
__module__Ú__qualname__r'   r+   r.   r8   r=   r   r   r   r   r   -   s
   	r   c                   @   s   e Zd Zdd„ ZdS )ÚTestLoggamma_1c                 C   s0   t tjƒ| _d| _i | _tj| _d| _i | _	d S )N©r   )
r   r   r   r   r   r    r   r"   r#   r$   ©r%   r   r   r   Ú__init__`   s    zTestLoggamma_1.__init__N©r>   r?   r@   rD   r   r   r   r   rA   ^   s   rA   c                   @   s   e Zd Zdd„ ZdS )ÚTestSquaredNormChi2_1c                 C   s*   t | _d| _i | _tj| _d| _i | _d S )Nr   ©r   )	r   r   r   r    r   Úchi2r"   r#   r$   rC   r   r   r   rD   k   s    zTestSquaredNormChi2_1.__init__NrE   r   r   r   r   rF   i   s   rF   c                   @   s   e Zd Zdd„ ZdS )ÚTestSquaredNormChi2_2c                 C   s:   t | _d| _tddd�| _tj| _d| _tddd�| _	d S )Nr   éöÿÿÿé   ©ÚlocÚscalerG   )
r   r   r   Údictr    r   rH   r"   r#   r$   rC   r   r   r   rD   u   s    zTestSquaredNormChi2_2.__init__NrE   r   r   r   r   rI   s   s   rI   c                   @   s   e Zd Zdd„ ZdS )ÚTestAbsNormHalfNormc                 C   s*   t | _d| _i | _tj| _d| _i | _d S )Nr   )	r   r   r   r    r   Úhalfnormr"   r#   r$   rC   r   r   r   rD      s    zTestAbsNormHalfNorm.__init__NrE   r   r   r   r   rP   }   s   rP   c                   @   s   e Zd Zdd„ ZdS )ÚTestSquaredTFc                 C   s*   t | _d| _i | _tj| _d| _i | _d S )NrB   )r   r   )	r	   r   r   r    r   Úfr"   r#   r$   rC   r   r   r   rD   ‰   s    zTestSquaredTF.__init__NrE   r   r   r   r   rR   ‡   s   rR   c                  C   sN   t jtttd�} dt jtttd� }tj td¡}t|| dƒ t||dƒ d S )NrL   r   r   )	r   r   r   ÚlÚsr!   r   rH   r   )r   r&   r   r   r   r   Útest_squared_normal_chi2’   s
    rV   Ú__main__zN
square of standard normal random variable is chisquare with dof=1 distributedz&sqnorm  cdf for (%3.2f, %3.2f, %3.2f):rL   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 scalerJ   rK   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):gñhãˆµøä>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:r0   zf    cdf for 100:zsqt  stats:r9   )r1   zf    stats:r   g       @g      @g      @r   é   r:   z&corrected skew, kurtosis of f(1,10) is)r   é   )r/   zsqt random variablesrY   iñ¼«i † r
   é   )Úbinsé2   )r   rY   T)r[   ÚrangeÚnormedéÿÿÿÿÚrz-vvsz-xz--pdb)CÚ__doc__Únumpyr5   Znumpy.testingr   Zscipyr   Z(statsmodels.sandbox.distributions.extrasr   r   r   r   r   r	   rT   rU   r-   r   Znxxr   r   r   rA   rF   rI   rP   rR   rV   r>   ÚprintÚtupler   r!   rH   r*   r,   ZfoldnormrQ   rS   Zv1Zv2ÚsqrtÚg1Úg2r3   ÚrandomÚseedZrvstsqZmomentr4   ZdescribeZlinspaceÚdecZ	histogramÚfreqÚedgesÚfloatÚlenZmatplotlib.pyplotZpyplotZpltÚhistÚ_ZplotZpytestÚmainÚ__file__r   r   r   r   Ú<module>   sÄ    


1






"""">$
&