Created
July 3, 2016 14:07
-
-
Save RomanSteinberg/3401d333205a1b191f5e848779c28bc7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
import pandas as pd | |
import scipy.stats as ss | |
import scipy | |
def get_bootstrap_samples(data, n_samples): | |
indices = np.random.randint(0, len(data), (n_samples, len(data))) | |
samples = data[indices] | |
return samples | |
def stat_intervals(stat, alpha): | |
boundaries = np.percentile(stat, [100 * alpha / 2., 100 * (1 - alpha / 2.)]) | |
return boundaries | |
def make_bootstrap(data1, data2, n_samples, func): | |
stats1 = np.array(map(func, get_bootstrap_samples(data1, n_samples))) | |
stats2 = np.array(map(func, get_bootstrap_samples(data2, n_samples))) | |
return stat_intervals(stats1 - stats2, 0.05) | |
def save(means, squared_diff): | |
fout = open('data.txt', 'w') | |
fout.write(' '.join(means)) | |
fout.write('\n') | |
fout.write(' '.join(squared_diff)) | |
fout.write('\n') | |
fout.close() | |
data = pd.read_csv('ab_browser_test.csv', sep=',') | |
exp = data[data['slot'] == 'exp'] | |
control = data[data['slot'] == 'control'] | |
# 4 | |
np.random.seed(0) | |
n_boot_samples = 500 | |
samples = get_bootstrap_samples(control.n_clicks, n_boot_samples) | |
means = samples.mean(axis=1) | |
delta = samples - means[:, np.newaxis] | |
control_boot_chi_squared = np.sum(delta*delta, axis=1) | |
save(means, control_boot_chi_squared) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
списал, спасибо