Python scipy.special.betainc() Examples
The following are 30
code examples of scipy.special.betainc().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
scipy.special
, or try the search function
.
Example #1
Source File: S1AreaFractionTopProbability.py From pax with BSD 3-Clause "New" or "Revised" License | 6 votes |
def bdtrc(k, n, p): if (k < 0): return (1.0) if (k == n): return (0.0) dn = n - k if (k == 0): if (p < .01): dk = -np.expm1(dn * np.log1p(-p)) else: dk = 1.0 - np.exp(dn * np.log(1.0 - p)) else: dk = k + 1 dk = betainc(dk, dn, p) return dk
Example #2
Source File: statistics.py From esmlab with Apache License 2.0 | 6 votes |
def compute_corr_significance(r, N): """ Compute statistical significance for a pearson correlation between two xarray objects. Parameters ---------- r : `xarray.DataArray` object correlation coefficient between two time series. N : int length of time series being correlated. Returns ------- pval : float p value for pearson correlation. """ df = N - 2 t_squared = r ** 2 * (df / ((1.0 - r) * (1.0 + r))) # method used in scipy, where `np.fmin` constrains values to be # below 1 due to errors in floating point arithmetic. pval = special.betainc(0.5 * df, 0.5, np.fmin(df / (df + t_squared), 1.0)) return xr.DataArray(pval, coords=t_squared.coords, dims=t_squared.dims)
Example #3
Source File: stats.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _betai(a, b, x): x = np.asarray(x) x = np.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x) ##################################### # STATISTICAL DISTANCES # #####################################
Example #4
Source File: stats.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _betai(a, b, x): x = np.asarray(x) x = np.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x) ##################################### # ANOVA CALCULATIONS # #####################################
Example #5
Source File: S1AreaFractionTopProbability.py From pax with BSD 3-Clause "New" or "Revised" License | 5 votes |
def bdtr(k, n, p): if (k < 0): return np.nan if (k == n): return (1.0) dn = n - k if (k == 0): dk = np.exp(dn * np.log(1.0 - p)) else: dk = k + 1 dk = betainc(dn, dk, 1.0 - p) return dk
Example #6
Source File: anisotropy.py From lenstronomy with MIT License | 5 votes |
def K(r, R, beta): """ equation A16 im Mamon & Lokas for constant anisotropy :param r: 3d radius :param R: projected 2d radius :param beta: anisotropy :return: K(r, R, beta) """ u = r / R k = np.sqrt(1 - 1. / u ** 2) / (1. - 2 * beta) + np.sqrt(np.pi) / 2 * special.gamma( beta - 1. / 2) / special.gamma(beta) \ * (3. / 2 - beta) * u ** (2 * beta - 1.) * (1 - special.betainc(beta + 1. / 2, 1. / 2, 1. / u ** 2)) return k
Example #7
Source File: corrcoef_matrix.py From teneto with GNU General Public License v3.0 | 5 votes |
def corrcoef_matrix(matrix): # Code originating from http://stackoverflow.com/a/24547964 by http://stackoverflow.com/users/2455058/jingchao r = np.corrcoef(matrix) rf = r[np.triu_indices(r.shape[0], 1)] df = matrix.shape[1] - 2 ts = rf * rf * (df / (1 - rf * rf)) pf = betainc(0.5 * df, 0.5, df / (df + ts)) p = np.zeros(shape=r.shape) p[np.triu_indices(p.shape[0], 1)] = pf p[np.tril_indices(p.shape[0], -1)] = pf p[np.diag_indices(p.shape[0])] = np.ones(p.shape[0]) return r, p
Example #8
Source File: special.py From GSTools with GNU Lesser General Public License v3.0 | 5 votes |
def inc_beta(a, b, x): r"""The incomplete Beta function. Given by: :math:`B(a,b;\,x) = \int_0^x t^{a-1}\,(1-t)^{b-1}\,dt` Parameters ---------- a : :class:`float` first exponent in the integral b : :class:`float` second exponent in the integral x : :class:`numpy.ndarray` input values """ return sps.betainc(a, b, x) * sps.beta(a, b)
Example #9
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_betaincinv(self): y = special.betaincinv(2,4,.5) comp = special.betainc(2,4,y) assert_almost_equal(comp,.5,5)
Example #10
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_betainc(self): btinc = special.betainc(1,1,.2) assert_almost_equal(btinc,0.2,8)
Example #11
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_betainc(self): assert_equal(cephes.betainc(1,1,1),1.0) assert_allclose(cephes.betainc(0.0342, 171, 1e-10), 0.55269916901806648)
Example #12
Source File: _discrete_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _cdf(self, x, n, p): k = floor(x) return special.betainc(n, k+1, p)
Example #13
Source File: test_continuous_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def check_sample_mean(sm, v, n, popmean): # from stats.stats.ttest_1samp(a, popmean): # Calculates the t-obtained for the independent samples T-test on ONE group # of scores a, given a population mean. # # Returns: t-value, two-tailed prob df = n-1 svar = ((n-1)*v) / float(df) # looks redundant t = (sm-popmean) / np.sqrt(svar*(1.0/n)) prob = betainc(0.5*df, 0.5, df/(df + t*t)) # return t,prob npt.assert_(prob > 0.01, 'mean fail, t,prob = %f, %f, m, sm=%f,%f' % (t, prob, popmean, sm))
Example #14
Source File: mstats_basic.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _betai(a, b, x): x = np.asanyarray(x) x = ma.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x)
Example #15
Source File: mstats_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _betai(a, b, x): x = np.asanyarray(x) x = ma.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x)
Example #16
Source File: thinkstats2.py From DataExploration with MIT License | 5 votes |
def MakeCdf(self, steps=101): """Returns the CDF of this distribution.""" xs = [i / (steps - 1.0) for i in range(steps)] ps = [special.betainc(self.alpha, self.beta, x) for x in xs] cdf = Cdf(xs, ps) return cdf
Example #17
Source File: test_basic.py From Computable with MIT License | 5 votes |
def test_betaincinv(self): y = special.betaincinv(2,4,.5) comp = special.betainc(2,4,y) assert_almost_equal(comp,.5,5)
Example #18
Source File: stats.py From lambda-packs with MIT License | 5 votes |
def _betai(a, b, x): x = np.asarray(x) x = np.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x) ##################################### # STATISTICAL DISTANCES # #####################################
Example #19
Source File: test_basic.py From Computable with MIT License | 5 votes |
def test_betainc(self): btinc = special.betainc(1,1,.2) assert_almost_equal(btinc,0.2,8)
Example #20
Source File: test_basic.py From Computable with MIT License | 5 votes |
def test_betainc(self): assert_equal(cephes.betainc(1,1,1),1.0)
Example #21
Source File: mstats_basic.py From Computable with MIT License | 5 votes |
def betai(a, b, x): x = np.asanyarray(x) x = ma.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x)
Example #22
Source File: stats.py From Computable with MIT License | 5 votes |
def betai(a, b, x): """ Returns the incomplete beta function. I_x(a,b) = 1/B(a,b)*(Integral(0,x) of t^(a-1)(1-t)^(b-1) dt) where a,b>0 and B(a,b) = G(a)*G(b)/(G(a+b)) where G(a) is the gamma function of a. The standard broadcasting rules apply to a, b, and x. Parameters ---------- a : array_like or float > 0 b : array_like or float > 0 x : array_like or float x will be clipped to be no greater than 1.0 . Returns ------- betai : ndarray Incomplete beta function. """ x = np.asarray(x) x = np.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x) ##################################### ####### ANOVA CALCULATIONS ####### #####################################
Example #23
Source File: viewpoint.py From HiCExplorer with GNU General Public License v3.0 | 5 votes |
def cdf(self, pX, pR, pP): """ Cumulative density function of a continuous generalization of NB distribution """ # if pX == 0: # return 0 return special.betainc(pR, pX + 1, pP)
Example #24
Source File: _continuous_distns.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _cdf(self, x, a, b): return sc.betainc(a, b, x/(1.+x))
Example #25
Source File: _discrete_distns.py From lambda-packs with MIT License | 5 votes |
def _cdf(self, x, n, p): k = floor(x) return special.betainc(n, k+1, p)
Example #26
Source File: _discrete_distns.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def _cdf(self, x, n, p): k = floor(x) return special.betainc(n, k+1, p)
Example #27
Source File: mstats_basic.py From lambda-packs with MIT License | 5 votes |
def _betai(a, b, x): x = np.asanyarray(x) x = ma.where(x < 1.0, x, 1.0) # if x > 1 then return 1.0 return special.betainc(a, b, x)
Example #28
Source File: mstats_basic.py From Splunking-Crime with GNU Affero General Public License v3.0 | 4 votes |
def ttest_ind(a, b, axis=0, equal_var=True): """ Calculates the T-test for the means of TWO INDEPENDENT samples of scores. Parameters ---------- a, b : array_like The arrays must have the same shape, except in the dimension corresponding to `axis` (the first, by default). axis : int or None, optional Axis along which to compute test. If None, compute over the whole arrays, `a`, and `b`. equal_var : bool, optional If True, perform a standard independent 2 sample test that assumes equal population variances. If False, perform Welch's t-test, which does not assume equal population variance. .. versionadded:: 0.17.0 Returns ------- statistic : float or array The calculated t-statistic. pvalue : float or array The two-tailed p-value. Notes ----- For more details on `ttest_ind`, see `stats.ttest_ind`. """ a, b, axis = _chk2_asarray(a, b, axis) if a.size == 0 or b.size == 0: return Ttest_indResult(np.nan, np.nan) (x1, x2) = (a.mean(axis), b.mean(axis)) (v1, v2) = (a.var(axis=axis, ddof=1), b.var(axis=axis, ddof=1)) (n1, n2) = (a.count(axis), b.count(axis)) if equal_var: # force df to be an array for masked division not to throw a warning df = ma.asanyarray(n1 + n2 - 2.0) svar = ((n1-1)*v1+(n2-1)*v2) / df denom = ma.sqrt(svar*(1.0/n1 + 1.0/n2)) # n-D computation here! else: vn1 = v1/n1 vn2 = v2/n2 with np.errstate(divide='ignore', invalid='ignore'): df = (vn1 + vn2)**2 / (vn1**2 / (n1 - 1) + vn2**2 / (n2 - 1)) # If df is undefined, variances are zero. # It doesn't matter what df is as long as it is not NaN. df = np.where(np.isnan(df), 1, df) denom = ma.sqrt(vn1 + vn2) with np.errstate(divide='ignore', invalid='ignore'): t = (x1-x2) / denom probs = special.betainc(0.5*df, 0.5, df/(df + t*t)).reshape(t.shape) return Ttest_indResult(t, probs.squeeze())
Example #29
Source File: PyRate.py From PyRate with GNU Affero General Public License v3.0 | 4 votes |
def NHPP_lik(arg): [m,M,shapeGamma,q_rate,i,cov_par, ex_rate]=arg i=int(i) x=fossil[i] lik=0 k=len(x[x>0]) # no. fossils for species i x=sort(x)[::-1] # reverse xB1= -(x-M) # distance fossil-ts c=.5 if cov_par !=0: # transform preservation rate by trait value q=exp(log(q_rate)+cov_par*(con_trait[i]-parGAUS[0])) else: q=q_rate if m==0 and use_DA == 1: # data augmentation l=1./ex_rate #quant=[.1,.2,.3,.4,.5,.6,.7,.8,.9] quant=[.125,.375,.625,.875] # quantiles gamma distribution (predicted te) #quant=[.5] GM= -(-log(1-np.array(quant))/ex_rate) # get the x values from quantiles (exponential distribution) # GM=-array([gdtrix(ex_rate,1,jq) for jq in quant]) # get the x values from quantiles z=np.append(GM, [GM]*(k)).reshape(k+1,len(quant)).T xB=xB1/-(z-M) # rescaled fossil record from ts-te_DA to 0-1 C=M-c*(M-GM) # vector of modal values a = 1 + (4*(C-GM))/(M-GM) # shape parameters a,b=3,3 b = 1 + (4*(-C+M))/(M-GM) # values will change in future implementations #print M, GM int_q = betainc(a,b,xB[:,k])* (M-GM)*q # integral of beta(3,3) at time xB[k] (tranformed time 0) MM=np.zeros((len(quant),k))+M # matrix speciation times of length quant x no. fossils aa=np.zeros((len(quant),k))+a[0] # matrix shape parameters (3) of length quant x no. fossils bb=np.zeros((len(quant),k))+b[0] # matrix shape parameters (3) of length quant x no. fossils X=np.append(x[x>0],[x[x>0]]*(len(quant)-1)).reshape(len(quant), k) # matrix of fossils of shape quant x no. fossils if len(quant)>1: den = sum(G_density(-GM,1,l)) + small_number #lik_temp= sum(exp(-(int_q) + np.sum((logPERT4_density(MM,z[:,0:k],aa,bb,X)+log(q)), axis=1) ) \ #* (G_density(-GM,1,l)/den) / (1-exp(-int_q))) / len(GM) #if lik_temp>0: lik=log(lik_temp) #else: lik = -inf # LOG TRANSF log_lik_temp = (-(int_q) + np.sum((logPERT4_density(MM,z[:,0:k],aa,bb,X)+log(q)), axis=1) ) \ + log(G_density(-GM,1,l)/den) - log(1-exp(-int_q)) maxLogLikTemp = max(log_lik_temp) log_lik_temp_scaled = log_lik_temp-maxLogLikTemp lik = log(sum(exp(log_lik_temp_scaled))/ len(GM))+maxLogLikTemp else: lik= sum(-(int_q) + np.sum((logPERT4_density(MM,z[:,0:k],aa,bb,X)+log(q)), axis=1)) lik += -sum(log(np.arange(1,k+1))) elif m==0: lik = HOMPP_lik(arg) else: C=M-c*(M-m) a = 1+ (4*(C-m))/(M-m) b = 1+ (4*(-C+M))/(M-m) lik = -q*(M-m) + sum(logPERT4_density(M,m,a,b,x)+log(q)) - log(1-exp(-q*(M-m))) lik += -sum(log(np.arange(1,k+1))) #if m==0: print i, lik, q, k, min(x),sum(exp(-(int_q))) return lik
Example #30
Source File: PyRate.py From PyRate with GNU Affero General Public License v3.0 | 4 votes |
def NHPP_lik(arg): [m,M,shapeGamma,q_rate,i,cov_par, ex_rate]=arg i=int(i) x=fossil[i] lik=0 k=len(x[x>0]) # no. fossils for species i x=sort(x)[::-1] # reverse xB1= -(x-M) # distance fossil-ts c=.5 if cov_par !=0: # transform preservation rate by trait value q=exp(log(q_rate)+cov_par*(con_trait[i]-parGAUS[0])) else: q=q_rate if m==0 and use_DA == 1: # data augmentation l=1./ex_rate #quant=[.1,.2,.3,.4,.5,.6,.7,.8,.9] quant=[.125,.375,.625,.875] # quantiles gamma distribution (predicted te) #quant=[.5] GM= -(-log(1-np.array(quant))/ex_rate) # get the x values from quantiles (exponential distribution) # GM=-array([gdtrix(ex_rate,1,jq) for jq in quant]) # get the x values from quantiles z=np.append(GM, [GM]*(k)).reshape(k+1,len(quant)).T xB=xB1/-(z-M) # rescaled fossil record from ts-te_DA to 0-1 C=M-c*(M-GM) # vector of modal values a = 1 + (4*(C-GM))/(M-GM) # shape parameters a,b=3,3 b = 1 + (4*(-C+M))/(M-GM) # values will change in future implementations #print M, GM int_q = betainc(a,b,xB[:,k])* (M-GM)*q # integral of beta(3,3) at time xB[k] (tranformed time 0) MM=np.zeros((len(quant),k))+M # matrix speciation times of length quant x no. fossils aa=np.zeros((len(quant),k))+a[0] # matrix shape parameters (3) of length quant x no. fossils bb=np.zeros((len(quant),k))+b[0] # matrix shape parameters (3) of length quant x no. fossils X=np.append(x[x>0],[x[x>0]]*(len(quant)-1)).reshape(len(quant), k) # matrix of fossils of shape quant x no. fossils if len(quant)>1: den = sum(G_density(-GM,1,l)) + small_number #lik_temp= sum(exp(-(int_q) + np.sum((logPERT4_density(MM,z[:,0:k],aa,bb,X)+log(q)), axis=1) ) \ #* (G_density(-GM,1,l)/den) / (1-exp(-int_q))) / len(GM) #if lik_temp>0: lik=log(lik_temp) #else: lik = -inf # LOG TRANSF log_lik_temp = (-(int_q) + np.sum((logPERT4_density(MM,z[:,0:k],aa,bb,X)+log(q)), axis=1) ) \ + log(G_density(-GM,1,l)/den) - log(1-exp(-int_q)) maxLogLikTemp = max(log_lik_temp) log_lik_temp_scaled = log_lik_temp-maxLogLikTemp lik = log(sum(exp(log_lik_temp_scaled))/ len(GM))+maxLogLikTemp else: lik= sum(-(int_q) + np.sum((logPERT4_density(MM,z[:,0:k],aa,bb,X)+log(q)), axis=1)) lik += -sum(log(np.arange(1,k+1))) elif m==0: lik = HOMPP_lik(arg) else: C=M-c*(M-m) a = 1+ (4*(C-m))/(M-m) b = 1+ (4*(-C+M))/(M-m) lik = -q*(M-m) + sum(logPERT4_density(M,m,a,b,x)+log(q)) - log(1-exp(-q*(M-m))) lik += -sum(log(np.arange(1,k+1))) #if m==0: print i, lik, q, k, min(x),sum(exp(-(int_q))) return lik