我正在尝试在数据中创建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)。%%
我还尝试过分离文件来控制和案例数据集,并使用略有不同的代码:
我希望结果如以下示例所示:
但是,只是将控件从新的ID变量中排除了:
答案 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.