def results(): x, y, e = get_data() reg = PolynomialRegressor(degree=1, xs=x, ys=y) mi, ma = min(x), max(x) pad = (ma - mi) * 0.1 fxs = linspace(mi - pad, ma + pad) plt.errorbar(x, y, yerr=e,) reg.calculate() l, u = reg.calculate_error_envelope(fxs, error_calc='CI') plt.plot(fxs, l, 'b') plt.plot(fxs, u, 'b') # plt.plot(fxs, reg.predict(fxs), 'b-') print('Age={}, SD={} SEM={} CI={}'.format(reg.predict(328), reg.predict_error(328), reg.predict_error(328, 'SEM'), reg.predict_error(328, 'CI'))) reg = WeightedPolynomialRegressor(degree=1, xs=x, ys=y, yserr=e) reg.calculate() plt.plot(fxs, reg.predict(fxs), 'g') l,u=reg.calculate_error_envelope(fxs, error_calc='CI') plt.plot(fxs, l, 'r') plt.plot(fxs, u, 'r') print('Weighted fit Age={}, SD={} SEM={} CI={}'.format(reg.predict(328), reg.predict_error(328), reg.predict_error(328,'SEM'), reg.predict_error(328, 'CI'))) plt.show()
def regressor(self): # print self.name, self.fit, self.__class__.__name__ is_mean = 'average' in self.fit.lower() reg = self._regressor if reg is None: if is_mean: reg = self._mean_regressor_factory() else: # print 'doing import of regressor {}'.format(self.__class__) # st=time.time() from pychron.core.regression.ols_regressor import PolynomialRegressor # print 'doing import of regressor {}'.format(time.time()-st) reg = PolynomialRegressor(tag=self.name, xs=self.offset_xs, ys=self.ys, # fit=self.fit, # filter_outliers_dict=self.filter_outliers_dict, error_calc_type=self.error_type) elif is_mean and not isinstance(reg, MeanRegressor): reg = self._mean_regressor_factory() if not is_mean: reg.set_degree(fit_to_degree(self.fit), refresh=False) reg.filter_outliers_dict = self.filter_outliers_dict reg.trait_set(xs=self.offset_xs, ys=self.ys) reg.calculate() self._regressor = reg return reg
def results(): x, y, e = get_data() reg = PolynomialRegressor(degree=1, xs=x, ys=y) mi, ma = min(x), max(x) pad = (ma - mi) * 0.1 fxs = linspace(mi - pad, ma + pad) plt.errorbar( x, y, yerr=e, ) reg.calculate() l, u = reg.calculate_error_envelope(fxs, error_calc='CI') plt.plot(fxs, l, 'b') plt.plot(fxs, u, 'b') # plt.plot(fxs, reg.predict(fxs), 'b-') print('Age={}, SD={} SEM={} CI={}'.format(reg.predict(328), reg.predict_error(328), reg.predict_error(328, 'SEM'), reg.predict_error(328, 'CI'))) reg = WeightedPolynomialRegressor(degree=1, xs=x, ys=y, yserr=e) reg.calculate() plt.plot(fxs, reg.predict(fxs), 'g') l, u = reg.calculate_error_envelope(fxs, error_calc='CI') plt.plot(fxs, l, 'r') plt.plot(fxs, u, 'r') print('Weighted fit Age={}, SD={} SEM={} CI={}'.format( reg.predict(328), reg.predict_error(328), reg.predict_error(328, 'SEM'), reg.predict_error(328, 'CI'))) plt.show()
def _get_regressor(self): # print '{} getting regerssior'.format(self.name) # try: if self.fit.lower() =='average': reg = self._mean_regressor_factory() else: reg = PolynomialRegressor(xs=self.xs, ys=self.ys, degree=self.fit, error_type=self.error_type, filter_outliers_dict=self.filter_outliers_dict) # except Exception, e: # reg = PolynomialRegressor(xs=self.xs, ys=self.ys, # degree=self.fit, # filter_outliers_dict=self.filter_outliers_dict) reg.calculate() return reg
def _get_regressor(self): if 'average' in self.fit.lower(): reg = self._mean_regressor_factory() else: # print 'doing import of regresor {}'.format(self.__class__) # st=time.time() from pychron.core.regression.ols_regressor import PolynomialRegressor # print 'doing import of regresor {}'.format(time.time()-st) reg = PolynomialRegressor(tag=self.name, xs=self.offset_xs, ys=self.ys, # fit=self.fit, # filter_outliers_dict=self.filter_outliers_dict, error_calc_type=self.error_type) reg.set_degree(self.fit, refresh=False) reg.filter_outliers_dict = self.filter_outliers_dict reg.calculate() return reg