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
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
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
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
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