sas系统方差分析程序

sas系统方差分析程序,第1张

在阅读以下内容之前,请先阅读第一章"SAS软件基本 *** 作"。

单因素实验设计又称为完全随机化实验设计。该实验设计要求实验条件或实验环境的同质性很高。例如,比较a个作物品种的产量,每一品种设置n个重复,全部实验共有an次。根据完全随机化实验设计的要求,试验田中的an个试验小区的土质、肥力、含水量、小气候、田间管理等条件必须完全一致。至于哪一个品种的哪一次重复安排在哪一个小区,完全是随机的,因此得到了“完全随机化实验设计”这一名称。

例2.9 下面以课本中例8.1的数据为例,给出单因素方差分析的SAS程序。

解:先按以下输入方式建立一个称为a:\2-5data.dat的外部数据文件。

1

64.6

1

65.3

1

64.8

1

66.0

1

65.8

2

64.5

2

65.3

2

64.6

2

63.7

2

63.9

3

67.8

3

66.3

3

67.1

3

66.8

3

68.5

4

71.8

4

72.1

4

70.0

4

69.1

4

71.0

5

69.2

5

68.2

5

69.8

5

68.3

5

67.5

SAS程序如下:

options linesize=76

data wheat

infile ‘a:\2-5data.dat’

input strain hight @@

run

proc anova

class strain

model hight=strain

means strain / duncan

means strain / lsd cldiff

run

在PROC ANOVA过程中的CLASS语句(分类语句)是必须的,而且一定要放在MODEL语句之前。在方差分析中要使用的分类变量(因素),首先要在CLASS语句中说明。分类变量可以是数值型的,也可以是字符型的。MODEL语句用来规定因素对实验结果的效应,一般形式为,因变量=因素效应。本例即为株高=品系效应。

MEANS语句应放在MODEL语句之后,MEANS语句后列出希望得到均值的那些变量。MEANS语句有很多选项,下面列出几个与本教材有关的选项,将选项写在MEANS语句的“/”之后。

DUNCAN: 对MEANS语句列出的所有主效应均值进行DUNCAN检验。

SNK: 对MEANS语句列出的所有主效应均值进行Student-Newman-Keuls检验。

T | LSD: 对MEANS语句列出的所有主效应均值进行两两t检验,它相当于在样本含 量相同时的LSD检验。

ALPHA= 均值间对比检验的显著水平,缺省值是0.05。当用DUNCAN选项时只能取0.01、0.05和0.10,对于其它选项,α可取0.0001到0.9999之间的任何值。

CLDIFF: 在选项T和LSD时,过程将两个均值之差以置信区间的形式输出。

CLM: 在选项T和LSD时,过程把变量的每一水平均值以置信区间的形式输出。

方差分析应具备三个条件,有时这三个条件并不能够得到满足,这时对原始数据就要进行变换,见课本§ 9.7。对原始数据进行变换,只需加上一个赋值语句即可,可参考配对数据t检验的SAS程序。

以下是一个SAS程序的例子:

data arr

array a{5}(1,2,3,4,5)

sum=0

do i=1 to 5

sum=a(i)+sum/*求总和*/

end

pjun=sum/5/*求平均值*/

run

DATA CHENGJI1

INPUT NAME $ SEX $ MATH CHN GROUP

CARDS

李明 男 92 98 1

张红艺 女 89 1061

王思明 男 86 90 1

RUN

DATA CHENGJI2

INPUT NAME $ SEX $ MATH CHN GROUP

CARDS

张聪 男 95 92 2

刘颖 女 98 1012

高红 女 91 922

RUN

DATA CHENGJI3

INPUT NAME $ SEX $ MATH CHN GROUP

CARDS

赵强 男 93 99 3

李云芳女 96 1023

周闪 男 88 98 3

RUN

*第二步

DATA CHENGJI0

SET CHENGJI1 CHENGJI2 CHENGJI3

RUN

*第三步

DATA CHENGJI

SET CHENGJI0

AVG=MEAN(MATH,CHN)

RUN

PROC SORT

BY AVG

RUN

*第四步

DATA MATH90

SET CHENGJI0

WHERE MATH>90

RUN

*第五步

PROC SORT DATA=CHENGJI(KEEP=NAME GROUP AVG) OUT=LAST

BY GROUP AVG

RUN

DATA LAST

SET LAST

BY GROUP AVG

IF FIRST.GROUP

RUN

*第六步

PROC SORT DATA=CHENGJI0 OUT=MATH

BY SEX

RUN

DATA MATH(KEEP=SEX AVG SUM_ALL)

SET MATH END=T

BY SEX

IF FIRST.SEX THEN DO

I=0

M=0

END

M+MATH

I+1

AVG=M/I

J+1

TOT+MATH

IF LAST.SEX

IF T THEN SUM_ALL=TOT

RUN

*第七步

PROC SUMMARY DATA=CHENGJI0 NWAY

VAR MATH

OUTPUT OUT=A(DROP=_TYPE_ RENAME=(_FREQ_=N)) SUM=TOT

RUN

DATA DIF

IF _N_=1 THEN SET A

SET CHENGJI0

AVG=TOT/N

DIFF=AVG-MATH

DROP TOT N

RUN

*第八步

DATA EN

INPUT EN @@

CARDS

80 84 85 86 82 87 96 75 52

RUN

DATA ALL

SET CHENGJI0

SET EN

RUN

楼上这位是大牛,多向他学习学习


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11720627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存