Решение SPSS AnswerNet
Код решения: 100008309
Продукт: SPSS Base
Тип вопроса: синтаксис/командный режим/скрипты
Подтип вопроса: Преобразования данных
Тема:
Стандартизация (вычисление z-значений)по набору переменных в пределах наблюдений в SPSS.
Описание:
Вопрос.
Мне надо преобразовать имеющийся набор переменных в файле SPSS
в набор z-значений (т.е. величин, имеющих среднее 0 и стандартное
отклонение (SD) 1 для каждого человека) на основании среднего и SD
по этим переменным для каждого человека (наблюдения).
Ответ.
Можно произвести эти преобразования через меню, но проще будет
действовать через синтаксис. Ниже разобраны 3 примера.
Пример 1:
Простейший пример таков.
Если переменные, нуждающиеся в стандартизации, расположены впритык
в наборе данных, можно использовать структуру VECTOR-LOOP.
В этом примере такие переменные поименованы как VARX1..VARX8.
(Они не обязательно должны иметь общую часть имени, достаточно просто того,
что они расположены встык друг к другу в файле данных) Новые стандартизированные
переменные называются ZX1..ZX8.
*************.
COMPUTE avgx = MEAN(varx1 TO varx8).
COMPUTE sdx = SD(varx1 TO varx8).
VECTOR xraw = varx1 TO varx8.
VECTOR zx (8).
LOOP #i = 1 TO 8.
COMPUTE zx(#i) = (xraw(#i) - avgx)/sdx .
END LOOP.
EXECUTE.
***********.
Пример 2:
Если ваши переменные имеют осмысленные имена и вы хотите, чтобы
стандартизированные аналоги имели похожие имена, вам поможет следующий
пример. Допустим, надо стандартизировать следующие 8 переменныx:
color, price, power, steer, safety, space, miles, style, расположенные
в файле данных в указанном порядке. Командой NUMERIC предварительно
определим похожие переменные в словаре SPSS (сначала они будут пустыми).
Ещё раз: переменные должны быть расположены встык в файле данных.
*******************.
COMPUTE avgx = MEAN(color TO style).
COMPUTE sdx = SD(color TO style).
VECTOR att = color TO style.
NUMERIC zcolor zprice zpower zsteer zsafety zspace zmiles zstyle (F8.2).
VECTOR zatt = zcolor TO zstyle .
LOOP #i = 1 TO 8.
COMPUTE zatt(#i) = (att(#i) - avgx)/sdx .
END LOOP.
EXECUTE.
*****************.
Пример 3:
Если исходные переменные расположены не встык в файле, можно либо
переупорядочить их, либо использовать программную структуру DO REPEAT.
*****************.
COMPUTE avgx =
MEAN(color, price, power, steer, safety, space, miles, style).
COMPUTE sdx =
SD(color, price, power, steer, safety, space, miles, style).
DO REPEAT
att = color price power steer safety space miles style
/zatt = zcolor zprice zpower zsteer zsafety zspace zmiles zstyle.
COMPUTE zatt = (att - avgx)/sdx .
END REPEAT.
EXECUTE.
***************.