Source code for climb.tool.impl.data_suite.third_party.copulas.univariate.beta
import numpy as np
from climb.tool.impl.data_suite.third_party.copulas.univariate.base import BoundedType, ParametricType, ScipyModel
from scipy.stats import beta
[docs]
class BetaUnivariate(ScipyModel):
"""Wrapper around scipy.stats.beta.
Documentation: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.beta.html
"""
PARAMETRIC = ParametricType.PARAMETRIC
BOUNDED = BoundedType.BOUNDED
MODEL_CLASS = beta
def _fit_constant(self, X):
self._params = {
"a": 1.0,
"b": 1.0,
"loc": np.unique(X)[0],
"scale": 0.0,
}
def _fit(self, X):
loc = np.min(X)
scale = np.max(X) - loc
a, b = beta.fit(X, loc=loc, scale=scale)[0:2]
self._params = {"loc": loc, "scale": scale, "a": a, "b": b}
def _is_constant(self):
return self._params["scale"] == 0
def _extract_constant(self):
return self._params["loc"]