SAS 方差分析

/*-----------------单因素方差分析 - PROC ANOVA -------------------*/
data retime;
	input medicine $ hours @@;
	datalines;
A 7 A 5 A 3 A 1
B 6 B 5 B 3 B 3
C 7 C 9 C 9 C 9
D 4 D 3 D 4 D 3
;
ods graphics on;         /*指定分析过程中出现的图形全部输出*/
proc anova data=retime   /*指定方差分析数据集*/
            outstat=reout;    /*分析结果输出数据集,包括自由度、F统计量等值*/
      class medicine;
	  model hours=medicine;
run;
ods graphics off;

/*-----------------单因素方差分析 - PROC GLM -------------------*/
data retime;
	input medicine $ hours @@;
	datalines;
A 7 A 5 A 3 A 1
B 6 B 5 B 3 B 3
C 7 C 9 C 9 C 9
D 4 D 3 D 4 D 3
;
ods graphics on;
proc glm data=retime 
          plots(only)=diagnostics;   /*在ods开启的时候,指定输出的图形类型为“拟合诊断图”*/
		  class medicine;            /*指定分类变量*/
		  model hours=medicine;      /*方差分析模型*/
		  means medicine / hovtest;  /*hovtest选项默认检验方式为levene检验,用此来判断各组方差是否相等*/
run;
quit;
ods graphics off;

/*-----------------显著因素下的水平间差异检验 - lsmeans语句和means语句-------------------*/
data retime;
	input medicine $ hours @@;
	datalines;
A 7 A 5 A 3 A 1
B 6 B 5 B 3 B 3
C 7 C 9 C 9 C 9
D 4 D 3 D 4 D 3
;
ods graphics on;
proc glm data=retime;
	class medicine;
	model hours=medicine;
	lsmeans medicine/     /*使用lsmeans过程来检验某个因素下不均衡水平间的差异*/
                     pdiff=all   /*选定误差控制方法为:CER(控制两两比较的误差)*/
                     adjust=T;    
run;

/*-----------------双因素方差分析 - PROC GLM -------------------*/
proc print data=sashelp.class;    /*查看SAS自带数据集class*/
run;
proc means data=sashelp.class    /*通过简单统计量描述该数据集*/
            N                /*样本量大小*/
			mean;            /*均值*/
	class age sex;   /*分类变量的选择,这里为先按年龄分类,再按性别分类*/
	var height;      /*means过程研究的变量*/
run;
proc glm data=sashelp.class;        /*对不均衡数据class适用glm方差分析*/
	class age sex;
	model weight=age sex age*sex; /*方差分析的模式*/
	lsmeans age/pdiff=all         
	            adjust=tukey;  /*选择控制整个试验的误差*/
run;

/*-----------------双因素方差分析(有交互作用因素) - PROC GLM -------------------*/
data fruit;
	input humidity $ temperature $ output_lbs @@;
	cards;
A1 B1 58.2  A1 B1 52.6
A1 B2 56.2  A1 B2 41.2  
A1 B3 65.3  A1 B3 60  
A2 B1 49.1  A2 B1 42.8  
A2 B2 54.1  A2 B2 50.5  
A2 B3 51.6  A2 B3 48.4  
A3 B1 60.1  A3 B1 58.3  
A3 B2 70.9  A3 B2 73.2  
A3 B3 39.2  A3 B3 40.7 
;
run; 
/*对变量进行交互性分析*/
proc glm data=fruit;
	class humidity temperature;
	model output_lbs=humidity temperature humidity*temperature; /*对湿度和温度进行交互性分析,看两个变量是否存在交互性*/
	lsmeans humidity*temperature/         /*求交互作用下的最小二乘均值间的差异*/
                                slice=humidity;  /*固定湿度的水平*/
run;

猜你喜欢

转载自blog.csdn.net/Tiaaaaa/article/details/58613946
SAS