宋 钊, 张白鸽, 曹 健
(广东省农业科学院蔬菜研究所 广东省蔬菜新技术研究重点实验室,广州 510640)
SAS的英文全名是Statistical Analysis System,即统计分析系统,从20世纪60年代末期由美国北卡罗来纳州立大学两位教授开始发展的,是当今国际上最著名的数据分析软件之一,目前已经与SPSS(Statistical product and service solutions)和BMDP(Bio Medical Data Processing)并驾齐驱[1],在国际上被誉为数据处理和统计分析的标准软件系统,在国内广泛用于农业试验统计分析[2]。
对于SAS,SPSS和EXCEL等几个数据统计软件的使用已经有多篇报道从各方面进行了较多研究[3-5],比较各个软件在实际使用过程的优缺点。由于SAS系统为全英文界面,对于英语基础比较薄弱的使用者存在一定困难,并且程序模块化,对于没有计算机程序语言编程基础的人员来说不易掌握[5],所以很长一段时间内国内研究者在进行单因素或者多因素方差分析时大多使用在农业生物统计中得到广泛应用的Excel[6-7]。但是Excel只能给出方差分析表,不能进行平均数的多重比较和字母标记差异显著性结果[5],不能同时对多组观察值一次性全部进行方差分析,如果样本数较多将费时费力并且容易出错。本文介绍利用SAS统计软件同时对20组辣椒品种在3个不同胁迫条件下辣椒叶片叶绿素含量数据进行方差分析,检测同一个品种在不同涝渍胁迫条件叶片叶绿素含量差异显著性,同时对20个品种间的叶绿素含量差异进行比较。
总计20份辣椒材料,为辣椒属一年生种(CapsicumannuumL.),按照果实形状可以分为尖椒、甜椒、美人椒和线椒4个类型,均为在华南地区栽培较广,具有一定代表性的栽培种。
试验在广州市天河区五山路广东省农业科学院蔬菜研究所旁边科研基地大棚中进行,2015年4月15号播种,5月12间苗,5月15号开始胁迫处理。试验设置1个对照和涝渍胁迫3、6和9 d等3个处理,然后恢复3 d,每个处理3个重复,每个重复每个品种10株,穴盘1孔放1株,品种随机排序。对照进行正常田间管理,缺水后即浇水。涝渍胁迫方法参照尹冬梅等[8]的方法加以改进,水层高于辣椒植株根部2~3 cm,用带体积刻度的量杯倒入等体积水量开始胁迫处理。
使用日本柯尼卡美能达(Konica Minolta)SPAD-502 PLUS叶绿素荧光仪对叶片的叶绿素含量进行测定,该仪器通过测量叶子对两个波长段里的吸收率,来评估当前叶子中的叶绿素的相对含量,用SPAD值表示目前叶子中叶绿素含量相对应的参数。
The SAS System for Windows Version 8.01 TS Level 01M0;SAS Institute,Cary,NC,USA(美国北卡罗来纳州SAS研究所出品)。本试验为平衡试验设计,采用过程步PROC的ANOVA进行方差分析,同时进行Duncan′s multiple-range test多重比较。
表1为涝渍胁迫处理后对照和3个处理的植株叶片叶绿素SPAD值,每个品种每个处理测量15个数据,20个品种4组数据总计1200个数据。限于篇幅表1每个品种只列出了5个重复数据,省去了小数点后面数值。
表1 20份辣椒材料涝渍胁迫下叶片叶绿素荧光SPAD值Table 1 Chlorophyll SPAD values of leaves of 20 pepper varieties under waterlogging stress
2.2.1 建立SAS数据集
如表1数据在SAS系统中是不能直接使用的,需要转换成SAS的格式,也就是建立数据集,我们通过SAS语言的数据步DATA中的INPUT函数和CARDS选项建立数据集。
核心代码及说明如下:
DATA Work.yelvsu; /*输入20个辣椒品种叶绿素数据*/
DO trt=1 TO 4; /*4个处理数序号,保留*/
DO t=1 TO 15;
INPUT brd1-brd20@@;
OUTPUT;
END;
END;
DROP t; /*15个重复数序号,丢弃*/
CARDS;
38 32 32 42 37 34 29 32 32 38 37 37 35 44 40 35 28 30 37 30
40 35 33 38 40 36 37 29 39 38 36 36 38 41 42 39 31 33 37 34
40 34 35 39 32 36 27 27 43 34 39 35 37 38 35 39 38 33 33 33
39 39 29 35 37 39 31 29 36 33 42 36 34 36 38 39 39 37 34 31
41 36 38 37 32 33 33 29 31 25 38 37 39 37 37 40 28 28 36 34
……(省略部分类似数据)
;
RUN;
“DATA Work.yelvsu;”语句建立临时库Work的数据集yelvsu;“DO trt=1 TO 4;”语句表示在最外层进行4次循环,因为有4组数据;“DO t=1 TO 15;”语句表示连续写入15个重复值;“DROP t;”语句则表示重复次数1到15不需要写入数据集,只写入相对应的SPAD值;“INPUT brd1-brd20@@;”语句表示一行写入20个品种的SPAD值;“OUTPUT;”语句表示将过程步中的数据输出到数据集中保存起来;“CARDS;”语句则列出INPUT所有变量对应的数据,以“;”表示数据的结束。执行之后自动建立trt和brd1,brd2,brd3…,brd20等21列数据。只有当原始数据排列格式如表1时,使用上述SAS程序语句就可以直接建立适合SAS进行统计分析的数据集。
2.2.2 对20个辣椒品种同时进行方差分析
在Excel中只能对20组辣椒涝渍胁迫实验数据逐个进行方差分析,在SAS中可以一次性对20组数据同时进行分析。使用SAS的过程步PROC对数据进行分析,同时进行DUNCAN多重比较,显著性水平0.05。
核心代码及注释如下:
PROC ANOVA data=WORK.Yelvsu; /*调用上一步建立的数据集Yelvsu*/
class TRT;
model BRD1 BRD2 BRD3 BRD4 BRD5 BRD6 BRD7 BRD8 BRD9 BRD10 BRD11 BRD12 BRD13
BRD14 BRD15 BRD16 BRD17 BRD18 BRD19 BRD20=TRT; /*对20个品种进行方差分析*/
means TRT / HOVTEST=LEVENE; /*进行方差齐性检验*/
means trt / DUNCAN alpha=0.05; /*进行DUNCAN多重比较*/
RUN;
对本试验而言,辣椒叶片叶绿素SPAD值是因变量,进行涝渍胁迫使得辣椒叶片叶绿素含量在处理间出现差异,那么胁迫处理为“因素”,加上对照,此“因素”具有4个“水平”,在单因素方差分析中该“因素”为自变量,自变量是唯一的。在SAS语句中,通过“class TRT;”语句将TRT设置为水平,对4个水平进行方差分析和比较。按照盖钧镒[9]对实验统计方法的描述,本试验中对1个辣椒品种进行4个水平方差分析为“组内观察值数目相等的单向分组资料的方差分析”,那么上述SAS语句“model BRD1 BRD2 BRD3 BRD4 BRD5 BRD6 BRD7 BRD8 BRD9 BRD10 BRD11 BRD12 BRD13 BRD14 BRD15 BRD16 BRD17 BRD18 BRD19 BRD20=TRT; ”可以一次性完成20组单向分组资料的方差分析,这样就一次性对20个品种在涝渍胁迫3、6和9 d后叶片的叶绿素含量差异进行了显著性分析,而不用重复20次相同的工作。“means TRT / HOVTEST=LEVENE;”表示在方差分析之前先进行方差的齐性检验。“means trt / DUNCAN alpha=0.05;”表示执行唐肯氏多范围检定(Duncan’s Multiple-Range Test),当进行显著性水平为0.05的多重比较时,“alpha=0.05”参数可以省略。
2.3.1 建立数据集
比较20个辣椒品种在3个处理与对照之间的叶片叶绿素SPAD含量差异显著性,需要重新建立数据集。
核心语句及注释如下:
DATA Work.yelvsu1; /*输入所有品种叶绿素数据*/
DO trt=1 TO 4; /*4个处理数,保留*/
DO t=1 TO 15; /*15个重复数,不写入数据库*/
DO brd=1 TO 20; /*20个品种数,保留*/
INPUT spad@@;
OUTPUT;
END;
END;
END;
DROP t;
CARDS;
38 32 32 42 37 34 29 32 32 38 37 37 35 44 40 35 28 30 37 30
40 35 33 38 40 36 37 29 39 38 36 36 38 41 42 39 31 33 37 34
40 34 35 39 32 36 27 27 43 34 39 35 37 38 35 39 38 33 33 33
39 39 29 35 37 39 31 29 36 33 42 36 34 36 38 39 39 37 34 31
41 36 38 37 32 33 33 29 31 25 38 37 39 37 37 40 28 28 36 34
……(省略部分类似数据)
;
RUN;
由于是比较品种间在不同涝渍胁迫条件下叶片叶绿素含量的差异,那么这里可以把20个品种看成一个因素的20个水平,所以需要将所有20个品种叶片叶绿素SPAD值放到SAS数据集单独一列中,以便进行处理间的方差比较,在SAS语句中通过添加一个循环来实现,具体语句为“DO brd=1 TO 20;”。执行之后数据集yelvsu1会产生trt,brd和spad共3列数据。
2.3.2进行方差分析
比较涝渍胁迫下辣椒品种间叶片叶绿素含量差异,并进行DUNCAN多重比较。
核心代码和注释如下:
PROC anova data=Work.yelvsu1; /*调用上一步建立的数据集Yelvsu1*/
class BRD;
model spad=BRD;
means BRD / HOVTEST=LEVENE;
means brd / DUNCAN; /*默认显著性水平为0.05*/
RUN;
“class BRD;”语句是把所有20个辣椒品种看作一个因素的20个水平,比较20个辣椒品种间在涝渍胁迫下叶绿素含量是否存在差异显著性。如果把所有的辣椒品种看成一个整体,比较4个处理之间在涝渍胁迫下叶片叶绿素含量是否有差异,在程序中把class的值修改为TRT即可。在进行多重比较时,不写alpha参数值则默认显著性水平为0.05。如果想同时比较不同品种间和不同处理间辣椒叶片SPAD值差异,按照盖钧镒[9]对实验统计方法的描述,此类分析属于“组内有重复观察值的两向分组资料的方差分析”[9],即多因素方差分析。与杨孔雀等[10]使用的方法不同,SAS系统PROC步的anova分析主要研究单个因素对因变量的影响[11],多因素方差分析建议使用PROC步的GLM模型进行参数估计。
在SAS数据集的建立方法上,除了本文所述采用DATA步的input函数方法外,还可以使用从外部导入数据文件的方法,但是在导入数据之前需要将数据整理成SAS所需要的格式。在农业生物统计中常常需要对大量的数据进行统计分析,在本篇文章中有1500个叶绿素SPAD值数据,在将该数据在Excel中整理成SAS所需格式时,由于数据超长,1500个数据就需要占用1500行,超过一个屏幕的高度,这样在整理数据容易造成数据的丢失、重叠等问题。当使用SAS分析较大数量的数据时建议使用DATA步来建立数据集,尽量不要采用人工整理数据然后导入SAS的方式,避免人为错误导致分析结果的失真。
使用SAS同时对20个辣椒品种进行差异显著性分析,明显比用Excel逐个进行方差分析更为方便快捷,并且能用字母标注法显示各个品种在各处理间的显著性差异。在SAS系统中Work数据库是一个临时库,当SAS系统关闭时,临时数据库中的内容会被自动清空,所以在实际使用过程中建议单独建立一个永久库,这样避免每次进行数据分析时都要重新建立数据集的麻烦。DATA步INPUT语句中的“@@”符号表示顺序依次连续读入数据,如果没有此符号则按照行读入数据。在实际SAS分析数据时我们往往遇到组内观察值数据不完整的情况,这时我们可以将空格数据用英文状态的“.”来代替,但是过程步PROC这里不能使用ANOVA,ANOVA主要对平衡实验设计的数据执行变异数分析,对于不平衡试验设计数据则建议用一般线性模型GLM进行变异数分析。
[1]彭绍英.世界统计与分析全才 SAS 系统应用指南[M].北京: 希望电子出版社, 2000: 1-868.
[2]颜亭玉, 杜晓林.SAS聚类分析过程在农业试验统计分析中的应用[J].北京农学院学报, 2009,24(1): 73-75.
[3]周 倩, 张晋昕.含缺失值的重复测量资料分析在SPSS和SAS中的实现[J].循证医学, 2013,13(2): 120-123.
[4]林 洁, 孙志明.SAS、PASS、Stata三种常用软件样本量计算方法及结果差异的比较[J].中国医药导报, 2015,12(18): 133-137.
[5]詹秋文.Excel和SAS在生物统计学的应用比较[J].生物学杂志, 2009,26(1): 74-76.
[6]霍志军, 李菊艳, 潘晓琳.Excel在农业生物统计分析中的应用[J].现代化农业, 2003(9): 28-30.
[7]范 平, 崔党群, 詹克慧, 等.Excel软件在生物统计实验教学中的综合开发应用[J].实验技术与管理, 2003,20(2): 65-69.
[8]尹冬梅, 管志勇, 陈素梅, 等.菊花及其近缘种属植物耐涝评价体系建立及耐涝性鉴定[J].植物遗传资源学报, 2009, 10(3): 399-404.
[9]盖钧镒.试验统计方法[M].北京: 中国农业出版社, 2000: 100-127.
[10]杨孔雀, 孙占育, 蒙惠军.用SAS软件进行组内有重复的两向分组资料的方差分析[J].河北农业科学, 2010,14(10): 165-166.
[11]阮 敬.SAS统计分析从入门到精通[M].北京: 人民邮电出版社, 2009: 99-122.