SAS t检验

/*----------------- 一.单样本t检验 -----------------*/
/*有原始数据的t检验*/
DATA TEMP;
	INPUT X@@;
	Y=X-20.7;
	CARDS;
	20.99 20.41 20.10 20.00 20.91 22.60
	20.99 20.42 20.90 22.99 23.12 20.89
	;
TITLE 'T检验 - PROC MEANS过程';
PROC MEANS 
     mean            /*求平均数*/
     stderr          /*求平均数的标准误*/
     t              /*t检验,检验样本的平均数等于0的假设是否成立,H0:均值为0*/
     probt;         /*或prt,t检验的显著性*/
	 var y;        /*参与分析的变量名称*/
RUN;
TITLE 'T检验 - PROC Univariate过程';
PROC UNIVARIATE DATA=TEMP
                 normal;  /*要求univariate程序检定输入资料是否呈现常态分配,并且输出检验结果*/
				 var y;
RUN;



/*无原始数据的t检验*/
DATA TEMP1;
	INPUT u0 u1 s n;        /*依次输入总体均值、样本均值、样本标准差、样本数*/
	t=(u1-u0)/(s/sqrt(n));  /*样本t检验的计算公式*/
	v=n-1;                  
	p=probt(t,v);           /*调用标准正态分布函数查看t值对应的p值*/
	cards; 
72 74.2 6.5 25
;
proc print;   /*输出t检验的结果*/
run;

/*----------------- 二.配对样本t检验 -----------------*/
/*有原始数据的配对t检验*/
/*ttest过程*/
data temp;
     input id a b;
	 cards;
1 2.41 2.80
2 2.90 3.04
3 2.75 1.88
4 2.23 3.43 
5 3.67 3.81
6 4.49 4.00
7 5.16 4.44
8 5.45 5.41
9 2.06 1.24
10 1.64 1.83
11 1.06 1.45
12 0.77 0.92
;
proc ttest;
     paired a*b;
run;

/*means过程*/
data temp;
	set temp;
	y=a-b;
	keep id a b y;
run;
proc means mean stderr t probt;
	var y;
run;

/*univariate过程*/
proc univariate normal;
	var y;
run;

/*无原始数据的配对t检验*/
data temp1;
	input d s n;  /*依次输入配对样本的差值、标准差、配对数*/
	t=d/(s/sqrt(n));
	v=n-1;
	p=probt(t,v);
	cards;
0.625 0.78 8
;
proc print;
run;


/*----------------- 三.独立样本t检验 -----------------*/
/*有原始数据的两独立t检验*/
data temp;
      input group x@@;
	  cards;
1 134 1 146 1 104 1 119 1 124 1 161 1 107 1 83 1 113 1 129 1 97 1 123
2 70 2 118 2 101 2 85 2 107 2 132 2 94

proc ttest;
	class group;
	var x;
run;

/*无原始数据的两独立t检验*/
data temp;
     input x1 x2 n1 n2 s1 s2;
	 sc=sqrt((1/n1+1/n2)*((n1-1)*s1**2+(n2-1)*s2**2)/(n1+n2-2));   /*计算两独立样本共同的标准差*/
	 t=(x2-x1)/sc;
	 v=n1+n2-2;
	 p=probt(t,v);
	 cards;
20.95 21.79 20 20 5.89 3.43
;
proc print;
run;

你可能感兴趣的:(SAS常用数据分析模型)