Exemplo n.º 1
0
    def _poly_regress(self, r, x, y, ox, oy, index, fit, fod, apply_filter,
                      scatter, selection):
        if hasattr(scatter, 'yerror'):
            es = scatter.yerror.get_data()
            if selection:
                es = delete(es, selection, 0)

            if r is None or not isinstance(r, WeightedPolynomialRegressor):
                r = WeightedPolynomialRegressor(yserr=es)
        else:
            if r is None or not isinstance(r, PolynomialRegressor):
                r = PolynomialRegressor()

        r.trait_set(xs=x, ys=y, degree=fit)
        if apply_filter:
            r = self._apply_outlier_filter(r, ox, oy, index, fod)

        return r
Exemplo n.º 2
0
    def _poly_regress(self, r, x, y, ox, oy, index,
                      fit, fod, apply_filter, scatter, selection):
        if hasattr(scatter, 'yerror'):
            es = scatter.yerror.get_data()
            if selection:
                es = delete(es, selection, 0)

            if r is None or not isinstance(r, WeightedPolynomialRegressor):
                r = WeightedPolynomialRegressor(yserr=es)
        else:
            if r is None or not isinstance(r, PolynomialRegressor):
                r = PolynomialRegressor()

        r.trait_set(xs=x, ys=y, degree=fit)
        if apply_filter:
            r = self._apply_outlier_filter(r, ox, oy, index, fod)

        return r
Exemplo n.º 3
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
Exemplo n.º 4
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
Exemplo n.º 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
Exemplo n.º 6
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
Exemplo n.º 7
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