2016-11-06 7 views
2

У меня есть набор данных SPSS с 500+ респондентами и 18 симптомами, которые они могут иметь.Как найти, какие комбинации имеют наибольшую частоту?

Каждый симптом имеет свою собственную переменную Symptom01 = 1 означает, что они имеют симптом 1 Symptom02 = 0 означает, что они не имеют симптомов 2 и т.д. и т.п.

То, что я хочу знать, какая комбинация из 3-х симптомов чаще в мой набор данных. Например, у многих людей есть симптом 1, 5 и 6; сколько людей имеют симптом 1, 2 и 3 и т. д.

Я не имею в виду, что у них есть только эти симптомы. У Теи могли быть другие. Я просто хочу знать, какая группа из 3 симптомов чаще встречается в моем наборе данных. Это много комбинаций, так как бы вы это сделали?

Может кто-нибудь мне помочь?

ответ

1

Пожалуйста, обратите внимание, что макрос ниже использует имена переменных Symptom1, Symptom2 и т.д.»вместо "Symptom01", "Symptom02" ...

Сначала создавая некоторые выборочные данные для работы на:

data list list/Symptom1 to Symptom18. 
begin data 
1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 
1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 
0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 
1 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 
1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 
0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 1 
1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 1 
1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 
0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 
1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 
end data. 

Теперь определение макроса с тремя петлями:
EDIT - эта версия объясняет повторяющиеся комбинации симптомов

define AllCombsOf3() 
!do !vr1=1 !to 18 
!do !vr2=!vr1 !to 18 
!do !vr3=!vr2 !to 18 
!if (!vr2<>!vr1 !and !vr2<>!vr3) !then 
compute !concat("C_",!vr1,"_",!vr2,"_",!vr3)= !concat("Symptom",!vr1)=1 & !concat("Symptom",!vr2)=1 & !concat("Symptom",!vr3)=1 . 
!ifend 
!doend 
!doend 
!doend 
!enddefine. 

Запуск макроса и отображения хотел результаты:

AllCombsOf3. 
means C_1_2_3 to C_16_17_18. 

EDIT 2 - новый макрос для четыре симптома версии

define AllCombsOf4() 
!do !vr1=1 !to 18 
!do !vr2=!vr1 !to 18 
!do !vr3=!vr2 !to 18 
!do !vr4=!vr3 !to 18 
!if (!vr2<>!vr1 !and !vr2<>!vr3 !and !vr3<>!vr4) !then 
compute !concat("C_",!vr1,"_",!vr2,"_",!vr3,"_",!vr4)= 
    !concat("Symptom",!vr1)=1 & !concat("Symptom",!vr2)=1 & 
    !concat("Symptom",!vr3)=1 & !concat("Symptom",!vr4)=1 . 
!ifend 
!doend !doend !doend !doend 
!enddefine. 

AllCombsOf4. 
means C_1_2_3_4 to C_15_16_17_18. 
+0

Спасибо большое! Работал потрясающе! Только один последний вопрос, если я попытаюсь найти комбинации из 4 симптомов, как бы я это сделал? Снова большое спасибо – Andre

+0

Я добавил версию макроса для 4 комбинаций симптомов. Также для версии 3 симптомов - ** используйте отредактированный макрос **, поскольку он не содержит повторяющихся комбинаций. –