
- •Глава 2. Статистический пакет для социологических исследований. Общее описпние и поодготовка данных
- •2.1. Структура пакета
- •2.2. Схема организации данных, окна spss
- •2.3. Управление работой пакета
- •Основные команды меню spss:
- •Статусная строка
- •Ввод данных с экрана
- •2.4. Режим диалога и командный режим
- •Командный режим работы с пакетом Основные правила написания команд на языке пакета
- •Порядок выполнения команд
- •Команды Вызова Get и сохранения данных save.
- •Основные Команды описания данных
- •Основные команды преобразования данных
- •Команды compute и if
- •Основные функции и операторы команд compute и if:
- •Работа с неопределенными значениями
- •Функции для неопределенных значений
- •Работа с пользовательскими неопределенными значениями
- •Работа с функциями Missing и Sysmis.
- •Команда recode
- •Команда count
- •Условное выполнение команд.
- •Команда rank
- •Variable labels rangv14 "ранг по доходам"/
- •V14_5 "квинтильные группы по доходам"/
- •Отбор подмножеств наблюдений
- •Команда split file
- •Взвешивание выборки weight
- •Пример 2.1
- •Variable labels oppos 'Степень противостояния ссср и Японии'
- •Value labels oppos 1 'Взаимное' 2 'Одна из сторон' 3 'Нет противостояния'.
- •2.5. Операции с файлами Агрегирование данных (команда aggregate)
- •Функции агрегирования
- •Объединение файлов (merge files)
Работа с неопределенными значениями
Вообще говоря, если в арифметическом выражении встретится переменная с неопределенным значением, результат будет не определен, однако значения выражения
0*неопределенное значение
и
0/ неопределенное значение
приравниваются к нулю.
Функции для неопределенных значений
VALUE - функция игнорирования назначения пользовательского неопределенного значения;
MISSING - логическая функция для обнаружения пользовательского или системного отсутствующего значения; ее значения - истина (единица), если значение аргумента не определено, ложь (нуль) - в противном случае;
SYSMIS - то же, но только для системных неопределенных значений;
NMISS - число неопределенных значений в списке аргументов;
NVALID - число определенных значений в списке аргументов
Работа с пользовательскими неопределенными значениями
В данных по вопросу о Курильских островах переменные V15, V16, v17 означают время проживания в Западной Сибири, Восточной Сибири и на Дальнем Востоке. Допустим, для удобства проведения текущих расчетов нулевые коды этих переменных объявлены неопределенными
Missing values V15, V16, v17 (0).
Тогда вычисление времени проживания за Уралом командой
COMPUTE Y = V15 + V16 + v17.
приведет в большинстве случаев к неопределенным значениям Y.
В этом случае функция VALUE позволит работу с пользовательскими неопределенными значениями, как с определенными:
COMPUTE Y = VAL(V15) + VAL(V16)+VAL(V17).
Работа с функциями Missing и Sysmis.
В РМЭЗ (российском мониторинге экономики и здоровья), волна 2, имеется переменная BO2a - ответ на вопрос "Сколько времени в течение последних 7 дней Вы потратили на работу …?", причем коды 997, 998, 999 соответствуют ответам "ЗАТРУДНЯЮСЬ ОТВЕТИТЬ", "ОТКАЗ ОТ ОТВЕТА", "НЕТ ОТВЕТА". Имеет смысл эти коды объявить пользовательскими неопределенными, а системные неопределенные коды перекодировать в 0. Делается это следующими командами.
MISSING VALUES BO2a (997, 998, 999).
If (SYSMIS(BO2a)) BO2a=0.
Execute.
Аналогичным путем в других обстоятельствах можно употребить и функцию Missing.
Команда recode
Назначение команды: перекодирование существующей переменной. Формат команды:
RECODE V9 (0 THRU 25 = 1) (26 THRU 45 = 2) (ELSE =3).
или
RECODE V9 (0 THRU 25 = 1) (26 THRU 45 = 2) (ELSE =3) INTO W9.
Указывается переменная или список переменных со спецификациями в круглых скобках. Перекодируемые переменные в списке разделяются слэшами (/). По этой команде значения перечисленных переменных в указанных пределах будут заменены числами, следующими за знаком равенства.
Ключевое слово INTO указывает, в какую переменную (список переменных) переслать результат перекодирования, при этом соответствие между исходным списком переменных и переменными результата устанавливаются естественным образом.
Список переменных можно задать через ключевое слово TO, но всегда следует указывать переменные в том порядке, в каком они вводились либо вычислялись в программе.
Ключевые слова для задания входных значений команды RECODE:
LOWEST или LO - наименьшее значение переменной;
THRU или THR - значения переменной из указанного диапазона;
HIGHEST или HI - наибольшее значение переменной;
MISSING - отсутствующее значение, определяемое пользователем;
SYSMIS - отсутствующее значение, определяемое системой;
ELSE -все не специфицированные значения (не включаемые в SYSMIS).
Результат перекодирования - обычно код или системный код неопределенности SYSMIS, если вместе с ключевым словом ELSE употребляется слово COPY, то результатом становятся значения не включенные в списки перекодирования. Слово COPY имеет смысл употреблять, когда результат перекодирования записывается в другую переменную:
Recode educat (1=2)(2=1)(else=copy) into educat1.
Без (else=copy) в переменную educat1 будут внесены лишь перекодированные значения.
Заметим, что если переменная назначения за ключевым словом INTO ранее существовала, то она не изменит своих значений, если команда Recode не заносит в нее никаких кодов.
Среди списка значений для переменной, имеющей неопределенные значения, могут стоять слова MISSING и SYSMIS.
RECODE K9 ТO K12 (0 THRU 25 = 1)(MISSING = 10)(SYSMIS = 5).
Команда RECODE позволяет также интервалировать, группировать значения.
RECODE V11 V13 ( 8, 9, 2, 4, 7 = 1) (else=2).
V11 V12 V13 V11 V12 V13
┌──┬─────┬──┬────┐ 1->2 ┌──┬─────┬──┬────┐
│2 │ 9 │1 │ │ 4->1 │1 │ 9 │2 │ │
│7 │ 10 │5 │ │ . │1 │ 10 │2 │ │
│8 │ 11 │4 │ │ 3->2 │1 │ 11 │1 │ │
└──┴─────┴──┴────┘ 7->1 └──┴─────┴──┴────┘
Исходная матрица Перекодированная матрица
Рис.2.2. Перекодирование данных
Что происходит при этом с матрицей данных? Как видно из приведенной выше схемы, происходит замена значений в соответствии с приведенными в команде списками значений.
Рассмотрим примеры перекодирования кодов неопределенности. При ответах на вопросы анкеты "Курильские острова" (приложение 1) кто-то не ответил на первый вопрос, кто-то сказал "Затрудняюсь". Объединим этих респондентов. Это можно осуществить командой
RECODE V1 (SYSMIS = 4). и, таким образом, перекодировать системный код неопределенности в код 4. Можно провести обратную операцию:
RECODE V1 (4 = SYSMIS).
Этой командой код 4 перекодируется в системный код неопределенности. При обработке данных по этому признаку объекты, для которых значение V1 было когда-то равно 4, будут исключены из статистической обработки.
Тот же эффект можно получить, воспользовавшись командой
MISSING VALUES V1(4).
При этом таблица данных не изменится; но во внутренней для SPSS информации сохранятся сведения о том, что указанный в данной команде код является пользовательским кодом неопределенности для V1.
В SPSS запрещено писать MISSING справа от знака равенства, т.е. команда
RECODE V1(4=MISSING). недопустима!
Имеется еще вариант выполнения команды RECODE с созданием новой переменной. Для этого используется уключевое слово INTO:
RECODE V11 ( 8, 9, 2, 4, 7 = 1) (else=2) INTO W11.
При таком использовании команды в большинстве случаев необходимо перечислять все коды исходной переменной, поскольку не указанные значения переходят в системные неопределенные.