/*
区间估计可以通过
ttest
检验实现,同样单样本、配对样本和独立双样本的均值
t
检验也能通过
ttest
实现,对于两组变量方差不等且样本数小于
30
时,宜采用非参检验
npar1way
。至于分布的检验,可以采用
univariate
实现
*/
data sasuser.ttest1;/*建立数据来进行ttest*/
input x @@;
cards;
6 11.2819.98 17.6 10.6 14.8 6.88 11.78 20.9824.4 12.3 14.8 6.88 17.68 17.6 30.3 14.6 14.8 8.28 14.98 14.7 9.6 14.6 17.4 9.6 15.68
15.8
;
run;
data sasuser.ttest2;/*建立数据来进行ttest*/
input type$ x @@;
cards;
a 69 a 97 a106 a 51 a 97 a 65 a 73 a 83 a 79 a 41 a 92 b 32 b 61 b 50 b 46 b 73 b 43 b 80b 61 b 46 b 56 b 60 b 29 b 38 b 48 b 26 b 23
;
run;
data sasuser.ttest3;/*建立数据集用来做配对数据的ttest*/
input x y;
cards;
50 53
50 53
56 59
51 53
49 55
53 52
47 50
52 55
;
run;
proc ttest data=sasuser.ttest1;/*变量的区间估计和非零的t检验*/
var x;
run;
proc ttest data=sasuser.ttest2;
/*独立双样本的均值检验
结果要先看 Equality of Variances,其中Pr > F是0.4522说明来自同一方差总体,
接着看t-test的equal中的Pr > |t| 小于0.05,说明存在显著差异
最后看 Statistics 中的mean,比较下两个类型哪个比较大,可以看出b显著大于a类 */
class type;/*分组变量只允许有两个值*/
var x;
run;
proc ttest data=sasuser.ttest3 alpha=0.1 h0=-0.5;/*配对样本的均值检验,alpha表示显著水平,h0表示原假设水平*/
paired x*y;
run;
data aa; /*建立数据*/
set sasuser.ttest3;
diff=x-y;
run;
proc univariate data=aa; /*配对样本也可以通过取x、y的差值后,进行univariate或是means检验进行分析*/
var diff;
run;
proc npar1way data=sasuser.ttest2 wilcoxon;/*非参检验,wilcoxon相当于kruskal-wallis检验*/
class type;
var x;
run;
proc univariate data=sasuser.normal normal; /*检验数据集normal的变量normal1是否服从正态分布*/
var normal1;
run;