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
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
* Тема: t-проверка с независимыми выборками по агрегированным данным.
* Ключевые слова: t-проверка, t-критерий, Хартли (Hartley), Велч (Welch), равенство дисперсий, доверительный интервал, асимптотический, MATRIX, T-Test, Ливина, матрица.
* Опубликован: ?, перевод: 27.10.2008.
* Автор: Marta Garcia-Granero.
* Перевод: А. Балабанов.
* Размещение: http://www.spsstools.ru/Syntax/T-Test/DoT-TestWithSummaryData.txt (.sps).
* Проверено: SPSS 15.0.0.

* Посылаю Вам синтаксис для выполнения t-проверки с независимыми выборками 
  по агрегированным данным. Хотя у Вас уже есть для этого решение 
  (через матричную форму ввода данных с использованием дисперсионного анализа),
  этот метод гораздо более полон в плане статистики.
- во-первых, выполняется проверка на равенство дисперсий (F-проверка Хартли);
- во-вторых, выполняется стандартная t-проверка (в предположении об одинаковости дисперсий) и
  проверка Велча (Welch) без предположения о равенстве дисперсий;
- в-третьих, для выборок с число наблюдений более 30 рассчитываются
  асимптотические 95% доверительные интервалы для разности средних (для обеих проверок);
- в-четвёртых, если размеры выборок малы, даются также неасимптотические доверительные интервалы.

* Для сравнения с "нормальной" T-проверкой я также прилагаю исходные 
  несгруппированные данные), из которых я брала размеры выборок, средние и стандарты.

* С наилучшими пожеланиями,

* Марта

СИНТАКСИС:

* За один раз можно обработать только один набор данных (одну строку агрегированной информации)
  (см. ниже исходные данные).

data list list /mean1(f8.3) sd1(F8.3) n1(F8.0) mean2(f8.3) sd2(F8.3) n2(F8.0).
begin data
187.643 38.098 14 235.929 54.286 14
end data.

* T-проверка *.
matrix.
PRINT  /TITLE "T-ПРОВЕРКА ДЛЯ НЕЗАВИСИМЫХ ВЫБОРОК ПО АГРЕГИРОВАННЫМ ДАННЫМ".
GET DATA /FILE=* /names=vecnam.
get mean1 /var=mean1.
get sd1 /var=sd1.
get n1 /var=n1.
get mean2 /var=mean2.
get sd2 /var=sd2.
get n2 /var=n2.
compute sem1=sd1/sqrt(n1).
compute sem2=sd2/sqrt(n2).
print {n1,mean1,sd1,sem1;n2,mean2,sd2,sem2}
 /title='Данные'
 /clabels='N','Средн.','Ст. откл.','Ст. ош. ср.'
 /rlabels='Выб. 1','Выб. 2'
 /format='f8.2'.
compute diff=mean1-mean2.
compute var1=sd1**2.
compute var2=sd2**2.
do if var1 ge var2.
compute ftest=var1/var2.
compute fsig=1-fcdf(ftest,n1,n2).
else if var1 lt var2.
compute ftest=var2/var1.
compute fsig=1-fcdf(ftest,n2,n1).
end if.
print {ftest,fsig}
 /title='Проверка Хартли на равенство дисперсий'
 /clabels='F-стат.','Знач.'
 /format='f8.3'.
compute n=n1+n2.
compute poolvar=((n1-1)&*(var1)+(n2-1)&*(var2))/(n-2) .
compute eedif1=sqrt(poolvar*(1/n1+1/n2)).
compute t1=diff/eedif1.
compute df1=n-2.
compute t1sig=2*(1-tcdf(abs(t1),df1)).
compute eedif2=sqrt(var1/n1+var2/n2).
compute t2=diff/eedif2.
compute
df2=((var1/n1+var2/n2)**2)/(((var1/n1)**2)/(n1-1)+((var2/n2)**2)/(n2-1)).

compute t2sig=2*(1-tcdf(abs(t2),df2)).
print {diff,eedif1,t1,df1,t1sig;diff,eedif2,t2,df2,t2sig}
 /title='T-проверка для независимых выборок с равными или неравными дисперсиями'
 /clabels='Разн.','SE(разн.)','t','df','2-ст. знач.'
 /rlabels='Равны','Неравны'
 /format='f8.3'.
do if (n1 ge 30) and (n2 ge 30).
compute low1=diff-1.96*eedif1.
compute upp1=diff+1.96*eedif1.
compute low2=diff-1.96*eedif2.
compute upp2=diff+1.96*eedif2.
print {low1,upp1;low2,upp2}
 /title='Приблизительные 95%ДИ для разности (асимптотические)'
 /clabels='НГ','ВГ'
 /rlabels='Равные','Неравные'
 /format='f8.3'.
end if.
compute data={data,diff,eedif1,df1,eedif2,df2}.
compute vecnam={vecnam,"diff","eedif1","df1","eedif2","df2"}.
save data /outfile=* /names=vecnam.
end matrix.

* Вычисление точных(неасимптотических) 95%ДИ для разности *.
COMPUTE low1 = diff -eedif1* IDF.T(0.975,df1) .
COMPUTE upp1 = diff +eedif1* IDF.T(0.975,df1) .
COMPUTE low2 = diff -eedif2* IDF.T(0.975,df2) .
COMPUTE upp2 = diff +eedif2* IDF.T(0.975,df2) .
EXECUTE .
REPORT FORMAT=LIST AUTOMATIC ALIGN(CENTER)
  /VARIABLES=low1 upp1
  /TITLE "95%ДИ для разности в предположении равенства дисперсий".
REPORT FORMAT=LIST AUTOMATIC ALIGN(CENTER)
  /VARIABLES=low2 upp2
  /TITLE "95%ДИ для разности без предположения равенства дисперсий".

* Исходные (для сравнения) *.
data list free /group(F8.0) wgain(F8.0).
begin data
1 175 1 149 1 132 1 187 1 218 1 123 1 151
1 248 1 200 1 206 1 219 1 179 1 234 1 206
2 142 2 214 2 311 2 249 2 337 2 176 2 262
2 211 2 302 2 216 2 195 2 236 2 253 2 199
end data.
var label group 'Диета'/wgain 'Набор веса (фунтов)'.
value labels group 1 'Контрольная' 2 'Витамин A'.

T-TEST
  GROUPS=group(1 2)
  /VARIABLES=wgain
  /CRITERIA=CIN(.95) .

* Единственное отличие - в использовании проверки 
  Хартли или Ливина на равенство дисперсий 
  (последний метод оценивает остатки и требует 
   наличия исходных, неагрегированных, данных).