
    M/Ph                        d Z ddlZddlZddlmZ ddlmZmZ ddl	m
Z
mZmZmZ  ed           ej        j        _        d Zeej        j        _        d Zeej        j        _        d	Z G d
 d          Zedk    r e            Ze                                 e                                 dZer e ej         g d                      eej!                             g dd                      eej"                    eej#                    e ej        d                      e ej        d                              d                      eej$                            d                     dS dS dS )a  


Created on Sun May 09 22:35:21 2010
Author: josef-pktd
License: BSD

todo:
change moment calculation, (currently uses default _ppf method - I think)
# >>> lognormalg.moment(4)
Warning: The algorithm does not converge.  Roundoff error is detected
  in the extrapolation table.  It is assumed that the requested tolerance
  cannot be achieved, and that the returned result (if full_output = 1) is
  the best which can be obtained.
array(2981.0032380193438)
    N)assert_almost_equal)statsspecial)squarenormalg
absnormalgnegsquarenormalgsquaretgc                     | j         j        S )N)distname)selfs    s/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/sandbox/distributions/tests/test_transf.py<lambda>r      s
    49>     c                 Z   t           j        t           j        t           j        t           j        t           j        f\  }}}}} ||dz            } ||dz            }	 ||dk    | ||dz
            z  |          }
d|z  |z  ||	z   dz
  z  |	|dz
  dz  z  |dz
  z  z  } ||dk    ||          }d|d|	z  z   dz
  z  |dz
  z  t          j        d|dz
  z  |	||	z   dz
  z  z            z  } ||dk    ||          }dd|z  d	z
  z  d
||z  |dz
  z  z   z  } ||d
k    ||          }|
|||fS )N      ?             @g      @g      @            )nparraywhereinfsqrtnan)r   dfndfdarrr   r   r   r   v2v1mumu2g1g2s                 r   f_statsr)       sd   !#28RVRWbf!LCT3	SWB	SWB	rAvrCCQKK'	-	-B
B$r'2b57
RA	\RT2
3C
%QS
!
!C	
BqtGBJB	2b5	2r"uRx=(A B B	BB	rAvr3		B	
BrE"HqB2	'B	rAvr3		BsB?r   c                    t           j        t           j        t           j        t           j        t           j        f\  }}}}}t           j        }t           j        }t          j	        | |d          z            }	 |d|z             |d|z  |z            z  ||	z  z   }
||z  dz   |
|
z  z
  }||z  } |d|z             |d|z            z  d| ||          z  d|z  dz   z  z
  z  }|d|z  |	z  d ||           z  d	 |d|z            z  |z   || dz            z  |	z  z   ||z  |	|	z  dz
  z  z   z  z  }|||d
z  z  z  }||z  d|z  z   d	z   d|dz   z  |
z  |
z  z   d	|
dz  z  z
  }|d || dz            z  |
z   |d|z            |dz   z  ||d	z   z   ||dz            z  |	z  z   z  z  }||dz  z  }|dz  }|
|||fS )Nr   r   g         g      r   r   r   r   g      ?g      @)
r   r   r   r   r   r   exppir   erf)r   cr"   r   r   r   r   r,   r-   facr%   r&   c2r'   r(   s                  r   foldnorm_statsr2   4   s    !#28RVRWbf!LCT3
&C	B
+aQi
 
 C	c"fcc$q&(mm	#AcE	)B
A#'BrE/C	
1B	adCCRLL	 !Bss2wwJ"S$9"9	:B!A#c'1SS"XX:$$qt**QssB3s7|| ;C ??a4S#$ % %B"S#X+B	BqtAaAhrk"n	$qQw	.B!CCCLL.
TT#b&\\2a40BqD##bf++1Ec1II
JJB#s(NB"HBsB?r      c                   0    e Zd Zed             Zd Zd ZdS )Test_Transf2c                 &   t           t          j        d          ft          t          j        ft          t          j        d          ft          d          t          j        dd          fg| _        d\  }}g d| _	        g d| _
        g d| _        d S )Nr+   gh㈵>
   )g        r   g?g      ?g?)gffffff?r   g?)gffffffg      g)r   r   chi2r   halfnormfoldnormr	   fdist_equivalentsppfqxxnxx)clslss      r   setup_classzTest_Transf2.setup_classR   s     EJqMM*(--.b\\571b>>*
 
 ! ==###r   c                    | j         | j        }}t          | j                  D ]\  }\  }}t	          |                    |          |                    |          d|j        z              t	          |                    |          |                    |          d|j        z   |j        z              t	          |                    |          |                    |          d|j        z   |j        z              t	          |	                    |          |	                    |          d|j        z   |j        z              t	          |
                    |          |
                    |          d|j        z   |j        z              || _        || _        t          |d          r |j        j        dg|j        R  }n|                    d          }|dk    rt#          d	           t	          |                    d          |t$          d
