def pearson(data_x: list, data_y: list) -> float: """ :param data_x: Primeira lista contendo os valores de uma entidade de uma amostra. :param data_y: Segunda lista contendo os valores de outra entidade da mesma amostra. :return: valor do Coeficiente de Pearson para as duas entidades, baseado nas amostras inseridas. """ x_avg = lib.averageWithoutNumPy(data_x) y_avg = lib.averageWithoutNumPy(data_y) xi_Xavg, yi_Yavg = [], [] for x, y in zip(data_x, data_y): xi_Xavg.append(x - x_avg) yi_Yavg.append(y - y_avg) sumprod, denominator_x, denominator_y = 0, 0, 0 for i, j in zip(xi_Xavg, yi_Yavg): sumprod += i * j denominator_x += i**2 denominator_y += j**2 return sumprod / (math.sqrt(denominator_x) * math.sqrt(denominator_y))
def jao_da_faca(data: list, flag: int = 0, n=None): """ :param n: Opcional, representa o nivel de confiança exigido. :param data: Lista dos dados da amostra. :param flag: Estimativa a ser utilizada. :return: """ avg = lib.averageWithoutNumPy(data) if flag == 0: return jack_knife_avg(data) elif flag == 1: return jack_knife_variance(data) elif flag == 2: return math.sqrt(jack_knife_variance(data)) elif flag == 3: return coefficients.confidenceIntervalStdDeviation \ (len(data), n, math.sqrt(jack_knife_variance(data)), jack_knife_avg(data))
def bootstrap(data: list, rep: int) -> float: """ :param data: Lista contendo os dados da amostra. :param rep: Numero de repetições a ser realizada. :return: """ avg = lib.averageWithoutNumPy(data) print('Média: ', avg) averages, buffer = [], [] for _ in range(rep): buffer = data.copy() buffer.pop(random.randrange(0, len(data))) averages.append(lib.sumWithoutMath(buffer) / len(buffer)) buffer.clear() return lib.sumWithoutMath(averages) / len(averages)
def a(data_y, data_x): b_ = b(data_x, data_y) return str( lib.averageWithoutNumPy(data_y) - b_ * lib.averageWithoutNumPy(data_x))
def confidenceIntervalWithoutStdDeviation(percentage: float, sample: list) -> tuple: return (lib.averageWithoutNumPy(sample) + (lib.tStudent(percentage, len(sample)) * lib.stdDeviation(sample) / math.sqrt(len(sample)))), \ (lib.averageWithoutNumPy(sample) - (lib.tStudent(percentage, len(sample)) * lib.stdDeviation(sample) / math.sqrt(len(sample))))