
    !g              
          d Z ddlZddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ d Zd Zd Zd Zd Zd Zd,dZej6                  dfdZedk(  r ej<                  g dg dg dg      Z ej<                  g dg dg dg      Z  ej<                  g dg dg dg      Z!e!Z" ejF                  ej6                   ej6                   dg      Z$ ejF                  g d      Z$ ejF                  g d      Z% ejF                  g d      Z%d e$dd d!e%dd d"Z& ejN                  e&      Z( e) e
e$e%ed#$              e)ejT                  jW                  e%d   e&      ejT                  jW                  e$d   e&      z
  d!z         dZ, e) e
e,e$z  e(z  e,e%z  e(z  e"             d%Z& e) ee$e%e"e&              ejF                  d&d'gd'd&gg      Z- e) ed"d(ge-d)d*             d+Z. ed"d(ge-d)e.      Z/ e) ej`                  e/d"d(gk  jc                  d      d      d&z  e.z          e) eej6                    ejd                  d)      z   ejf                  d)      e"dd)dd)f   d)             yy)-a2  Multivariate Distribution

Probability of a multivariate t distribution

Now also mvstnormcdf has tests against R mvtnorm

Still need non-central t, extra options, and convenience function for
location, scale version.

Author: Josef Perktold
License: BSD (3-clause)

Reference:
Genz and Bretz for formula

    N)	integratestatsspecial)chi   )mvstdnormcdf)exp)log)gamma)gammalnc                     ||dz  dz
  z  t        j                  | dz        z  }|t        j                  |dz        d|dz  z  z  z  }|S )zpdf of chi-square distribution       @r      )npr	   r   r   )selfxdfPxs       k/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/sandbox/distributions/multivariate.pychi2_pdfr      sQ     
RVAXrvvqbf~	%B'--3
RV
,,BI    c                     |dz
  t        |       z  |  | z  dz  z   |dz  dz
  t        d      z  z
  t        |dz        z
  }t        |      S N      ?      ?r   r   )np_logsps_gammalnnp_expr   r   tmps      r   chi_pdfr!   #   sT    b5&)
r!tCx
(BsF1HfSk+A
A3 C#;r   c                     |dz
  t        |       z  |  | z  dz  z   |dz  dz
  t        d      z  z
  t        |dz        z
  }|S r   )r   r   r   s      r   
chi_logpdfr#   )   sO    b5&)
r!tCx
(BsF1HfSk+A
A3 CJr   c           
          t        j                  |dz         }t        | |      }|t        t	        | |z  |z  | |z  |z  |dd            z  }t        |      }|S )Nr   @B ư>maxptsabseps)r   sqrtr#   r   r   r   )sabRr   sqrt_dfrets          r   funbghr1   .   sc    ggbfoG
Qr
C6,qs7{AaCK07F G GC
+CJr   c           
          t        |      }t        j                  |      }t        |dz
  t	        |       z  | | z  dz  z
        t        | |z  |z  | |z  |z  |t        j                  |d         dd      z  S )Nr   r   r%   -C6?r'   )lenr   r*   r   r   r   tril_indices)r+   r,   r-   r.   r   nr/   s          r   funbgh2r8   6   sw    AAggbkG2a4"1Q3s7*+!A#g+qs7{Abooa6L4M!(77 7r   c                 X    t        j                  dd| dz  z
        t        | dz        z  S )Nr   r   r   )r   power	sps_gamma)r   s    r   	bghfactorr<   >   s)    88C2c6"Yr#v%666r   c                     t        | |||fddd      }||j                  |       t        j                  |d|z
  g|      \  }}	t	        j
                  t        ||	fi |\  }
}|
t        |      z  }|S )a8  
    Probability of rectangular area of standard t distribution

    assumes mean is zero and R is correlation matrix

    Notes
    -----
    This function does not calculate the estimate of the combined error
    between the underlying multivariate normal probability calculations
    and the integration.
    r4   g{Gz?   )argsepsabsepsrellimitr   )dictupdater   ppfr   quadr8   r<   )r,   r-   r.   r   iepsquadkwdsmvstkwdskwdslowerupperreserrprobs                r   
mvstdtprobrP   B   sy     aAr]4CHDH77D!d(+R0LE5~~gue<t<HC2DKr   c                    t        j                  |       } t        |       }|t         j                  k(  rt        j                  |      }n#t         j
                  j                  ||      |z  }t         j
                  j                  t        j                  |      ||f      }| |t        j                  |      dddf   z  z   S )a  generate random variables of multivariate t distribution

    Parameters
    ----------
    m : array_like
        mean of random variable, length determines dimension of random variable
    S : array_like
        square array of covariance  matrix
    df : int or float
        degrees of freedom
    n : int
        number of observations, return random array will be (n, len(m))

    Returns
    -------
    rvs : ndarray, (n, len(m))
        each row is an independent draw of a multivariate t distributed
        random variable


    N)
r   asarrayr5   infonesrandom	chisquaremultivariate_normalzerosr*   )mSr   r7   dr   zs          r   multivariate_t_rvsr]   X   s    , 	

1AAA	RVV|GGAJIIA&r)
		%%bhhqk!QD9AqAdF####r   __main__)r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   g      Y)Qr_   r_   )        r`   r`   )Q?ra   ra   r3      g      $@r&   )r)      r   r   g      4@r      i'  )gh㈵>NN)4__doc__numpyr   scipyr   r   r   scipy.statsr   extrasr   r	   r   r
   r   scipy.specialr   r;   r   r   r   r!   r#   r1   r8   r<   rP   rS   r]   __name__rR   corr
corr_indep
corr_equalr.   arrayr,   r-   r   r*   r/   printtcdfr+   rZ   nobsrvstsumallrT   rX    r   r   <module>rx      s     + +      , 0
77, !#! $D z2::}WY78D[9:J_[EFJA266'266'&)*A$%AA"#AAaDAaD	BbggbkG	,q!T$
/0 
577;;qtR 577;;qtR#881
<=	A	,qs7{AaCK
34 	B	*Q1b
!"2b'2b'"#A	
c#Y1a
01Ds3iAt4D	&"&&$Cy.%%a(
+b
04
78	*bffWWRWWQZ'!a2A2h
BCE r   