Cравнение данных по каждому наблюдению со средним значением по всем прочим наблюдениям
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 | * Тема: Cравнение данных по каждому наблюдению со средним значением по всем прочим наблюдениям. * Ключевые слова: среднее, перебор, сравнение, больница, группа, макрос. * Опубликован: 17.01.2003 в SPSSX-L, перевод: 27.10.2008. * Автор: Raynald Levesque. * Перевод: А. Балабанов. * Размещение: http://www.spsstools.ru/Syntax/T-Test/CompareMeanOfEachWithMeanOfAllOthers.txt (.sps). * Проверено: SPSS 15.0.0. *(Вопрос) У меня имеются данные по 203 больничным центрам, и я хочу сравнить данные каждого из этих 203 центров со средним значением по всем остальным 202 больницам. Данные записаны в формате 1 строка на 1 больницу и выглядят примерно так: Id var1 id2 3 1.5 1 5 2.3 0 18 1.4 0 . . . . . . . . . 203 2.5 0 Я знаю, что мог бы вручную запрограммировать это на синтаксисе примерно так:: Compute id2=0. Do if id=3. Compute id2=1. End if. Exe. MEANS TABLES=var1 BY id2 /CELLS MEAN COUNT STDDEV. Compute id2=0. Do if id=5. Compute id2=1. End if. И т.д... для всех 203 больниц. * (Ответ) Размещён в SPSSX-L, автор: Raynald Levesque, 17.01.2003. DATA LIST LIST /id var1. BEGIN DATA 3 1.5 7 2.2 11 3.1 14 2 17 2.3 18 1.9 21 2.2 END DATA. *///////////. DEFINE !doit(nb=!TOKENS(1)) COMPUTE casen=$CASENUM. !DO !cnt=1 !TO !nb. COMPUTE id2=0. IF casen=!cnt id2=1. MEANS TABLES=var1 BY id2 /CELLS MEAN COUNT STDDEV. !DOEND !ENDDEFINE. *///////////. SET MPRINT=yes. !doit nb=7. SET MPRINT=no. * (в данном случае следует вызвать макрос с параметром=203). |