|j        z   |j        z              t&          j        d d          }t'          j        d           	 |                    d          }|                    d          }	|t&          _        n# |t&          _        w xY wt	          |d d         |	d d         d|j        z   |j        z              t	          |dd          |	dd          dd|j        z   |j        z              d S )Ncdferr_msgzpdf zsf zppq zisf r   r   nowzmoment ignoremvskmomentsr   stats )decimalrH   )r?   r>   	enumerater=   r   rF   r   pdfsfppfisfd1d2hasattrr   momentargsprintDECIMALwarningsfilterssimplefilterr   )
r   r?   r>   jrU   rV   d2momorig_filters1s2s
             r   test_equivalentzTest_Transf2.test_equivalente   s   7DID"4#899 (	B (	BIAgr"r

BFF2JJbgNNNNr

BFF2JJ(.rwrw(>@ @ @ @b		25599(-bgbg(=? ? ? ?tbffTll(.rwrw(>@ @ @ @tbffTll(.rwrw(>@ @ @ @DGDG
 r6"" %&q327333		!!tte		!e '(1"'(9"'(AC C C C
 #*111-K!(+++/XXfX--XXfX--#.  ; ....2A22A2(0(8(@B B B B122122()(0(8(@B B B B BM(	B (	Bs   ,J

Jc                    | j         | j        | j        }}}t          t	          j        d          }}t          |                    |          d|                    |          z
  d|j        z              t          |	                    |          |	                    |                     t          |
                    |          d|
                    |          z
             t          |                    |          |                    |          d d d                     t          |                    |          |                    |          d d d                     t          |                    d          |                    d                      d t          |                    d                    D             }t          |                    d          |d	|j        z   |j        z              d S )
Nr+   rF   rG   r   c                 *    g | ]\  }}|d |dz   z  z  S )rf   r+    ).0ivs      r   
<listcomp>z6Test_Transf2.test_equivalent_negsq.<locals>.<listcomp>   s4     : : :sqQac{] : : :r   rK   rL   rN   )r?   r@   r>   r   r   r9   r   rF   r   rQ   rR   rS   rT   rX   rP   )r   r?   r@   r>   rU   rV   	ch2oddnegs          r   test_equivalent_negsqz"Test_Transf2.test_equivalent_negsq   s    49C!5:a==2BFF3KK266"::uRW}MMMMBFF3KK444BEE#JJ"%%))444BFF4LL266$<<"+=*=>>>BFF4LL266$<<"+=*=>>>BIIaLL299Q<<-888: :rxxx7788: : :	BHHVH44i$,RW$4RW$<	> 	> 	> 	> 	> 	>r   N)__name__
__module____qualname__classmethodrD   rd   rn   rh   r   r   r5   r5   P   sO        $ $ [$$*B *B *B\> > > > >r   r5   __main__r8   r+   rK   rL   g|=)%__doc__r\   numpyr   numpy.testingr   scipyr   r   (statsmodels.sandbox.distributions.extrasr   r   r   r	   propertydistributions	rv_frozenr   r)   r<   	__class___statsr2   r;   r[   r5   ro   ttrd   rn   debugrZ   rS   r9   abr:   rh   r   r   <module>r      s_          - - - - - -                ; ; ; ; ; ; ; ; ; ; ; ; &.X.I.I%J%J   "    #    * #1  
 S> S> S> S> S> S> S> S>l z	BE 5""===11222ejnn]]]1--... !!! !!!j///000nenU##))6)::;;;en""F"3344444 5 5r   