T-критерий Стьюдента и его устойчивость

Проверка устойчивости критериев статистической проверки гипотез при нарушениях условий их применимости представляет собой сложную задачу ввиду того, что возможных вариантов для уклонений, как правило,  неограниченное число. Например, для многих критериев  предположение о нормальности анализируемых данных является одним из таких условий. Если теперь поставить задачу исследования устойчивости статистического критерия по отношению к уклонению  данных от нормального закона, то, очевидно, проведение такого исследования было бы крайне трудным  поскольку возможностей нарушений нормальности — бесконечное множество: например, одним из вариантов — могут служить двумодовые распределения, а также трехмодовые и т.д. — многомодовые. При исследовании устойчивости необходимо провести оценку качества критерия в зависимости от различных вариантов нарушений, что в силу их числа — невозможно.

Тем не менее, если ограничиться специальным типом возмущений базовых условий, такие исследования провести можно. В данной заметке предлагается код  и результаты вычислительного  эксперимента по оценки устойчивости двухвыборочного критерия Стьюдента к размеру выборок и различию их дисперсий. Результатами исследований являются численные оценки ошибки первого рода (ошибки отвергнуть гипотезу о равенстве средних двух выборок, когда на самом деле она верна (т.е. выборки имеют одинаковые средние)). Если критерий настроен на 5% уровень значимости, то оценки ошибки первого рода (при удовлетворительной работе критерия) должны давать значения близкие к 0.05. Если уклонения от 0.05 в оценках ошибки первого рода велики, то следует признать, что используемый тип (и параметры ) возмущений являются критическими для использования критерия и приводят к большим погрешностям, нежели ожидается.

Вычислительный эксперимент по оценкам ошибок первого рода поставим для различных объемов участвующих выборок и разницы их дисперсий. Таким образом, будет получено представление об устойчивости критерия при его применении как к малым выборкам, а так и сильно различающимся по разбросам значений выборкам.

Для проведения численного эксперимента был использован следующий код на языке Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
'''
T-test robastness estimation: I-type error.


Author: Dmitry E. Kislov, kislov@easydan.com
Date: 21 Sept. 2015
'''

import scipy.stats as st
import numpy as np
from pylab import *
import time

#---------------------- T-test benchmark: (sample size, different variances) ------------------------
# I-type error estimation

#Sample size values
ssize_interval = np.arange(2, 1000)

#Variances values
var_interval = np.linspace(0., 200, 800)

#Initial value of a sigma
sigmabase = 1.0

#The number of experiments for estimation of I-type error.
Nexp = 600


try:
#Load data if they calculated  
  data = np.load('output.dat.npz')
  X = data['arr_0'].tolist()['X']
  Y = data['arr_0'].tolist()['Y']
  Z = data['arr_0'].tolist()['Z']
except IOError:
  #Where it should estimation the error?
  X, Y = np.meshgrid(ssize_interval, var_interval)

  #Execution time
  start = time.time()

  Z=[]
  for x, y  in zip(X.ravel(), Y.ravel()):
	count = 0
	for sample1,sample2 in zip(sigmabase*np.random.randn(Nexp,int(x)), np.random.randn(Nexp, int(x))):
	  if (st.ttest_ind(sample1,(y+sigmabase)*sample2)[1]<0.05):
	    count+=1
	Z.append(count/float(Nexp))

  Z = np.reshape(Z, (np.shape(Y)[0], np.shape(X)[1]))


  end = time.time()

  #Echo computation time on the screen
  print end-start

  #Save the results
  np.savez('output.dat',{'X':X, 'Y': Y, 'Z': Z})


#Plot the results
#Set large font size for axes ticks
rcParams.update({'font.size': 21})

contourf(X,Y,Z)
colorbar()
title('I-type Error est.: (x-axis - sample size, y-axis - diff.-in-variances')
show()
T-test benchmark T-test benchmark (zoomed)

На рисунках представлены результаты оценки ошибки первого рода при использовании T-критерия Стьюдента для двух независимых нормальных выборок при варьировании их размеров и расхождений в дисперсиях. Оценка ошибки первого рода проводилась по 600 независимым испытаниям. Голубой цвет соответствует оценки ошибки первого рода от 0.05 до 0.075 и заполняет большую часть исследуемой области. Это означает, что T-критерий весьма устойчив к неравенству дисперсий (по крайней мере, если осуществляется сравнение двух нормальных выборок), однако в случае малых выборок (скажем, менее, 20 элементов), различие в дисперсиях может приводить к большим ошибкам, нежели ожидаются: при использовании критерия реальная ошибка первого рода может возрастать и отличаться от 0.05. Для больших выборок (более 20 элементов) неравенство дисперсий не является  ограничением, критерий дает вполне приемлемую ошибку и при сравнении нормальных выборок с неравными дисперсиями.

Код программы и результаты вычислений:

T-test benchmark (скачать) (853,3 KB)

blog comments powered by Disqus