Example #1
0
def funbgh2(s, a, b, R, df):
    n = len(a)
    sqrt_df = np.sqrt(df)
    #np.power(s, df-1) * np_exp(-s*s*0.5)
    return  np_exp((df-1)*np_log(s)-s*s*0.5) \
           * mvstdnormcdf(s*a/sqrt_df, s*b/sqrt_df, R[np.tril_indices(n, -1)],
                          maxpts=1000000, abseps=1e-4)
Example #2
0
def funbgh2(s, a, b, R, df):
    n = len(a)
    sqrt_df = np.sqrt(df)
    #np.power(s, df-1) * np_exp(-s*s*0.5)
    return  np_exp((df-1)*np_log(s)-s*s*0.5) \
           * mvstdnormcdf(s*a/sqrt_df, s*b/sqrt_df, R[np.tril_indices(n, -1)],
                          maxpts=1000000, abseps=1e-4)
Example #3
0
def funbgh(s, a, b, R, df):
    sqrt_df = np.sqrt(df+0.5)
    ret = chi_logpdf(s,df)
    ret += np_log(mvstdnormcdf(s*a/sqrt_df, s*b/sqrt_df, R,
                                         maxpts=1000000, abseps=1e-6))
    ret = np_exp(ret)
    return  ret
Example #4
0
def funbgh(s, a, b, R, df):
    sqrt_df = np.sqrt(df + 0.5)
    ret = chi_logpdf(s, df)
    ret += np_log(
        mvstdnormcdf(s * a / sqrt_df,
                     s * b / sqrt_df,
                     R,
                     maxpts=1000000,
                     abseps=1e-6))
    ret = np_exp(ret)
    return ret
Example #5
0

if __name__ == '__main__':
    corr = np.asarray([[1.0, 0, 0.5], [0, 1, 0], [0.5, 0, 1]])
    corr_indep = np.asarray([[1.0, 0, 0], [0, 1, 0], [0, 0, 1]])
    corr_equal = np.asarray([[1.0, 0.5, 0.5], [0.5, 1, 0.5], [0.5, 0.5, 1]])
    R = corr_equal
    a = np.array([-np.inf, -np.inf, -100.0])
    a = np.array([-0.96, -0.96, -0.96])
    b = np.array([0.0, 0.0, 0.0])
    b = np.array([0.96, 0.96, 0.96])
    a[:] = -1
    b[:] = 3
    df = 10.
    sqrt_df = np.sqrt(df)
    print mvstdnormcdf(a, b, corr, abseps=1e-6)

    #print integrate.quad(funbgh, 0, np.inf, args=(a,b,R,df))
    print(stats.t.cdf(b[0], df) - stats.t.cdf(a[0], df))**3

    s = 1
    print mvstdnormcdf(s * a / sqrt_df, s * b / sqrt_df, R)

    df = 4
    print mvstdtprob(a, b, R, df)

    S = np.array([[1., .5], [.5, 1.]])
    print multivariate_t_rvs([10., 20.], S, 2, 5)

    nobs = 10000
    rvst = multivariate_t_rvs([10., 20.], S, 2, nobs)
Example #6
0

if __name__ == '__main__':
    corr = np.asarray([[1.0, 0, 0.5],[0,1,0],[0.5,0,1]])
    corr_indep = np.asarray([[1.0, 0, 0],[0,1,0],[0,0,1]])
    corr_equal = np.asarray([[1.0, 0.5, 0.5],[0.5,1,0.5],[0.5,0.5,1]])
    R = corr_equal
    a = np.array([-np.inf,-np.inf,-100.0])
    a = np.array([-0.96,-0.96,-0.96])
    b = np.array([0.0,0.0,0.0])
    b = np.array([0.96,0.96, 0.96])
    a[:] = -1
    b[:] = 3
    df = 10.
    sqrt_df = np.sqrt(df)
    print mvstdnormcdf(a, b, corr, abseps=1e-6)

    #print integrate.quad(funbgh, 0, np.inf, args=(a,b,R,df))
    print (stats.t.cdf(b[0], df) - stats.t.cdf(a[0], df))**3

    s = 1
    print mvstdnormcdf(s*a/sqrt_df, s*b/sqrt_df, R)


    df=4
    print mvstdtprob(a, b, R, df)

    S = np.array([[1.,.5],[.5,1.]])
    print multivariate_t_rvs([10.,20.], S, 2, 5)

    nobs = 10000