Example #1
0
    def _calculate_confidence_interval(self,
                                       x,
                                       observations,
                                       model,
                                       rx,
                                       rmodel,
                                       confidence=95):

        alpha = 1.0 - confidence / 100.0

        n = len(observations)

        if n > 2:
            xm = x.mean()
            observations = array(observations)
            model = array(model)

#            syx = math.sqrt(1. / (n - 2) * ((observations - model) ** 2).sum())
#            ssx = ((x - xm) ** 2).sum()
            # ssx = sum([(xi - xm) ** 2 for xi in x])

            ti = tinv(alpha, n - 2)

            syx = self.syx
            ssx = self.ssx
#            for i, xi in enumerate(rx):
            def _calc_interval(xi):
                d = 1.0 / n + (xi - xm) ** 2 / ssx
                return ti * syx * math.sqrt(d)

            cors = [_calc_interval(xi) for xi in rx]
            return cors
Example #2
0
def calculate_CI(values):
	count = len(values)
	average = numpy.mean(values)
	variance = numpy.var(values)
	std_err = math.sqrt(float(variance) / float(count))
	degs_freedom = count - 1
	t_value = tinv.tinv(1 - confidence_alpha, degs_freedom)

	margin_error = std_err * t_value
	#margin_error = std_err #???

	return (average - margin_error, average, average + margin_error)
Example #3
0
    def _calculate_confidence_interval(self,
                                       x,
                                       observations,
                                       rx,
                                       confidence=95):

        alpha = 1.0 - confidence / 100.0

        n = len(observations)
        if n > 2:
            xm = x.mean()

            ti = tinv(alpha, n - 1)
            syx = self.get_syx()
            ssx = self.get_ssx(xm)
            d = n**-1 + (rx - xm)**2 / ssx
            cors = ti * syx * d**0.5

            # print rx, cors[0]

            return cors
Example #4
0
    def _calculate_confidence_interval(self,
                                       x,
                                       observations,
                                       rx,
                                       confidence=95):

        alpha = 1.0 - confidence / 100.0

        n = len(observations)
        if n > 2:
            xm = x.mean()

            ti = tinv(alpha, n - 2)

            syx = self.get_syx()
            ssx = self.get_ssx(xm)

            d = n ** -1 + (rx - xm) ** 2 / ssx
            cors = ti * syx * d ** 0.5

            return cors
Example #5
0
    def calc_confidence_interval(self, confidence, x, observations, model, rx, rmodel):
        '''
        http://people.stfx.ca/bliengme/ExcelTips/RegressionAnalysisConfidence2.htm
        '''
        alpha = 1.0 - confidence / 100.0

        lower = []
        upper = []

        n = len(observations)

        if n > 2:
            xm = x.mean()
            observations = array(observations)
            model = array(model)

            syx = math.sqrt(1. / (n - 2) * ((observations - model) ** 2).sum())
            ssx = ((x - xm) ** 2).sum()

            # ssx = sum([(xi - xm) ** 2 for xi in x])

            ti = tinv(alpha, n - 2)

            for i, xi in enumerate(rx):
                d = 1.0 / n + (xi - xm) ** 2 / ssx
                cor = ti * syx * math.sqrt(d)
                lower.append(rmodel[i] - cor)
                upper.append(rmodel[i] + cor)


            # see http://mathworld.wolfram.com/LeastSquaresFitting.html
#            error_a = syx * ((1.0 / n + xm ** 2 / ssx)) ** 0.5
#            error_b = syx / (ssx) ** 0.5


        return array(lower), array(upper)