如何用SPSS模糊命令修复案例控制匹配

时间:2019-04-28 13:32:56

标签: matching spss fuzzy

我正在尝试在数据中创建1:4的案例对照匹配,但是最终数据集不包含任何控件。为什么呢?

我正在使用SPSS 23进行745,414观察,595,388对照和150026例(1:4比率为20.1%)。这些病例和对照已经按照年龄和性别进行匹配,但是我正在尝试创建五个观察值的集群(1个病例和4个对照),每个观察值都标有特定的ID。

这是我一直在使用的代码:

FUZZY BY =年龄性别供应商ID =供应商 newdemanderidvar = sid group = case

%% sex的年龄范围是8-88m,可以取两个值(1或2),“ supplier”是从1到745,414的序列号,“ case”则表示观察结果是案例(1)还是对照( 0)。%%

我还尝试过分离文件来控制和案例数据集,并使用略有不同的代码:

我希望结果如以下示例所示:

enter image description here

但是,只是将控件从新的ID变量中排除了:

enter image description here 知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

您的FUZZY命令看起来不完整。通常可以从程序本身执行的操作中学到很多东西。尝试“数据->案例控制匹配...”菜单来设置分析,并查看粘贴的命令语法与您的命令语法有何不同

您的用户:

FUZZY BY=age sex supplierid=supplier newdemanderidvar=sid group=case

由用户界面粘贴

FUZZY BY=age sex SUPPLIERID=supplier NEWDEMANDERIDVARS=sid GROUP=case EXACTPRIORITY=FALSE MATCHGROUPVAR=id 
 /OPTIONS SAMPLEWITHREPLACEMENT=FALSE MINIMIZEMEMORY=TRUE SHUFFLE=FALSE.

当然,上述命令是默认的,但是在您指定了使作业运行的最小值之前,UI不会允许您退出该命令。

这是我的示例语法,用于创建我认为您正在描述的数据集,并对它运行FUZZY。

* Encoding: UTF-8. 

DATASET CLOSE ALL.
NEW FILE.
OUTPUT CLOSE ALL.

INPUT PROGRAM. 
LOOP supplier = 1 TO 745414. 
COMPUTE case =  (mod($CASENUM,4)=0). 
COMPUTE age = SUM(TRUNC(UNIFORM(80)),8). 
COMPUTE sex = SUM(TRUNC(UNIFORM(2)),1). 
END CASE. 
END LOOP. 
END FILE. 
END INPUT PROGRAM. 
VALUE LABELS case 0 'Control' 1 'Case'/ 
     sex 1 'Female' 2 'Male'. 
EXECUTE. 
** A 1:4 ratio *.
FREQUENCIES VARIABLES =case.

** Your posted command -- fails for me **.
*FUZZY BY=age sex supplierid=supplier newdemanderidvar=sid group=case.
** The command the UI built and pasted **.
FUZZY BY=age sex SUPPLIERID=supplier NEWDEMANDERIDVARS=sid GROUP=case EXACTPRIORITY=FALSE  MATCHGROUPVAR=id 
/OPTIONS SAMPLEWITHREPLACEMENT=FALSE MINIMIZEMEMORY=TRUE SHUFFLE=FALSE.