2.6. Операции с файлами2.6.1. Агрегирование данных (команда AGGREGATE)
Пример.
На рис. 2.2 приведены анкетные данные обследования рабочих нескольких заводов. Объекты - информация о рабочих. В данных в виде переменных содержатся номер завода и номер цеха, в котором трудится респондент. На основе собранной информации вычисляется новый массив данных, в которых объектами являются цеха, признаками - статистические сведения по цехам, например, доля мужчин в цехе (в %), средний возраст и т. д. Соотношение двух массивов информации приведено на рис. 2.2.Новую матрицу агрегированных данных, организованную по тому же принципу «объект - признак», что и исходная матрица, можно получить с помощью команды AGGREGATE.
AGGREGATE /OUTFILE = 'ZECH.SPS'/BREAK ZAVOD ZECH /PERCM = PLT(POL,2) /SRWOZR = MEAN(WOZR).
Исходные данные
Агрегированные данные
Завод Цех Доля Средний мужч. возраст 1 1 1 1 50. .0 | 30 .0 | .. 1 1 1 2 66. . 6 | 28 .3 | .. 1 2 1 1 45. .2 | 42. .2 | .. Завод Цех № ан- Пол Воз- кеты раст 1 1 1 1 1 1 1 1 1 35 | 1 1 1 1 1 2 1 2 | 25 | 1 1 1 2 | 3 1 1 1 40 | 1 1 1 2 | 4 1 2 | 18 | 1 1 1 2 | 5 1 1 1 27 | 1 2 1 1 1 6 1 2 | 35 | 1 2 1 1 1 7 1 1 1 44 | Рис. 2.2. Агрегирование данных
В подкоманде /OUTFILE указывается имя выходного файла; в подкоманде /BREAK назначаются переменные «разрыва» файла данных, которые определяют агрегируемые группы объектов. Далее задаются разделенные слэшами «/» имена новых переменных и функций (статистики), с использованием которых агрегируются исходные переменные, например:
Z9 "средний возраст" = MEAN(V9)/PM = PLT(V8,2).
Перед именем функции агрегирования знак равенства «=» обязателен. В списке допускается указание нескольких переменных для одной функции, в списках переменных можно использовать ключевое слово TO (Z9 Z14 = MEAN(V9 V14)/d1 to d6 = pgt(d1 to d6,0)).
Число переменных в аргументе функции должно совпадать с числом новых переменных.2.6.1.1. Функции агрегирования
В приведенном ниже списке функций идентификатор VARS означает список переменных или переменную.
N(VARS) - число объектов, для которых VARS определены;
N - без указания переменных - число объектов в агрегируемой группе;
MIN(VARS) - минимум;
MAX(VARS) - максимум;
SD(VARS) - стандартное отклонение;
PGT(VARS, значение) - процент объектов, у которых переменная имеет значение большее, чем указанное в команде;
PLT(VARS, значение) - процент объектов, у которых переменная имеет значение меньшее, чем указанное в команде;
PIN(VARS, значение1, значение2) - процент объектов, которые находятся в интервале [значение 1, значение2];
POUT(VARS, значение1, значение2) - процент объектов, которые находятся вне интервала [значение1, значение2];
FGT(VARS, значение) - доля объектов, у которых переменная имеет значение большее, чем указанное в команде;
FLT(VARS, значение) - доля объектов, у которых переменная имеет значение меньшее, чем указанное в команде;
FIN(VARS, значение1, значение2) - доля объектов, которые находятся в интервале [значение 1, значение2];
FOUT(VARS, значение1, значение2) - доля объектов, которые находятся вне интервала [значение 1, значение2];
FIRST(VARS) - первое значение переменной;
LAST(VARS) - последнее значение переменной.
2.6.1.2. Пример агрегирования файла
Задача. Получить на базе исходного файла данных агрегированный по городам файл данных (переменная G является переменной разрыва в файле oct.sps). Файл должен содержать переменные:
NG - число опрошенных в городе;
W1 - доля рассчитывающих на свои силы;
W2 - доля отрицательно относящихся к свободным зонам;
W3D1 TO W3D6 - доли по подсказкам на вопрос III о причинах неподписания договора;
W4 - доля считающих, что острова нужно отдать;
W8 - доля женщин; W9 - средний возраст;
W10 - доля лиц с высшим образованием;
WR - регион.
Все переменные, кроме W3D1 TO W3D6, могут быть непосредственно получены с использованием функций агрегирования; для формирования переменных W3D1 TO W3D6 придется специально подготовиться, пользуясь командой COUNT.
GET FILE "D:\oct.sav".
COUNT d1 = v3s1 to v3s8(1)/ d2 = v3s1 to v3s8(2)
/ d3 = v3s1 to v3s8(3)/ d4 = v3s1 to v3s8(4)
/ d5 = v3s1 to v3s8(5) / d6 = v3s1 to v3s8(6).
AGGREGATE /OUTFILE = "D: aggr.sps"/BREAK g/NG "число опрошенных в городе" = N/
W1 'рассч на св силы' = PIN(v1,1,1)/
W2 ' % отриц.
относящ' = PIN(v2,3,4)/w3d1 to w3d6 = PGT(d1 to d6,0)/W4 'мнен: острова отдать' = PIN(v4,1,1)/
W8 'доля мужчин' = PIN(v8,2,2)/
W9 'средний возраст' = MEAN(v9)/
W10 'доля с высшим образованием' = PIN(v10,1,1)/
WR = FIRST(r).
В новом файле будут созданы переменные W1, W2, W3D1, W3D2, W3D3, W3D4, W3D5, W3D6, W4, W8, W9, W10, WR. Так как после выполнения агрегирования остается активным исходный файл, то, чтобы начать работу с вновь созданным файлом, необходимо вызвать его командой GET.
По данным нового файла можно, например, командой MEANS вычислить средние значения переменных по регионам:
MEAN W3D1 TO W3D6 BY R. или рассчитать корреляции долей, рассчитанных для городов:
CORR W1 W2 WITH W3D1 TO W3D6/OPTIONS 5.
и т. д. Напомним, что объектами агрегированного файла данных являются города, и нужно серьезно подумать над интерпретацией получаемых статистик. В частности, среднее значение переменной W9 будет не средним возрастом, а средним средних возрастов по городам.
Еще по теме 2.6. Операции с файлами2.6.1. Агрегирование данных (команда AGGREGATE):
- 2.5. Основные команды преобразования данных
- Команды вызова GET и сохранения данных SAVE
- 2.4.4. Основные команды описания данных
- Агрегирование.
- Агрегирование (композиция).
- 1.4. Методы приближенного агрегирования линейных моделей
- Фактор агрегирования
- 1.3. Идеальное агрегирование
- Глава 11 Базы данных и система управления базами данных MS Access
- 1999: Агрегирование контента
- 5А: Теорема о невозможности агрегирования предпочтений
- 13.3. Особенности учета кассовых операций в иностранной валюте и операций по валютному счету
- Законодательная интерпретация термина «тайная операция» и современные нормативные стандарты, регламентирующие порядок санкционирования и проведения тайных операций