
- •Глава 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)
Основные функции и операторы команд 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).
Статистические функции: SUM сумма, MEAN - среднее, SD стандартное отклонение, VARIANCE - дисперсия, MIN -минимум и MAX - максимум. Например, команда
Compute S=меаn(d1 to d10).
Вычисляет переменную, равную среднему валидных значений переменных d1,…,d10.
Функции распределения, например:
CDF.CHISQ(q,a) - распределения хи-квадрат, CDF.EXP(q,a) - экспоненциального распределения, CDF.T(q,a) - Стьюдента и др. (q - аргумент функции распределения, a - параметр соответствующего распределения). Команда
Compute y=CDF.T(x,10).
Вычисляет переменную Y, значения которой суть значения функции распределения Стьюдента с 10 степенями свободы от значений переменой x.
Если есть подозрение, что X имеет именно такое распределение, то переменная y должна иметь равномерное на отрезке (0,1) распределение. Благодаря этому можно проверить предположение о распределении X.
То же самое можно сказать о других видах распределений.
Обратные функции распределения, например,
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.
N Анкеты |
Пол SEX |
Возраст (Age) |
Возраст (Age1) |
Возраст (Age2) |
1 |
1 |
20 |
|
|
2 |
1 |
25 |
20 |
|
3 |
2 |
34 |
25 |
|
4 |
1 |
18 |
34 |
20 |
. |
. |
. |
|
|
Рис.2.1. Сдвиг, произведенный функцией LAG (данные "Проблем и жалоб")
Функция полезна для анализа временных рядов, при анализе анкетных данных - для поиска повторов объектов, других вспомогательных операций.
Логические функции:
RANGE(v,a1,b1,a2,b2,…) - 1, если значение V попало хотя бы в один из интервалов [a1,b1], [a2,b2],… .
ANY(v,a1,a2,…) - 1, если значение V совпало хотя бы с одним из значений a1, a2, … .
Кроме того, в пакете имеются строчные функции, функции обработки данных типа даты и времени.