* Тема: Многомерный критерий T-квадрат Хотеллинга и анализ профилей. * Ключевые слова: Hotelling's T**2 & Profile Analysis, проверка, тест, критерий, Хотеллинг, профиль, flatness, equal levels, parallelism, гипотезы, параллельность, равенство уровней, плоскость, контраст. * Опубликован: ?, перевод: 27.10.2008. * Автор: Richard MacLennan. * Перевод: А. Балабанов. * Размещение: http://www.spsstools.ru/Syntax/T-Test/HotellingsT2andProfileAnalysis.txt (.sps). * Проверено: SPSS 15.0.0. * Исходные данные для группы X. MATRIX. COMPUTE X = { 7, 5, 9, 8; 8, 8, 5, 6; 16, 18, 11, 9; 8, 3, 7, 9; 6, 3, 13, 9; 11, 8, 10, 10; 12, 7, 9, 8; 8, 11, 9, 3; 14, 12, 11, 4; 13, 13, 13, 6; 13, 9, 9, 9; 13, 10, 15, 7; 14, 11, 12, 8; 15, 11, 11, 10; 13, 10, 15, 9; 10, 5, 8, 6; 10, 3, 7, 7; 17, 13, 13, 7; 10, 6, 10, 7; 10, 10, 15, 8; 14, 7, 11, 5; 16, 11, 12, 11; 10, 7, 14, 6; 10, 10, 9, 6; 10, 7, 10, 10; 7, 6, 5, 9; 15, 12, 10, 6; 17, 15, 15, 8; 16, 13, 16, 9; 13, 10, 17, 8; 13, 10, 17, 10; 19, 12, 16, 10; 19, 15, 17, 11; 13, 10, 7, 8; 15, 11, 12, 8; 16, 9, 11, 11; 14, 13, 14, 9 }. COMPUTE NX = NROW(X). COMPUTE KX = NCOL(X). PRINT {NX, KX} /TITLE "N набл., N перем. в группе X". * Исходные данные для группы Y. COMPUTE Y = { 9, 5, 10, 8; 10, 0, 6, 2; 8, 9, 11, 1; 13, 7, 14, 9; 4, 0, 4, 0; 4, 0, 6, 0; 11, 9, 9, 8; 5, 3, 3, 6; 9, 7, 8, 6; 7, 2, 6, 4; 12, 10, 14, 3; 13, 12, 11, 10 }. COMPUTE NY = NROW(Y). COMPUTE KY = NCOL(Y). PRINT {NY, KY} /TITLE "N набл., N перем. в группе Y". * Вычисляем выборочные средние. COMPUTE UNITX = MAKE (NX, 1, 1.0). COMPUTE MEANSX = T(UNITX) * X &* (1.0 / NX). PRINT MEANSX /TITLE "Выборочн. средние для группы X". COMPUTE UNITY = MAKE (NY, 1, 1.0). COMPUTE MEANSY = T(UNITY) * Y &* (1.0 / NY). PRINT MEANSY /TITLE "Выборочн. средние для группы Y". COMPUTE DIFF = MEANSX - MEANSY. PRINT DIFF /TITLE "Разности". * Вычисление матриц центрированных произведений сумм квадратов (mean-corrected SSCP). COMPUTE BXX = SSCP(X). COMPUTE SX = BXX - ((1/NX) &* (T(X) * UNITX) * (T(UNITX) * X)). COMPUTE BYY = SSCP(Y). COMPUTE SY = BYY - ((1/NY) &* (T(Y) * UNITY) * (T(UNITY) * Y)). * Вычисление ковариационных матриц. COMPUTE CX = (1/(NX-1.0)) &* SX. COMPUTE CY = (1/(NY-1.0)) &* SY. * Совместная ковариационная матрица. COMPUTE COV = (((NX-1) &* CX) + ((NY-1) &* CY)) &/ (NX+NY-2). COMPUTE ICOV = INV(COV). * "Статистика T**2 Хотеллинга". COMPUTE T2 = (NX * NY * DIFF * ICOV * T(DIFF)) / (NX+NY). PRINT /TITLE " ========== Двухвыборочная проверка T**2 Хотеллинга на равенство средних ========== ". PRINT T2 /TITLE "Статистика T**2 Хотеллинга". COMPUTE F = T2 * (NX+NY-KX-1) / ((NX+NY-2)*KX). PRINT { F, KX, NX+NY-KX-1 } /Title "Эквивалентная статистика F и её степени свободы". COMPUTE P = 1.0 - FCDF(F, KX, NX+NY-KX-1). PRINT P /TITLE "P-знач." /FORMAT = F10.9. PRINT /TITLE " ========== Анализ профилей Хотеллинга ========== ". * Создадим матрицу плана C для последовательных контрастов. COMPUTE V1 = { 1, -1 }. COMPUTE V2 = MAKE (1, KX-1, 0). COMPUTE V3 = {V1, V2}. COMPUTE V4 = V3. LOOP I = 1 to KX-1. COMPUTE V4 = {V4 ; V3}. END LOOP. COMPUTE C = RESHAPE (V4, KX+1, KX). COMPUTE C = C(1:(KX-1), 1:KX). PRINT C /TITLE "Матрица контраста". * Разности между соседствующими шкалами для группы X. COMPUTE DIFF1 = MEANSX * T(C). PRINT DIFF1 /TITLE "Разности между соседствующими шкалами для группы X". * Разности между соседствующими шкалами для группы Y. COMPUTE DIFF2 = MEANSY * T(C). PRINT DIFF2 /TITLE "Разности между соседствующими шкалами для группы Y". * Совместная ковариационная матрица разностей. COMPUTE POOL = C * COV * T(C). PRINT POOL /TITLE "Совместная ковариационная матрица разностей". COMPUTE IPOOL = INV(POOL). PRINT IPOOL /TITLE "Обр. совместная ковариационная матрица разностей". PRINT /TITLE " ----- Гипотеза 1: параллельность (нет взаимодействия 'группа X шкала') ----- ". COMPUTE PARALLEL = (NX * NY * DIFF * T(C) * IPOOL * C * T(DIFF)) / (NX+NY). PRINT PARALLEL /TITLE "Статистика T**2 Хотеллинга для проверки параллельности". COMPUTE F = PARALLEL * (NX+NY-KX) / ((NX+NY-2)*(KX-1)). PRINT { F, KX-1, NX+NY-KX } /TITLE "Эквивалентная статистика F и её степени свободы". COMPUTE P = 1.0 - FCDF(F, KX-1, NX+NY-KX). PRINT P /TITLE "P-знач." /FORMAT F10.9. PRINT /TITLE " ----- Гипотеза 2: равные уровни (в предположении о существовании параллельности) ----- ". * Создадим вектор плана J для равных уровней. COMPUTE J = MAKE (1, KX, 1.0). * Общее среднее для группы x. COMPUTE GRANDX = MEANSX * T(J). PRINT GRANDX /TITLE "Общее среднее для группы X". * Общее среднее для группы y. COMPUTE GRANDY = MEANSY * T(J). PRINT GRANDY /TITLE "Общее среднее для группы Y". * Разность уровней. COMPUTE DIF = J * T(DIFF). PRINT DIF /TITLE "Разность уровней". * Дисперсия разности. COMPUTE CV = J * COV * T(J). PRINT CV /TITLE "Дисперсия разности". COMPUTE EQUAL = J * T(DIFF) / (SQRT ( CV * (1/NX + 1/NY) ) ). PRINT { EQUAL, NX+NY-2 } /TITLE "Статистика T**2 Хотеллинга для односторонней проверки равенства уровней". COMPUTE P = (1.0 - TCDF(ABS(EQUAL), NX+NY-2 )) * 0.5. PRINT P /TITLE "P-знач." /FORMAT F10.9. PRINT /TITLE " ----- Гипотеза 3: плоскость (также в предположении о существовании параллельности) ----- ". * Среднее между группами. COMPUTE GRAND = ((MEANSX * NX) + (MEANSY * NY)) / (NX + NY). PRINT GRAND /TITLE "Среднее между группами". COMPUTE FLAT = (NX+NY) * GRAND * T(C) * IPOOL * C * T(GRAND). PRINT FLAT /TITLE "Статистика T**2 Хотеллинга для проверки плоскости профилей". COMPUTE F = FLAT * (NX+NY-KX) / ((NX+NY-2) * (KX-1)). PRINT { F, KX-1, NX+NY-KX } /TITLE "Эквивалентная статистика F и её степени свободы". COMPUTE P = 1.0 - FCDF( F, KX-1, NX+NY-KX ). PRINT P /TITLE "P-знач." /FORMAT F10.9. END MATRIX.