第三章:程序编辑窗口用法详解 (医学统计之星:张文彤) 在某年某月的某一天,你和你的另一半正在街上为地球表面的平整而贡献自 己的绵薄之力。突然(也许是必然),你觉得有些饿了。这是一个问题,当然, 不用说大家也知道解决问题的方法就是一一吃。不过就是吃也有讲究,可以随便 找个面馆简单的填饱肚子;要求高的话还可以去几星级的地方享受一下;当然还 有的人觉得自己回去做口味也合适,花费也不多;更有些超级美食家,星级水准 也不满意,需要亲自给一级厨师露一手,指点他们一下,才会吃的满意 好,使用SPSS进行统计分析的方式就象上面填饱肚子的方法一样有几种选择, 如果你烹饪工夫还欠火候,或者习惯了享受星级服务,那么直接使用SPSS为你 提供的对话框进行操作就是了;而如果你习惯了DIY,甚或对话框也无法满足你 的统计分析要求(别瞪眼,下面你就会看到了),就请你在本章学习一下如何写 SPSS程序吧。 什么?SPSS还有程序?!是的,如果大家以前用过SPss/PC+4.0,就一定不会 对SPSS的程序感到陌生:在那个非常遥远的DS时代(大约15年前),学习 SPSS程序的语法,掌握如何编写SPSS程序是熟练使用SPSS的必要条件(但还 不充分)。随着 Windows旋风的登陆,软件的易操作性被推进到了前所未有的高 度,而SPSS显然是统计软件中做的最成功的一个。他的操作界面是如此的成功, 让使用者可以完全无须了解SPSS的语法而使用其99%的功能,使得SPSS程序被 人逐渐忘记。其实,适当的使用SPSS程序可以大大提高我们的工作效率,并且 SPSS在设计时也充分注意到了编程功能和使用界面的结合一一还记得 Paste按 钮吗?下面我们就结合几个实例来学习如何使用程序编辑窗口。 山请注意:我们不准备教大家那些枯燥的SPS语法,现在写SPS程序就象在 WORD中记录宏一样简单,所需要做的只是略加修改而已。 3.0.1程序编辑窗口界面 选择菜单File=γnew=> syntax,系统会开启一个新的程序编辑窗口如下
第三章:程序编辑窗口用法详解 (医学统计之星:张文彤) 在某年某月的某一天,你和你的另一半正在街上为地球表面的平整而贡献自 己的绵薄之力。突然(也许是必然),你觉得有些饿了。这是一个问题,当然, 不用说大家也知道解决问题的方法就是--吃。不过就是吃也有讲究,可以随便 找个面馆简单的填饱肚子;要求高的话还可以去几星级的地方享受一下;当然还 有的人觉得自己回去做口味也合适,花费也不多;更有些超级美食家,星级水准 也不满意,需要亲自给一级厨师露一手,指点他们一下,才会吃的满意。 好,使用 SPSS 进行统计分析的方式就象上面填饱肚子的方法一样有几种选择, 如果你烹饪工夫还欠火候,或者习惯了享受星级服务,那么直接使用 SPSS 为你 提供的对话框进行操作就是了;而如果你习惯了 DIY,甚或对话框也无法满足你 的统计分析要求(别瞪眼,下面你就会看到了),就请你在本章学习一下如何写 SPSS 程序吧。 什么?SPSS 还有程序?!是的,如果大家以前用过 SPSS/PC+ 4.0,就一定不会 对 SPSS 的程序感到陌生:在那个非常遥远的 DOS 时代(大约 15 年前),学习 SPSS 程序的语法,掌握如何编写 SPSS 程序是熟练使用 SPSS 的必要条件(但还 不充分)。随着 Windows 旋风的登陆,软件的易操作性被推进到了前所未有的高 度,而 SPSS 显然是统计软件中做的最成功的一个。他的操作界面是如此的成功, 让使用者可以完全无须了解 SPSS 的语法而使用其 99%的功能,使得 SPSS 程序被 人逐渐忘记。其实,适当的使用 SPSS 程序可以大大提高我们的工作效率,并且 SPSS 在设计时也充分注意到了编程功能和使用界面的结合--还记得 Paste 按 钮吗?下面我们就结合几个实例来学习如何使用程序编辑窗口。 请注意:我们不准备教大家那些枯燥的 SPSS 语法,现在写 SPSS 程序就象在 WORD 中记录宏一样简单,所需要做的只是略加修改而已。 3.0.1 程序编辑窗口界面 选择菜单 File==>new==>syntax,系统会开启一个新的程序编辑窗口如下:
ynt axl -SPSS Synt ax Editor 口E File Edit view Analyze Graphs Utilities Run Window Help 回倒國回回叫剑回到 4 SPSS Processor is ready Syntax从字面上应该翻译为句法、语法的意思,这里从实际用途出发,翻译 为程序。 和以前见过的数据管理窗口相比,这个窗口简单的不能再简单了。菜单项中的 File、Edit、View、 Analyze、 Graphs等菜单都是通用的,唯一特殊的是Run菜 单,该窗口的特殊功能均在这里实现 3.0.2邂逅 Paste按钮 Paste按钮在几乎所有SPSS对话框中均存在,它是专门为编程准备的。以第 章的那个t检验为例,如果最终选择完毕后不单击0K而是单击 Paste,则程序 编辑窗中会自动生成以下语句: T-TEST GROUPS=group(1 2) /MISSING=ANALYSIS /VARIABLES=X /CRITERIA=CIN(. 95) 这就是你刚才想做的工作,如果运行它,就可以得到t检验的结果!怎么运行? 选择菜单Run==>al1,看到了吗 Paste按钮如何能生成程序?在SPSS中,操作界面实际上起的就是“操作界 面”的作用。当你用对话框选定某项操作,单击OK后,SPSS就将你的选择翻译 成程序语句,然后提交系统执行。如果你单击 Paste按钮,SPSS就不将生成的
Syntax 从字面上应该翻译为句法、语法的意思,这里从实际用途出发,翻译 为程序。 和以前见过的数据管理窗口相比,这个窗口简单的不能再简单了。菜单项中的 File、Edit、View、Analyze、Graphs 等菜单都是通用的,唯一特殊的是 Run 菜 单,该窗口的特殊功能均在这里实现。 3.0.2 邂逅 Paste 按钮 Paste 按钮在几乎所有 SPSS 对话框中均存在,它是专门为编程准备的。以第一 章的那个 t 检验为例,如果最终选择完毕后不单击 OK 而是单击 Paste,则程序 编辑窗中会自动生成以下语句: T-TEST GROUPS=group(1 2) /MISSING=ANALYSIS /VARIABLES=x /CRITERIA=CIN(.95) . 这就是你刚才想做的工作,如果运行它,就可以得到 t 检验的结果!怎么运行? 选择菜单 Run==>all,看到了吗? Paste 按钮如何能生成程序?在 SPSS 中,操作界面实际上起的就是“操作界 面”的作用。当你用对话框选定某项操作,单击 OK 后,SPSS 就将你的选择翻译 成程序语句,然后提交系统执行。如果你单击 Paste 按钮,SPSS 就不将生成的
程序语句提交执行,而是传送到程序编辑窗中供你折腾。说的再广一些,不光 SPSS,SAS等其他统计软件也是这么做的。 从上面的语句可以看到SPSS程序的基本结构:一条语句可占多行,最前面 为语句主体,具体的选项用斜杠和语句主体相连,最后用小数点结束语句。 3.0.3用程序编辑窗口加快我们的工作 如果程序编辑窗口只能带来“暂停”功能的话,我也就不用再往下写了。幸好, 它的作用还远不止与此。当需要成批次的处理数据时,当你需要重复进行相同的 统计分析时,当你要做许多统计分析,每一步均费时较长而你又不想等时.., 使用 Paste按钮是你的救命稻草。仍以第一章为例,如果从预分析一开始就连续 使用 Paste按钮,则到分析结束我们会得到如下程序: DESCRIPTIVES VARIABLES=X /STATISTICS=MEAN STDDEV MIN MAX SORT CASES BY group SPLIT FILE SEPARAtE BY group DESCRIPTIVES VARIABLES=X /STATISTICS=MEAN STDDEV MIN MAX GRAPH /HISTOGRAM=X T-TEST GROUPS=group(1 2) /MISSING=ANALYSIS /VARIABLES=X /CRITERIA=CIN( 95) 现在你可以再次启用Run菜单来一次完成所需的统计分析。特别的,如果你的数 据还会不断添加(试验尚未结束),就可以把该程序存为程序文件(*sps), 下次读入新数据后再运行一次就可以直接得到新的结果 uRm菜单几个选项的含义分别为: AL运行全部程序。 SELECTION运行所选择的程序语句。 CURRENT运行当前光标所在行的语句 T0END从当前语句起一直运行到程序结束
程序语句提交执行,而是传送到程序编辑窗中供你折腾。说的再广一些,不光 SPSS,SAS 等其他统计软件也是这么做的。 从上面的语句可以看到 SPSS 程序的基本结构:一条语句可占多行,最前面 为语句主体,具体的选项用斜杠和语句主体相连,最后用小数点结束语句。 3.0.3 用程序编辑窗口加快我们的工作 如果程序编辑窗口只能带来“暂停”功能的话,我也就不用再往下写了。幸好, 它的作用还远不止与此。当需要成批次的处理数据时,当你需要重复进行相同的 统计分析时,当你要做许多统计分析,每一步均费时较长而你又不想等时..., 使用 Paste 按钮是你的救命稻草。仍以第一章为例,如果从预分析一开始就连续 使用 Paste 按钮,则到分析结束我们会得到如下程序: DESCRIPTIVES VARIABLES=x /STATISTICS=MEAN STDDEV MIN MAX . SORT CASES BY group . SPLIT FILE SEPARATE BY group . DESCRIPTIVES VARIABLES=x /STATISTICS=MEAN STDDEV MIN MAX . GRAPH /HISTOGRAM=x . T-TEST GROUPS=group(1 2) /MISSING=ANALYSIS /VARIABLES=x /CRITERIA=CIN(.95) . 现在你可以再次启用 Run 菜单来一次完成所需的统计分析。特别的,如果你的数 据还会不断添加(试验尚未结束),就可以把该程序存为程序文件(*.sps), 下次读入新数据后再运行一次就可以直接得到新的结果。 Run 菜单几个选项的含义分别为: • ALL 运行全部程序。 • SELECTION 运行所选择的程序语句。 • CURRENT 运行当前光标所在行的语句。 • TO END 从当前语句起一直运行到程序结束
3.0.4用程序编辑窗口完成对话框无法完成的工作 如果程序编辑窗口的本事只限于上面介绍的这一点,那么在 Windows时代,它仍 然不配我来专门写一章。还记得吗?上面我提到用SPSS的图形界面可以完成99% 的工作,可有时候你偏偏需要用另外那1%的功能,请看下面的例子 例3.1请打开SPSS提供的cars.sav数据,假设每条记录代表一辆车,现在将 按下列条件挑选一些车出来:Year=300,并且要 看看每辆车符合了以上三条要求中的几条 解:没有什么难的,从第二章的知识我们了解到 Count对话框就是做这类事情的, 好,在 Count对话框进行操作如下: 1. Target variable框:键入Gl(新变量名) 2. Numeric variable框:选入Year 单击 Define values钮: 4. Range lowest through:键入76:单击ADD钮 5.单击 Continue钮 6. Numeric variable框:选入 cylinder 7.单击 Define values钮 8. Range lowest through:键入4:单击ADD钮 9.单击 Continue钮 10. Numeric variable框:选入 Weight 11.单击 Define values钮 2. Range through higest:键入3000:单击AD钮 13.单击 Continue钮 14.单击OK 好了,做完了一一不过好象不大对劲呀!怎么前面做的条件选择在后面定义的时 候仍然出现?再看看结果,更不对了!看来有问题。毛病出在哪里呢?请再次开 启 Count对话框,选择好的条件仍然在里面,单击 Paste钮,可以看到这些选择 产生的SPSS语句如下 COUNT G1= year cylinder weight (Lowest thru 76)year cylinder weight(Lowest thru 4)year cylinder weight (3000 thru Highest) EXECUTE 仔细看看,这个语句不对呀!明明 Lowest thru76应该是对变量Year的限制, 怎么year、 cylinder、 weight这三个变量都在它前面?再看另两个条件,一样 “大家有份”,这还了得,改!将语句改为正确的格式如下 COU
3.0.4 用程序编辑窗口完成对话框无法完成的工作 如果程序编辑窗口的本事只限于上面介绍的这一点,那么在 Windows 时代,它仍 然不配我来专门写一章。还记得吗?上面我提到用 SPSS 的图形界面可以完成 99% 的工作,可有时候你偏偏需要用另外那 1%的功能,请看下面的例子: 例 3.1 请打开 SPSS 提供的 cars.sav 数据,假设每条记录代表一辆车,现在将 按下列条件挑选一些车出来:Year=3000,并且要 看看每辆车符合了以上三条要求中的几条。 解:没有什么难的,从第二章的知识我们了解到 Count 对话框就是做这类事情的, 好,在 Count 对话框进行操作如下: 1. Target variable 框:键入 G1(新变量名) 2. Numeric variable 框:选入 Year 3. 单击 Define values 钮: 4. Range lowest through:键入 76:单击 ADD 钮 5. 单击 Continue 钮 6. Numeric variable 框:选入 cylinder 7. 单击 Define values 钮: 8. Range lowest through:键入 4:单击 ADD 钮 9. 单击 Continue 钮 10.Numeric variable 框:选入 Weight 11.单击 Define values 钮 12. Range through higest:键入 3000:单击 ADD 钮 13. 单击 Continue 钮 14.单击 OK 好了,做完了--不过好象不大对劲呀!怎么前面做的条件选择在后面定义的时 候仍然出现?再看看结果,更不对了!看来有问题。毛病出在哪里呢?请再次开 启 Count 对话框,选择好的条件仍然在里面,单击 Paste 钮,可以看到这些选择 产生的 SPSS 语句如下: COUNT G1 = year cylinder weight (Lowest thru 76) year cylinder weight (Lowest thru 4) year cylinder weight (3000 thru Highest) . EXECUTE . 仔细看看,这个语句不对呀!明明 Lowest thru 76 应该是对变量 Year 的限制, 怎么 year、cylinder、weight 这三个变量都在它前面?再看另两个条件,一样 “大家有份”,这还了得,改!将语句改为正确的格式如下: COUNT
Gl= year(Lowest thru 76) cylinder (Lowest thru 4)weight(3000 thru Highest) EXECUTE 再次运行该语句,可以看到各个记录G1分别被取值为0~3,代表该车满足了0~ 3条要求,最终满足全部三条要求的应为3条记录。 3.0.5再罗嗦几句 由于SPSS的大多数用户已经习惯了在图形对话框界面下操作,许多人不了解程 序编辑窗口的用途,编写本章的目的主要是提醒大家:适当的时候,程序编辑窗 口可以大大简化我们的工作。实际上,SPSS针对髙级用户(需要编程做模拟抽 样之类的事情)专门开发了 SPSS Production facility模块,确有编程需要(或 狂热)的朋友可参考有关书籍
G1 = year (Lowest thru 76) cylinder (Lowest thru 4) weight (3000 thru Highest) . EXECUTE . 再次运行该语句,可以看到各个记录 G1 分别被取值为 0~3,代表该车满足了 0~ 3 条要求,最终满足全部三条要求的应为 3 条记录。 3.0.5 再罗嗦几句 由于 SPSS 的大多数用户已经习惯了在图形对话框界面下操作,许多人不了解程 序编辑窗口的用途,编写本章的目的主要是提醒大家:适当的时候,程序编辑窗 口可以大大简化我们的工作。实际上,SPSS 针对高级用户(需要编程做模拟抽 样之类的事情)专门开发了 SPSS Production facility 模块,确有编程需要(或 狂热)的朋友可参考有关书籍