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

boyanx3个月前技术教程36

李志辉 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!如上图,需要将12个人随机分成3组,每组4人。函数公式如下:=ROUNDUP(CHOOSECOLS( SORT(HSTACK(ROW(1:12), RANDARRAY(12...

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

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

失业程序员复习python笔记——dataframe基本图形展示

Pandas DataFrame 结合 Matplotlib 可以创建各种数据可视化图形。下面我将展示几个常见的 DataFrame 图形展示案例。安装matplotlib库执行pip install...

如何将人名打乱,随机排序?#excel技巧

人名打乱,随机排序。如何在需要随机分组时把现有人名打乱并进行随机排序呢?首先,随机排序用到的是排序函数,即数组函数 sosby,然后对其进行排序,将其选中即可。那排序的依据是什么呢?因为要随机排序,所...

rand、randbetween函数生成随机数,用于随机分组、不重复抽奖

大家好!今天和大家分享,Excel中可以生成随机数的两个函数:rand函数、randbetween函数。本文主要包括两部分:1、介绍rand、randbetween函数的基本用法;2、介绍rand函数...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

发表评论    

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