示例#1
0
    def _poly_regress(self, scatter, r, fit):

        if hasattr(scatter, 'yerror'):
            if r is None or not isinstance(r, WeightedPolynomialRegressor):
                r = WeightedPolynomialRegressor()
        else:
            if r is None or not isinstance(r, PolynomialRegressor):
                r = PolynomialRegressor()

        self._set_regressor(scatter, r)
        r.trait_set(degree=fit)
        r.set_truncate(scatter.truncate)

        r.calculate()
        if r.ys.shape[0] < fit + 1:
            return

        self._set_excluded(scatter, r)
        return r
示例#2
0
    def _poly_regress(self, scatter, r, fit):

        if hasattr(scatter, 'yerror'):
            if r is None or not isinstance(r, WeightedPolynomialRegressor):
                r = WeightedPolynomialRegressor()
        else:
            if r is None or not isinstance(r, PolynomialRegressor):
                r = PolynomialRegressor()

        self._set_regressor(scatter, r)
        r.trait_set(degree=fit)
        r.set_truncate(scatter.truncate)

        r.calculate()
        if r.ys.shape[0] < fit + 1:
            return

        self._set_excluded(scatter, r)
        return r
示例#3
0
    def _get_regressor(self, fit, error_type, xs, ys, es):
        fit=fit.lower()
        if fit in ('linear','parabolic','cubic'):
            reg = WeightedPolynomialRegressor(fit=fit)

        elif fit in ['preceding', 'bracketing interpolate', 'bracketing average']:
            reg = InterpolationRegressor(kind=fit)
        elif fit =='weighted mean':
            reg = WeightedMeanRegressor()
        else:
            print 'fit {} not valid'.format(fit)
            raise NotImplementedError

        mi= min(xs)
        xs=[xi-mi for xi in xs]
        reg.trait_set(error_type=error_type,
                             xs=xs, ys=ys, yserr=es)
        reg.calculate()
        return reg
示例#4
0
    def _poly_regress(self, scatter, r, fit):
        from pychron.core.regression.ols_regressor import PolynomialRegressor
        from pychron.core.regression.wls_regressor import WeightedPolynomialRegressor
        if hasattr(scatter, 'yerror') and any(scatter.yerror.get_data()):
            if r is None or not isinstance(r, WeightedPolynomialRegressor):
                r = WeightedPolynomialRegressor()
        else:
            if r is None or not isinstance(r, PolynomialRegressor):
                r = PolynomialRegressor()

        self._set_regressor(scatter, r)
        r.trait_set(degree=fit)
        r.set_truncate(scatter.truncate)
        if r.ys.shape[0] < fit + 1:
            return

        r.calculate()

        self._set_excluded(scatter, r)
        return r
示例#5
0
    def _get_regressor(self, fit, error_type, xs, ys, es):
        fit = fit.lower()
        if fit in ('linear', 'parabolic', 'cubic'):
            reg = WeightedPolynomialRegressor(fit=fit)

        elif fit in [
                'preceding', 'bracketing interpolate', 'bracketing average'
        ]:
            reg = InterpolationRegressor(kind=fit)
        elif fit == 'weighted mean':
            reg = WeightedMeanRegressor()
        else:
            print 'fit {} not valid'.format(fit)
            raise NotImplementedError

        mi = min(xs)
        xs = [xi - mi for xi in xs]
        reg.trait_set(error_type=error_type, xs=xs, ys=ys, yserr=es)
        reg.calculate()
        return reg