SHARE
TWEET

Untitled

a guest Feb 18th, 2020 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import pandas as pd
  2. import numpy as np
  3. from numpy.random import RandomState
  4.  
  5. # данные контрольной группы A
  6. samples_A = pd.Series([
  7.      98.24,  97.77,  95.56,  99.49, 101.4 , 105.35,  95.83,  93.02,
  8.     101.37,  95.66,  98.34, 100.75, 104.93,  97.  ,  95.46, 100.03,
  9.     102.34,  98.23,  97.05,  97.76,  98.63,  98.82,  99.51,  99.31,
  10.      98.58,  96.84,  93.71, 101.38, 100.6 , 103.68, 104.78, 101.51,
  11.     100.89, 102.27,  99.87,  94.83,  95.95, 105.2 ,  97.  ,  95.54,
  12.      98.38,  99.81, 103.34, 101.14, 102.19,  94.77,  94.74,  99.56,
  13.     102.  , 100.95, 102.19, 103.75, 103.65,  95.07, 103.53, 100.42,
  14.      98.09,  94.86, 101.47, 103.07, 100.15, 100.32, 100.89, 101.23,
  15.      95.95, 103.69, 100.09,  96.28,  96.11,  97.63,  99.45, 100.81,
  16.     102.18,  94.92,  98.89, 101.48, 101.29,  94.43, 101.55,  95.85,
  17.     100.16,  97.49, 105.17, 104.83, 101.9 , 100.56, 104.91,  94.17,
  18.     103.48, 100.55, 102.66, 100.62,  96.93, 102.67, 101.27,  98.56,
  19.     102.41, 100.69,  99.67, 100.99])
  20.  
  21. # данные экспериментальной группы B
  22. samples_B = pd.Series([
  23.     101.67, 102.27,  97.01, 103.46, 100.76, 101.19,  99.11,  97.59,
  24.     101.01, 101.45,  94.8 , 101.55,  96.38,  99.03, 102.83,  97.32,
  25.      98.25,  97.17, 101.1 , 102.57, 104.59, 105.63,  98.93, 103.87,
  26.      98.48, 101.14, 102.24,  98.55, 105.61, 100.06,  99.  , 102.53,
  27.     101.56, 102.68, 103.26,  96.62,  99.48, 107.6 ,  99.87, 103.58,
  28.     105.05, 105.69,  94.52,  99.51,  99.81,  99.44,  97.35, 102.97,
  29.      99.77,  99.59, 102.12, 104.29,  98.31,  98.83,  96.83,  99.2 ,
  30.      97.88, 102.34, 102.04,  99.88,  99.69, 103.43, 100.71,  92.71,
  31.      99.99,  99.39,  99.19,  99.29, 100.34, 101.08, 100.29,  93.83,
  32.     103.63,  98.88, 105.36, 101.82, 100.86, 100.75,  99.4 ,  95.37,
  33.     107.96,  97.69, 102.17,  99.41,  98.97,  97.96,  98.31,  97.09,
  34.     103.92, 100.98, 102.76,  98.24,  97.  ,  98.99, 103.54,  99.72,
  35.     101.62, 100.62, 102.79, 104.19])
  36.  
  37. # фактическая разность средних значений в группах
  38. # < напишите код здесь >
  39. AB_difference = samples_A - samples_B
  40. print("Разность средних чеков:", AB_difference)
  41.  
  42. alpha = 0.05
  43.    
  44. state = np.random.RandomState(12345)
  45.  
  46. bootstrap_samples = 1000
  47. count = 0
  48. for i in range(bootstrap_samples):
  49.     # объедините выборки
  50.     united_samples = pd.concat([samples_A, samples_B])
  51.  
  52.     # создайте подвыборку
  53.     subsample = data.sample(frac=1, replace=True, random_state=state)
  54.    
  55.     # разбейте подвыборку пополам
  56.     subsample_A = subsample[:len(samples_A)]
  57.     subsample_B = subsample[len(samples_A):]
  58.  
  59.     # найдите разницу средних
  60.     # < напишите код здесь >
  61.     bootstrap_difference = samples_A.mean() - samples_B.mean()
  62.    
  63.     # если разница не меньше фактической, увеличиваем счётчик
  64.     if bootstrap_difference >= AB_difference:
  65.         count += 1
  66.  
  67. # p-value равно доле превышений значений
  68. pvalue = 1. * count / bootstrap_samples
  69. print('p-value =', pvalue)
  70.  
  71. if pvalue < alpha:
  72.     print("Отвергаем нулевую гипотезу: скорее всего, средний чек увеличился")
  73. else:
  74.     print("Не получилось отвергнуть нулевую гипотезу: скорее всего, средний чек не увеличился")
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top