Скачиваний:
93
Добавлен:
21.01.2014
Размер:
168.96 Кб
Скачать

Работа с неопределенными значениями

Вообще говоря, если в арифметическом выражении встретится переменная с неопределенным значением, результат будет не определен, однако значения выражения

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.

При таком использовании команды в большинстве случаев необходимо перечислять все коды исходной переменной, поскольку не указанные значения переходят в системные неопределенные.

Соседние файлы в папке Учебник по SPSS, учебное пособие