Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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