Стандартизировать значения в пределах наблюдения
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. ***************. |