Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
541
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  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("Не получилось отвергнуть нулевую гипотезу: скорее всего, средний чек не увеличился")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement