Advertisement
999ms

Lab3 mat statistic

Dec 21st, 2019
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. alpha = 0.05
  2.  
  3. def m_interval(sample):
  4.     n = sample.n()
  5.     delta = stats.t(n - 1).ppf(1 - alpha / 2) * sample.s() / np.sqrt(n)
  6.     mean = sample.mean()
  7.     return mean - delta, mean + delta
  8.    
  9. fig, ax = plt.subplots()
  10. ax.set_title('Доверительные интервалы для $m_{1..k}$')
  11.  
  12. samples = [x1, x2, x3, x4]
  13. for i in range(len(samples)):
  14.     l, r = m_interval(samples[i])
  15.     domain = [l, r]
  16.     values = [i + 1, i + 1]
  17.     ax.plot(
  18.         domain,
  19.         values,
  20.         label='$m_{} \\in [{}; {}]$'.format(i + 1, round(l, 3), round(r, 3)),
  21.         linewidth=4
  22.     )
  23.     ax.fill_between(domain, 0, values, alpha=.2)
  24.  
  25. plt.legend()
  26. plt.show()
  27.  
  28. H0 = LinearContrastHyp(x_pooled)
  29. def Row (coef):
  30.     c, (c_1, c_2), p_value, result = H0.full_test(coef, alpha=alpha)
  31.     print(c_1, c_2)
  32.     return [round(c, 4), round(p_value, 4), '$=$' if result else '$\\ne$', 'Нет ошибки' if result else 'Есть ошибка'] # ошибка определяется для равенства матожиданий
  33.  
  34. table(
  35.     [
  36.         'Гипотеза',
  37.         'Выборочное значение статистики критерия',
  38.         'p-value',
  39.         'Статистическое решение при $\\alpha={}$'.format(alpha),
  40.         'Ошибка статистического решения'
  41.     ],
  42.     [
  43.         ['$m_1=m_2$'] + Row([1, -1, 0, 0]),
  44.         ['$m_1=m_3$'] + Row([1, 0, -1, 0]),
  45.         ['$m_1=m_4$'] + Row([1, 0, 0, -1]),
  46.         ['$m_2=m_3$'] + Row([0, 1, -1, 0]),
  47.         ['$m_2=m_4$'] + Row([0, 1, 0, -1]),
  48.         ['$m_3=m_4$'] + Row([0, 0, 1, -1]),
  49.     ]
  50. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement