Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / Rost SPSS.doc
Скачиваний:
62
Добавлен:
15.05.2015
Размер:
8.1 Mб
Скачать

2.5.1.1. Основные функции и операторы команд computEиIf

Арифметические операторы +, -, *, / в этих командах употребля­ются обычным порядком, две звездочки**означают возведение в степень.

Результатом логической операции будет 1, если логическое выражение истинно, и 0, если выражение ложно (логическое выражение (v9 > 30) равно 1, еслиv9 > 30, и равно 0, еслиv9 30).

Допустимы операторы сравнения <, <=, <, <=, ~=, где последний оператор означает «не равно» и логические операторы ~ – отрицание (not), & – логическое «и» (and) и логическое «или» | (or).

При вычислении логического выражения, если порядок выполнения не задан скобками, сначала выполняются арифметические операции, затем сравнения, затем логические операции. Приоритетность выполнения операций естественна – так она обычно определяется в математике и языках программирования. Но следует заметить, что операции сравнения находятся на одном уровне. В частности значение выражения (5 > 3 > 2), будет равно 0 («ложь»), так как в соответствии с порядком выполнения операций в этом выражении (5 > 3 > 2) = ((5 > 3) > 2) = (1 > 2) = 0!

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

COMPUTE x = (v9 > 30) + v10 > x + z.

Эта хитроумная команда превращает вначале выражение (v9 > 30) в 0 или 1 в зависимости от его истинности, затем производит вычисления левой ((v9 > 30) +v10) и правой (x + z) частей неравенства и в зависимости от результата сравнения присваивает переменнойxзначение 0 или 1.

Кроме того, имеется возможность использовать:

Арифметические функции, такие как:ABS– абсолютное значение,RND– округление,TRUNC– целая часть,EXP– экспонента,LN– натуральный логарифм, и др. Например,

COMPUTE LNv9 = LN(V9).

Переменной LNv9присваиваются логарифмы значений переменнойV9.

Статистические функции:SUM –сумма,MEAN– среднее,SD –стандартное отклонение,VARIANCE– дисперсия, MIN– минимум иMAX– максимум. Например, команда

COMPUTE S = MEAN (d1 to d10).

вычисляет переменную, равную среднему валидных (т. е. определенных) значений переменныхd1, …, d10.

Функции распределения, например:

CDF.CHISQ(q, a) – распределения хи-квадрат,CDF.EXP(q, a) – экспоненциального распределения,CDF.T(q, a) – Стьюдента, и др. (q– аргумент функции распределения,a– параметр соответствующего распределения). Команда

COMPUTE Y = CDF.T(Х, 10).

Эти функции могут быть использованы для проверки предположения о виде распределения переменной. Например, если мы для расчета переменной используем функцию распределения Стьюдента с 10 степенями свободы и построим значения от переменной Х, которая распределена по Стьюденту с 10 степенями свободы, то получим переменнуюY, равномерно распределенную на отрезке (0, 1).

Таким образом, если есть подозрение, что Химеет именно такое распределение, то можно проверить это предположение, построив переменнуюYи проверив ее на равномерность распределения на отрезке (0, 1).

То же самое можно предпринять для проверки других видов распределений.

Обратные функции распределения, например:

IDF.CHISQ(p, a) – обратная функция распределения (по сути дела, квантиль) хи-квадрат,IDF.F(p, a, b) – квантиль распределения Фишера,IDF.T(p, a) – квантиль распределения Стьюдента, и др. (p– вероятность,aиb– параметры соответствующего распределения). Например,

COMPUTE Z = IDF.CHISQ(X, 10).

вычисляет квантиль порядка Xраспределенияхи-квадратс 10 степенями свободы. Такие функции полезны для вычисления значимости статистик для подмножеств исследуемого множества, например значимости отклонения среднего возраста по городам региона, в котором произведен сбор данных.

Датчики случайных чисел, например:

RV.LNORMAL(a, b) – датчик лог-нормального распределения.

RV.NORMAL(a, b) – датчик нормального распределения,

RV.UNIFORM(a, b) – датчик равномерного распределения (a, b– параметры соответствующего распределения).

Функция, дающая значения переменнойна предыдущем объектеLAG. Пример использования (см. рис. 1.1, данные «Проблем и жалоб»):

COMPUTE age1 = LAG(age).

COMPUTE age2 = LAG(age, 3).

EXECUTE.

Указанное преобразование осуществляет сдвиг информации, показанный в табл. 2.1. В скобках второй параметр задает длину лагового сдвига.

Таблица 2.1