
    !g              	       8   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(  r9 e        ej3                         D  cg c]R  \  } } ej4                  |d   d   |d   d   z
        dkD  r) ej6                  |d   d         r| |d   d   |d   d   fT c}} Zej3                         D  cg c]R  \  } } ej4                  |d   d   |d   d   z
        dkD  r) ej6                  |d   d         r| |d   d   |d   d   fT c}} Zej3                         D  cg c]R  \  } } ej4                  |d   d   |d   d   z
        dkD  r) ej6                  |d   d         r| |d   d   |d   d   fT c}} Zej3                         D  cg c]R  \  } } ej4                  |d   d   |d   d   z
        dkD  r) ej6                  |d   d         r| |d   d   |d   d   fT c}} Zddl m!Z!  e"e      dkD  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             yyc c}} w c c}} w c c}} w c c}} w )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          r/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/sandbox/distributions/tests/check_moments.pymc2mvskr      sN     BS#99S#s(#D99S#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                      y)Ng      ? xs    r   mom_nc0r%   &   s    r   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    88Aa=r   c            
         t         d d  D ]  \  } }t        t        |        j                  |i t        d      \  }}}}t	        j
                  ||||g      }t	        j                  |      }|j                         dk  rt        j                  |        t        |        j                  }fd}t        j                  | 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      \  }}}}t	        j
                  ||||g      }||   ||   z
  }t        ||dd|z  z   z
         t	        j(                  |      d
kD  rAt	        j,                  t	        j.                  |            dkD  rt0        j                  |        nt2        j                  |        |
||||gt4        | <    y #  t        d	|||||       t        j&                  gdz  \  }}}}|j(                  d
kD  rt*        j                  |        Y xY w)Nmvskmomentsr   c                  "    t        g| i |S r'   r   )r   kwdsdistfns     r   <lambda>z"check_cont_basic.<locals>.<lambda>P   s    	&(H4(H4(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'    'qk 06() &,,AD,@A!AaXXq1Qi {{288:>  *hH#''"5g=H==484|4g=H==g=H==g=H==GhAQG,G	(%tT4&>?NBB XXr2r2&'$x"T("dGq1T6z*+774=?rvvbffTl3d:NN8$MM(#r2tW5Ha06>	(+tT4r: ffXaZNBByy1}h's   G++AH=c                  @   ddl m}  d} | t        j                  j                  ddd      |d	       t	        j
                  d
g      }t	        j
                  ddg      }t	        j
                  ddg      }t	        j
                  g d      }d}|j                         }||t	        j
                  ddg      z  z  j                         }||t	        j
                  ddg      z  z  j                         }	t	        j
                  g d      x}
}t        |||	|
f      }y)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@I		Av>	STU	xx	B	xx7#$B	8W%	&B	,	-B 
B
'')Cb"((Aa5/!!
&
&
(Cb"((Aa5/!!
&
&
(CXX011C"s3s3'(Gr   __main__r8   gư>g{Gz?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__itemsrK   r?   mean_var_r   r   statsmodels.iolibrt   lenrC   )rT   rR   s   00r   <module>r      s     ?   tDk !	( 		
	36j). z /2iik IsqqtAw1a()$.;2;;qtAw3G 1a!A$q'" IE-0YY[ Hcarvvad1g!Q'(-+"++ad1g2F !Q1a! HD-0YY[ Hcarvvad1g!Q'(-+"++ad1g2F !Q1a! HD-0YY[ Hcarvvad1g!Q'(-+"++ad1g2F !Q1a! HD .
5zA~/0k%)LMN	
/0	+d$G
HI	
+,	+d$G
HI	
/0	+d$G
HI/ 
IHHHs   $AJAJ
 AJ.AJ