上次介绍数据校验时(https://mp.weixin.qq.com/s?__biz=MzIwMDIwNTIyNQ==&mid=2247484341&idx=1&sn=a7081aa8874fef99d6685cf9981f99b4&chksm=9681f573a1f67c656f93cea9c4772ef659f72097c08b2fa116394f3db1964c2454cea8d67344&token=1281594893&lang=zh_CN#rd),是作单个变量的数据校验。如果逻辑校验需要同时涉及到几个变量,则需要用到交叉变量校验(cross variable validate)。例如,数据集中包含变量“出生日期”“就诊日期”“死亡日期”,由逻辑判断可知,出生日期在就诊日期之前或相同,并且就诊日期在死亡日期之前或相同,所以一个个案记录的上述关系违反其一,必定有逻辑错误。通过交叉变量校验即可快速找出。SPSS实现过程如下:
1.打开数据,注意度量标准最好手动设置。通过观察,可以看到第3、4个个案是存在逻辑错误的。
![](https://img.haomeiwen.com/i25504669/98b482f888d0b18f.png)
![](https://img.haomeiwen.com/i25504669/30caefe4f8734728.png)
2.定义交叉变量校验规则。这个规则指的是不符合逻辑的规则。逻辑表达式里的“出生日期 > 就诊日期 | 就诊日期 > 死亡日期”的“|”代表“或者”,此处这样写逻辑表达式,意思就是说,如果符合“出生日期 > 就诊日期”或者“就诊日期 > 死亡日期”其中一个,就会判定为不符合逻辑
![](https://img.haomeiwen.com/i25504669/9aaf610dcfb1babd.png)
![](https://img.haomeiwen.com/i25504669/aab1ecba12a2493a.png)
3.校验数据:
![](https://img.haomeiwen.com/i25504669/ece7d4a6b9685290.png)
![](https://img.haomeiwen.com/i25504669/975c85d93f6b128c.png)
![](https://img.haomeiwen.com/i25504669/6496eda8022867f6.png)
![](https://img.haomeiwen.com/i25504669/1cc52182f0a4d6f8.png)
4.结果解读:可以看到,第3、4个个案已经被识别出来。在数据集中,变量CrossVarRule1变量值为1,表示该个案为逻辑错误的无效个案。注意到交叉变量规则里,违规数是2,规则表达式就是我们刚才定义的。此处的违规个案,其实是符合我们定义的规则的个案。这里显示得比较混乱,容易让人误解为我们定义的规则是符合逻辑的,其实相反。
![](https://img.haomeiwen.com/i25504669/2749fe1f4b1e1171.png)
5.补充说明:细心的读者可能发现了,第二个个案的出生年份为1850年,这是有逻辑错误的。假如定义出生日期不可能早于1920年1月1月,如果需要把它也识别出来,想想如何写逻辑表达式?
欢迎大家关注我的公众号
统计练习题
并回复“cross validate”可获得今天的数据
☆ END
网友评论