Создание фиктивных переменных (AnswerNet)
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 | Эти заметки технического характера демонстрируют несколько способов создания двоичных (фиктивных, dummy) переменных из категориальной переменной. Заметки были созданы в рамках решения 100000500 в службе поддержки SPSS AnswerNet. David Matheson Служба технической поддержки SPSS Разложение категориальной переменной SPSS в индикаторные (dummy) переменные. Вопрос. С помощью какой команды SPSS можно преобразовать номинальную переменную с n категориями в вектор, состоящий из n-1 индикаторной (dummy) переменной? Ответ. К сожалению, для этого нет отдельной команды. Однако можно предложить несколько коротких комбинаций команд, которые сделают то, что вам требуется. Примеры приводятся ниже. Среди них наиболее общим способом кажется использование DO REPEAT. По крайней мере, этот способ наиболее прост, если базовой категорией не является наименьшее/наибольшее значение. * Создание индикаторных переменных. * Все примеры создают индикаторы из номинальной переменной, называемой cat, которая существует в открытом файле данных. * Создадим 4 индикаторных переменных для категорий 1 - 4 5-категориальной переменной cat. VECTOR nom(4). LOOP #i = 1 to 4. COMPUTE nom(#i) = (cat = #i). END LOOP. EXECUTE. * Другой способ . * Создадим 4 индикаторных переменных для категорий 2 - 5 5-категориальной переменной cat. VECTOR ind(4). LOOP #i = 1 to 4. COMPUTE ind(#i) = (cat = #i + 1). END LOOP. EXECUTE. * Если желаете сделать первую категорию базовой (которой соответствуют нули во всех индикаторных переменных) с именами, отражающими номера исходных категорий, то можно сделать следующее: . NUMERIC dum2 to dum5. VECTOR dumv = dum2 to dum5. LOOP #i = 1 to 4. COMPUTE dumv(#i) = (cat = #i + 1). END LOOP. EXECUTE. * Создание аналогичных переменных с использованием do repeat. DO REPEAT iv = indv2 to indv5 / c = 2 to 5 . COMPUTE iv = (cat = c). END REPEAT. EXECUTE. * Если базовой категорией является не первая и не последняя, а третья, например, то DO REPEAT кажется более удобным вариантом, чем VECTOR и LOOP. DO REPEAT iv = c3i1 c3i2 c3i4 c3i5 / g = 1 2 4 5 . COMPUTE iv = (cat = g). END REPEAT. EXECUTE. |
Related pages
...