Вопрос пользователя:
Ответ нейросети:
import pandas as pd import numpy as np import scipy.stats as stats
data_path = "https://raw.githubusercontent.com/a-milenkin/Datasetes_for_Piplines/main/SkillBox/ab_speedup.csv" data = pd.read_csv(data_path, index_col=0)
def bootstrap_diff(data, group_col, metric_col, n_iter=1000): group_values = data[group_col].unique() diffs = [] for _ in range(n_iter): sample1 = data[data[group_col] == group_values[0]][metric_col].sample(frac=1, replace=True) sample2 = data[data[group_col] == group_values[1]][metric_col].sample(frac=1, replace=True) diff = sample1.mean() - sample2.mean() diffs.append(diff) return diffs
def stratification_diff(data, strata_col, group_col, metric_col): groups = data[group_col].unique() diffs = [] for strata_value in data[strata_col].unique(): strata_data = data[data[strata_col] == strata_value] group_means = strata_data.groupby(group_col)[metric_col].mean() diff = group_means[groups[0]] - group_means[groups[1]] diffs.append(diff) return diffs
def cuped_diff(data, metric_col): X = data[data['group'] == 'test'][metric_col] Y = data[data['group'] == 'control'][metric_col] X_mean = X.mean() Y_mean = Y.mean() beta = np.cov(X, Y)[0, 1] / np.var(X) cuped_diff = X_mean - beta * (Y_mean - Y) return cuped_diff
bootstrap_diffs = bootstrap_diff(data, 'group', 'metrica') stratification_diffs = stratification_diff(data, 'strata', 'group', 'metrica') cuped_diff = cuped_diff(data, 'metrica')
print("Bootstrap различие между группами:", np.mean(bootstrap_diffs)) print("Стратификация различие между группами:", np.mean(stratification_diffs)) print("CUPED различие между группами:", cuped_diff)
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.