1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Решение 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. 
***************.