
    M/Ph                        d Z ddlZddlmZ ddlmZ ddlmZ ddd	iiZ	d
 Z
d Zd Zd Zd Zd Zd Zi Zg Zg Zg Zg Zd Zd Zedk    r% e             d e                                D             Zd e                                D             Zd e                                D             Zd e                                D             ZddlmZ  e e          dk    r# e!d            e! eeg d                      e!d            e! eeg d                      e!d            e! eeg d                      e!d            e! eeg d                     dS dS )zscript to test expect and moments in distributions.stats method

not written as a test, prints results, renamed to prevent test runner from running it


    N)stats	expect_v2   )distcontncfubi  c                     | \  }}}}t          j        ||dz            }t          j        ||dz            dz
  }||||fS )>convert central moments to mean, variance, skew, kurtosis
    g      ?g       @g      @)npdivide)argsmcmc2mc3mc4skewkurts          u/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/sandbox/distributions/tests/check_moments.pymc2mvskr      sP     BS#9S#s(##D9S#s(##c)DT4      c                     | \  }}}}|}|||z  z
  }|d|z  |z  |dz  z   z
  }|d|z  |z  d|z  |z  |z  z   |dz  z   z
  }t          ||||f          S )r            )r   )	r   mncmnc2mnc3mnc4r   r   r   r   s	            r   mnc2mvskr       s     !CtT	B
S.C
!B$s(2q5.
!C
!B$s(1R473;&r1u,
-CBS#&'''r   c                     dS )Ng      ? xs    r   mom_nc0r%   &   s    2r   c                     | S Nr"   r#   s    r   mom_nc1r(   )   s    Hr   c                     | | z  S r'   r"   r#   s    r   mom_nc2r*   ,   s    Q3Jr   c                     | | z  | z  S r'   r"   r#   s    r   mom_nc3r,   /   s    Q3q5Lr   c                 ,    t          j        | d          S )Nr   )r   powerr#   s    r   mom_nc4r/   2   s    8Aa==r   c            
         t           d d          D ]\\  } }t          t          |            j        |i t          d          \  }}}}t	          j        ||||g          }t	          j        |          }|                                dk     rt          	                    |            t          |            j        }fd}t                              | i           }	 |t          fd|i|	}
 |dd|i|	} |t          fd|i|	} |t           fd|i|	} |t"          fd|i|	} |d|ddd|	}	 t%          ||||f          \  }}}}nU#  t          d	|||||           t          j        gdz  \  }}}}|j        d
k    rt*          	                    |            Y nxY wt	          j        ||||g          }||         ||         z
  }t          ||dd|z  z   z
             t	          j        |          d
k    rEt	          j        t	          j        |                    dk    rt0          	                    |            nt2          	                    |            |
||||gt4          | <   ^d S )Nmvskmomentsr   c                  $    t          g| R i |S r'   r   )r   kwdsdistfns     r   <lambda>z"check_cont_basic.<locals>.<lambda>P   s    	&(H4(H(H(H4(H(H r   r   r      )r   locscale	exceptionr   gMbP?r"   )r   getattrr   dictr   arrayisfinitesumdistnonfiniteappendprintexpectspecialcasesgetr%   r*   r,   r/   r    nansizedistexmaxabsdistlowdistokres)distnamedistargsmvskstmaskrD   special_kwdsmnc0mnc1r   r   r   mnc1_lcmevesekeemdiffr6   s                         @r   check_cont_basicra   ;   s    'qqqk 06 06()) &,AD,@,@,@AA!AaXq1Qi  {288::>>  ***hHHHH#''"55vg==H===v4484|44vg==H===vg==H===vg==H===&GhAQGG,GG	(%tT4&>??NBB	(+tT4r::: fXaZNBBy1}}h''' Xr2r2&''$x"T("dGq1T6z*+++74==??rvbfTll33d::NN8$$$$MM(###r2tW5Ha06 06s   7EAF"c                  Z   ddl m}  d} | t          j                            ddd          |d	           t	          j        d
g          }t	          j        ddg          }t	          j        ddg          }t	          j        g d          }d}|                                }||t	          j        ddg          z  z                                  }||t	          j        ddg          z  z                                  }	t	          j        g d          x}
}t          |||	|
f          }dS )ztest for incorrect kurtosis of nct

    D. Hogben, R. S. Pinkham, M. B. Wilk: The Moments of the Non-Central
    t-DistributionAuthor(s): Biometrika, Vol. 48, No. 3/4 (Dec., 1961),
    pp. 465-468
    r   )assert_almost_equal)V`V?gso5?g*s?ga?
   r   r1   r2   r   )decimalrd   g8WV?g      ?gEd~?gl%?)gu*'ȥ?gmn?g      @r8   r   N)	numpy.testingrc   r   nctr   r>   itemr@   r   )rc   	mvsk_10_1c1c2c3c4ncmc1r   r   r   mvsk_ncs               r   nct_kurt_bugrr   p   s.    211111@I	Av>>	STUUUU	x	B	x7#$$B	8W%	&	&B	,,,	-	-B 
B
''))Cb"(Aa5//!!
&
&
(
(Cb"(Aa5//!!
&
&
(
(CX000111C"s3s3'((GGGr   __main__c                     g | ]u\  }}t          j        |d          d         |d         d         z
            dk    8t          j        |d          d                   X||d          d         |d         d         fvS )r   r   r8   gư>r   rK   r?   .0rT   rR   s      r   
<listcomp>rx      s     I I IsqqtAw1a())$..2;qtAw3G3G. 1a!A$q'"...r   c                     g | ]u\  }}t          j        |d          d          |d         d          z
            dk    8t          j        |d          d                    X||d          d          |d         d          fvS r   r8   {Gz?ru   rv   s      r   rx   rx           H H Hcavad1g!Q'((--"+ad1g2F2F- !Q1a!---r   c                     g | ]u\  }}t          j        |d          d         |d         d         z
            dk    8t          j        |d          d                    X||d          d         |d         d         fvS rz   ru   rv   s      r   rx   rx      r|   r   c                     g | ]u\  }}t          j        |d          d         |d         d         z
            dk    8t          j        |d          d                    X||d          d         |d         d         fvS )r   r   r8   r{   ru   rv   s      r   rx   rx      r|   r   )SimpleTablez
Mean difference at least 1e-6)rO   	diststatsrD   )headersz"
Variance difference at least 1e-2z
Skew difference at least 1e-2z"
Kurtosis difference at least 1e-2)"__doc__numpyr   scipyr   )statsmodels.sandbox.distributions.sppatchr   
distparamsr   rE   r   r    r%   r(   r*   r,   r/   rN   rI   rL   rM   rA   ra   rr   __name__itemsmean_var_r   r   statsmodels.iolibr   lenrC   r"   r   r   <module>r      s              ? ? ? ? ? ?             tDk ! ! !	( 	( 	(           		
	36 36 36j) ) ). zI Iciikk I I IEH HSYY[[ H H HDH HSYY[[ H H HDH HSYY[[ H H HD .-----
s5zzA~~/000kk%)L)L)LMMMNNN	E
/000	E++d$G$G$G
H
H
HIII	E
+,,,	E++d$G$G$G
H
H
HIII	E
/000	E++d$G$G$G
H
H
HIIIII/ r   