如何找到频率最高的组合?
How to find which combinations have the most frequency?
我有一个 SPSS 数据集,其中包含 500 多名受访者和他们可能有的 18 种症状。
每个症状都有自己的变量 Symptom01 = 1 表示他们有症状 1 Symptom02 = 0 表示他们没有症状 2 等等
我想知道在我的数据集中哪种 3 种症状的组合更常见。例如有多少人有症状 1、5 和 6;有多少人有症状 1、2 和 3 等
我并不是说他们只有那些症状。他们可以有其他人。我只想知道哪一组 3 种症状在我的数据集中更常见。
有很多组合,你会怎么做?
有人可以帮助我吗?
请注意下面的宏使用变量名称 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.
现在定义一个包含三个循环的宏:
编辑 - 此版本解释了症状的重复组合
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.
编辑 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.
我有一个 SPSS 数据集,其中包含 500 多名受访者和他们可能有的 18 种症状。
每个症状都有自己的变量 Symptom01 = 1 表示他们有症状 1 Symptom02 = 0 表示他们没有症状 2 等等
我想知道在我的数据集中哪种 3 种症状的组合更常见。例如有多少人有症状 1、5 和 6;有多少人有症状 1、2 和 3 等
我并不是说他们只有那些症状。他们可以有其他人。我只想知道哪一组 3 种症状在我的数据集中更常见。 有很多组合,你会怎么做?
有人可以帮助我吗?
请注意下面的宏使用变量名称 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.
现在定义一个包含三个循环的宏:
编辑 - 此版本解释了症状的重复组合
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.
编辑 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.