SPSS也能编程?——区组随机化编码之快速实现

boyanx7个月前技术教程64

李志辉 Hui

【作者介绍】李志辉,长期从事各类统计软件应用研究,主编或参编SPSS、MINITAB、STATISTICA多个统计软件教材共8本。代表作:电子工业出版社《SPSS常用统计分析教程(SPSS 22.0中英文版)(第4版)》(2015年)。

什么?SPSS也能够编程?不是SAS、STATA、R等软件才能够编程吗?

答案是肯定的,SPSS的祖先(DOS版本)的所有功能都是利用命令语句实现的,SPSS的6.0版本采用Windows窗口界面,用户只需要用鼠标简单地点点点就可以完成复杂统计运算了,自此SPSS的编程功能逐渐被人遗忘了。有人喜欢用相机来形容各种统计软件,说SAS是单反机,SPSS是傻瓜机,真是太冤了,SPSS后续版本的编程功能不光没有弱化,而是不断地完善,功能越来越强大,一点都不逊逊于其他统计软件,而且还可以兼容时髦的R语言了。因此SPSS不光是一台简单易用的傻瓜机,更是一台功能强大的单反机,不信翻翻软件自带的命令语法手册(IBM SPSS Statistics 23 Command Syntax Reference),总共有2236页。当年洪楠教授编著的培训教材就是DOS版本的。

下面我用一个简单的例子介绍一下。

在临床研究中,我们常用的完全随机化设计,我们常用随机数字对病例进行分组。如研究对象共有60人,使用随机数字分组,可能分成例数分为别18、18和24的三组,这还还算是比好好的情况,有时可能会更糟糕。而且三组成员入组的时间也不一样,差距可能较大。此时,我们可以使用程序生成一组区组随机化编码即可简单的分组了。在SPSS的可以用一组命令即可一键生成区组随机化编码。具体操作如下:

首先,建立一个有60个个案的空数据文件。

运行如下程序,即可一键区组随机化编码,结果见下图。

DATASET ACTIVATE 数据集1.

COMPUTE ID=$CASENUM.

EXECUTE.

COMPUTE block=TRUNC(($CASENUM - 1) / 3 ) +1.

EXECUTE.

COMPUTE random=RV.UNIFORM(1,1984).

EXECUTE.

SORT CASES BY block(A) random(A).

COMPUTE inseq=MOD($CASENUM - 1,3).

EXECUTE.

SORT CASES BY ID(A).

删除其他变量,只保留ID和inseq两个编后,结果如下。

流水号(ID)顺序号(inseq)
10
21
32
40
52
61
72
81
90
101
112
120
…………

有了这个区组区组编码后,按时间顺序,每三个研究对象1组,如第1组:第1对象进入对照组,第2个对象干预组1,第3个对象干预组2;如第2组:第1对象进入对照组,第2个对象干预组2,第3个对象干预组3;以此类推,不但保证每组个案在入组时间上保持了一致,样本量上也保证了一致。不出问题的话,都是20、20、20。

注:1、读者设定的初始例数应≥研究计划的例数,为了确保随机数的统一,建议用户可适当较大的初始例数,在研究中严格按照个案编码ID及组内顺序号inseq入组即可。

2、第6行、第14行的参数3为研究的对照组和干预组的总组数,如用于需要生成4组的区组随机化编码,将上述两行的参数3改成4即可。

总结:本例也可以使用菜单+窗口方式操作,但是需要调用4次COMPUTE程序,2次SORT程序才能完成,显然在这个案例上,使用命令语法是简单多了。

本文由信订阅号“一起学SPSS”和“医学统计分析精粹”共同创作完成。

相关文章

Excel名单分组太难?两种方法投票/销售/签到/分班数据10秒自动排

在日常工作中,我们经常需要统计员工的投票结果,比如将投“方案一”和“方案二”的人员名单分别整理成表格,领导要求姓名按10人一排排列。这类需求如果用传统方法手动复制粘贴,效率极低。今天教大家两种方法:小...

火狐Firefox浏览器测试AI链接悬停预览,解析网页关键点

IT之家 4 月 8 日消息,科技媒体 Windows Report 昨日(4 月 7 日)发布博文,报道称 Mozilla 正加速推进火狐 Firefox 浏览器的 AI 功能,正邀请用户测试“AI...

Python中的random模块:生成随机数的魔法工具

在编程中,随机数无处不在——无论是游戏中的随机事件、抽奖程序中的公平选择,还是模拟实验中的数据生成,都离不开它。Python的random模块为我们提供了丰富的工具,让随机数的生成变得简单又有趣。一、...

3D彩票算法揭秘:复式选号高回报策略与实战技巧全解析

3D彩票算法与复式选号解析一、3D彩票算法解析1. 随机性与算法原理o 3D彩票的开奖号码基于随机性生成,每个数字(0-9)出现的概率理论上均为1/10。o 常用算法包括: Mersenne Twis...

对人员进行随机分组,分步骤详细解释,看了就学会了

大家好,我是套路EXCEL!如上图,需要将12个人随机分成3组,每组4人。函数公式如下:=ROUNDUP(CHOOSECOLS( SORT(HSTACK(ROW(1:12), RANDARRAY(12...

12月29日定期维护公告 新强P玩法来袭

亲爱的玩家朋友:为保证服务器的运行稳定和服务质量,《梦幻西游2》所有服务器将于2015年12月29日上午7:00停机,进行每周例行的维护工作。预计维护时间为上午7:00~9:00。如果在预定时间内无法...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。