Python scipy.special.beta() Examples
The following are 30
code examples of scipy.special.beta().
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: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def _pdf_skip(self, x, dfn, dfd, nc): # ncf.pdf(x, df1, df2, nc) = exp(nc/2 + nc*df1*x/(2*(df1*x+df2))) * # df1**(df1/2) * df2**(df2/2) * x**(df1/2-1) * # (df2+df1*x)**(-(df1+df2)/2) * # gamma(df1/2)*gamma(1+df2/2) * # L^{v1/2-1}^{v2/2}(-nc*v1*x/(2*(v1*x+v2))) / # (B(v1/2, v2/2) * gamma((v1+v2)/2)) n1, n2 = dfn, dfd term = -nc/2+nc*n1*x/(2*(n2+n1*x)) + sc.gammaln(n1/2.)+sc.gammaln(1+n2/2.) term -= sc.gammaln((n1+n2)/2.0) Px = np.exp(term) Px *= n1**(n1/2) * n2**(n2/2) * x**(n1/2-1) Px *= (n2+n1*x)**(-(n1+n2)/2) Px *= sc.assoc_laguerre(-nc*n1*x/(2.0*(n2+n1*x)), n2/2, n1/2-1) Px /= sc.beta(n1/2, n2/2) # This function does not have a return. Drop it for now, the generic # function seems to work OK.
Example #2
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def _munp(self, n, beta, m): """ Returns the n-th non-central moment of the crystalball function. """ N = 1.0 / (m/beta / (m-1) * np.exp(-beta**2 / 2.0) + _norm_pdf_C * _norm_cdf(beta)) def n_th_moment(n, beta, m): """ Returns n-th moment. Defined only if n+1 < m Function cannot broadcast due to the loop over n """ A = (m/beta)**m * np.exp(-beta**2 / 2.0) B = m/beta - beta rhs = 2**((n-1)/2.0) * sc.gamma((n+1)/2) * (1.0 + (-1)**n * sc.gammainc((n+1)/2, beta**2 / 2)) lhs = np.zeros(rhs.shape) for k in range(n + 1): lhs += sc.binom(n, k) * B**(n-k) * (-1)**k / (m - k - 1) * (m/beta)**(-m + k + 1) return A * lhs + rhs return N * _lazywhere(np.atleast_1d(n + 1 < m), (n, beta, m), np.vectorize(n_th_moment, otypes=[np.float]), np.inf)
Example #3
Source File: _continuous_distns.py From lambda-packs with MIT License | 6 votes |
def _munp(self, n, beta, m): """ Returns the n-th non-central moment of the crystalball function. """ N = 1.0 / (m/beta / (m-1) * np.exp(-beta**2 / 2.0) + _norm_pdf_C * _norm_cdf(beta)) def n_th_moment(n, beta, m): """ Returns n-th moment. Defined only if n+1 < m Function cannot broadcast due to the loop over n """ A = (m/beta)**m * np.exp(-beta**2 / 2.0) B = m/beta - beta rhs = 2**((n-1)/2.0) * sc.gamma((n+1)/2) * (1.0 + (-1)**n * sc.gammainc((n+1)/2, beta**2 / 2)) lhs = np.zeros(rhs.shape) for k in range(n + 1): lhs += sc.binom(n, k) * B**(n-k) * (-1)**k / (m - k - 1) * (m/beta)**(-m + k + 1) return A * lhs + rhs return N * _lazywhere(np.atleast_1d(n + 1 < m), (n, beta, m), np.vectorize(n_th_moment, otypes=[np.float]), np.inf)
Example #4
Source File: _continuous_distns.py From lambda-packs with MIT License | 6 votes |
def _pdf_skip(self, x, dfn, dfd, nc): # ncf.pdf(x, df1, df2, nc) = exp(nc/2 + nc*df1*x/(2*(df1*x+df2))) * # df1**(df1/2) * df2**(df2/2) * x**(df1/2-1) * # (df2+df1*x)**(-(df1+df2)/2) * # gamma(df1/2)*gamma(1+df2/2) * # L^{v1/2-1}^{v2/2}(-nc*v1*x/(2*(v1*x+v2))) / # (B(v1/2, v2/2) * gamma((v1+v2)/2)) n1, n2 = dfn, dfd term = -nc/2+nc*n1*x/(2*(n2+n1*x)) + sc.gammaln(n1/2.)+sc.gammaln(1+n2/2.) term -= sc.gammaln((n1+n2)/2.0) Px = np.exp(term) Px *= n1**(n1/2) * n2**(n2/2) * x**(n1/2-1) Px *= (n2+n1*x)**(-(n1+n2)/2) Px *= sc.assoc_laguerre(-nc*n1*x/(2.0*(n2+n1*x)), n2/2, n1/2-1) Px /= sc.beta(n1/2, n2/2) # This function does not have a return. Drop it for now, the generic # function seems to work OK.
Example #5
Source File: family.py From vnpy_crypto with MIT License | 6 votes |
def fitted(self, lin_pred): r""" Fitted values based on linear predictors lin_pred. Parameters ----------- lin_pred : array Values of the linear predictor of the model. :math:`X \cdot \beta` in a classical linear model. Returns -------- mu : array The mean response variables given by the inverse of the link function. """ fits = self.link.inverse(lin_pred) return fits
Example #6
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _ppf(self, x, beta): return sc.gammaincinv(1.0/beta, x)**(1.0/beta)
Example #7
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _logpdf(self, x, skew): # PEARSON3 logpdf GAMMA logpdf # np.log(abs(beta)) # + (alpha - 1)*np.log(beta*(x - zeta)) + (a - 1)*np.log(x) # - beta*(x - zeta) - x # - sc.gammalnalpha) - sc.gammalna) ans, x, transx, mask, invmask, beta, alpha, _ = ( self._preprocess(x, skew)) ans[mask] = np.log(_norm_pdf(x[mask])) ans[invmask] = np.log(abs(beta)) + gamma._logpdf(transx, alpha) return ans
Example #8
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _rvs(self, skew): skew = broadcast_to(skew, self._size) ans, _, _, mask, invmask, beta, alpha, zeta = ( self._preprocess([0], skew)) nsmall = mask.sum() nbig = mask.size - nsmall ans[mask] = self._random_state.standard_normal(nsmall) ans[invmask] = (self._random_state.standard_gamma(alpha, nbig)/beta + zeta) if self._size == (): ans = ans[0] return ans
Example #9
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _ppf(self, q, skew): ans, q, _, mask, invmask, beta, alpha, zeta = ( self._preprocess(q, skew)) ans[mask] = _norm_ppf(q[mask]) ans[invmask] = sc.gammaincinv(alpha, q[invmask])/beta + zeta return ans
Example #10
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, c): # rdist.pdf(x, c) = (1-x**2)**(c/2-1) / B(1/2, c/2) return np.power((1.0 - x**2), c / 2.0 - 1) / sc.beta(0.5, c / 2.0)
Example #11
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, beta, m): """ Return PDF of the crystalball function. -- | exp(-x**2 / 2), for x > -beta crystalball.pdf(x, beta, m) = N * | | A * (B - x)**(-m), for x <= -beta -- """ N = 1.0 / (m/beta / (m-1) * np.exp(-beta**2 / 2.0) + _norm_pdf_C * _norm_cdf(beta)) rhs = lambda x, beta, m: np.exp(-x**2 / 2) lhs = lambda x, beta, m: (m/beta)**m * np.exp(-beta**2 / 2.0) * (m/beta - beta - x)**(-m) return N * _lazywhere(np.atleast_1d(x > -beta), (x, beta, m), f=rhs, f2=lhs)
Example #12
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_beta_inf(self): assert_(np.isinf(special.beta(-1, 2)))
Example #13
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _sf(self, x, beta): return sc.gammaincc(1.0/beta, x**beta)
Example #14
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _isf(self, x, beta): return sc.gammainccinv(1.0/beta, x)**(1.0/beta)
Example #15
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _entropy(self, beta): return 1.0/beta - np.log(beta) + sc.gammaln(1.0/beta)
Example #16
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_beta(self): assert_equal(cephes.beta(1,1),1.0) assert_allclose(cephes.beta(-100.3, 1e-200), cephes.gamma(1e-200)) assert_allclose(cephes.beta(0.0342, 171), 24.070498359873497, rtol=1e-13, atol=0)
Example #17
Source File: test_basic.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_betaln(self): betln = special.betaln(2,4) bet = log(abs(special.beta(2,4))) assert_almost_equal(betln,bet,8)
Example #18
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, beta): return np.exp(self._logpdf(x, beta))
Example #19
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, skew): # pearson3.pdf(x, skew) = abs(beta) / gamma(alpha) * # (beta * (x - zeta))**(alpha - 1) * exp(-beta*(x - zeta)) # Do the calculation in _logpdf since helps to limit # overflow/underflow problems ans = np.exp(self._logpdf(x, skew)) if ans.ndim == 0: if np.isnan(ans): return 0.0 return ans ans[np.isnan(ans)] = 0.0 return ans
Example #20
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _preprocess(self, x, skew): # The real 'loc' and 'scale' are handled in the calling pdf(...). The # local variables 'loc' and 'scale' within pearson3._pdf are set to # the defaults just to keep them as part of the equations for # documentation. loc = 0.0 scale = 1.0 # If skew is small, return _norm_pdf. The divide between pearson3 # and norm was found by brute force and is approximately a skew of # 0.000016. No one, I hope, would actually use a skew value even # close to this small. norm2pearson_transition = 0.000016 ans, x, skew = np.broadcast_arrays([1.0], x, skew) ans = ans.copy() # mask is True where skew is small enough to use the normal approx. mask = np.absolute(skew) < norm2pearson_transition invmask = ~mask beta = 2.0 / (skew[invmask] * scale) alpha = (scale * beta)**2 zeta = loc - alpha / beta transx = beta * (x[invmask] - zeta) return ans, x, transx, mask, invmask, beta, alpha, zeta
Example #21
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, alpha, beta): raise NotImplementedError
Example #22
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _argcheck(self, alpha, beta): return (alpha > 0) & (alpha <= 2) & (beta <= 1) & (beta >= -1)
Example #23
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _rvs(self, alpha, beta): def alpha1func(alpha, beta, TH, aTH, bTH, cosTH, tanTH, W): return (2/np.pi*(np.pi/2 + bTH)*tanTH - beta*np.log((np.pi/2*W*cosTH)/(np.pi/2 + bTH))) def beta0func(alpha, beta, TH, aTH, bTH, cosTH, tanTH, W): return (W/(cosTH/np.tan(aTH) + np.sin(TH)) * ((np.cos(aTH) + np.sin(aTH)*tanTH)/W)**(1.0/alpha)) def otherwise(alpha, beta, TH, aTH, bTH, cosTH, tanTH, W): # alpha is not 1 and beta is not 0 val0 = beta*np.tan(np.pi*alpha/2) th0 = np.arctan(val0)/alpha val3 = W/(cosTH/np.tan(alpha*(th0 + TH)) + np.sin(TH)) res3 = val3*((np.cos(aTH) + np.sin(aTH)*tanTH - val0*(np.sin(aTH) - np.cos(aTH)*tanTH))/W)**(1.0/alpha) return res3 def alphanot1func(alpha, beta, TH, aTH, bTH, cosTH, tanTH, W): res = _lazywhere(beta == 0, (alpha, beta, TH, aTH, bTH, cosTH, tanTH, W), beta0func, f2=otherwise) return res sz = self._size alpha = broadcast_to(alpha, sz) beta = broadcast_to(beta, sz) TH = uniform.rvs(loc=-np.pi/2.0, scale=np.pi, size=sz, random_state=self._random_state) W = expon.rvs(size=sz, random_state=self._random_state) aTH = alpha*TH bTH = beta*TH cosTH = np.cos(TH) tanTH = np.tan(TH) res = _lazywhere(alpha == 1, (alpha, beta, TH, aTH, bTH, cosTH, tanTH, W), alpha1func, f2=alphanot1func) return res
Example #24
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _munp(self, n, c, d): nc = 1. * n / c return d * sc.beta(1.0 + nc, d - nc)
Example #25
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _munp(self, n, c, d): nc = 1. * n / c return d * sc.beta(1.0 - nc, d + nc)
Example #26
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, a, b): # betaprime.pdf(x, a, b) = x**(a-1) * (1+x)**(-a-b) / beta(a, b) return np.exp(self._logpdf(x, a, b))
Example #27
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _pdf(self, x, a, b): # gamma(a+b) * x**(a-1) * (1-x)**(b-1) # beta.pdf(x, a, b) = ------------------------------------ # gamma(a)*gamma(b) return np.exp(self._logpdf(x, a, b))
Example #28
Source File: _continuous_distns.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _rvs(self, a, b): return self._random_state.beta(a, b, self._size)
Example #29
Source File: deconvolve.py From grizli with MIT License | 5 votes |
def Rc(c0): """ Shape parameter """ from scipy.special import beta return np.pi*(c0+2)/(4*beta(1./(c0+2), 1+1./(c0+2)))
Example #30
Source File: beta-binomial.py From QuantEcon.lectures.code with BSD 3-Clause "New" or "Revised" License | 5 votes |
def gen_probs(n, a, b): probs = np.zeros(n+1) for k in range(n+1): probs[k] = binom(n, k) * beta(k + a, n - k + b) / beta(a, b) return probs