临床试验的统计报表问题:四格表指标统计分析报表的sas宏程序

转载 2011年03月20日 20:34:00

声明:本文摘自http://www.mysas.net/forum/viewtopic.php?f=4&t=1896

一般而言,SAS的输出结果要经过编辑才能成为符合统计学要求的统计图表,而制作统计报告的工作量极大,编辑过程也很易出错。如何利用SAS直接产生用户要求格式的统计报告,是值得研究的问题。

为规范临床试验数据管理 ,简化程序并减少数据统计分析过程中的错误来源 ,有必要研究 SAS中的宏问题,来很好地解决这个问题。

以下参考文献是统计学家的一些探索:

定性指标的sas统计分析报表―sas软件在新药临床试验统计分析中的应用(一)
童新元 . 张高魁 . 姚晨. 中国卫生统计 2003年01期


正态分布定量指标统计分析报表的sas宏程序
邹建东. 熊宁宁. 卜擎燕. 蒋萌. 刘芳. 中国临床药理学与治疗学 2004年07期


新药临床试验中协方差分析的sas统计报表
童新元. 张高魁. 姚晨. 中国临床药理学与治疗学 2004年08期


新药临床试验中定量指标的sas统计报表
童新元. 张高魁. 姚晨. 军医进修学院学报 2005年01期


应用sas软件的动态数据交换技术自动生成统计报告
田晓燕. 金丕焕. 张文彤. 中华预防医学杂志 2005年01期


四格表指标统计分析报表的sas宏程序
邹建东. 熊宁宁. 卜擎燕. 蒋萌. 刘芳. 中国临床药理学与治疗学 2005年03期


SAS统计报表制作的一般过程

1、先设计好你的报表格式,比如
________________________________________________
指标 试验组 对照组 统计量 P值
________________________________________________
年龄

例数(缺失)
均值(方差)
中位数
最小值~最大值
95%置信限
________________________________________________



当然这些不用你在word中手工绘制好,就是在报表之前应该清楚大致的形式。



2、用SAS过程先初步得到这些结果

比如可以用means过程、univariate过程得到一些描述统计量;


可以用means过程后面加选项t来做t成组检验,可以用ttest过程来做成组或配对t检验。


而t检验的前途条件要求数据服从正态分布,如果不服从正态分布可以用非参数检验。


3、利用SAS的ODS中ods select选择你所需要的结果

可以先用ods trace来看一下输出的结果都有哪些,然后用ods select选择结果到相应的数据集中。


4、为了直接输出得到上面的表格,可以有两种方法来做。

一种是ODS;一种是利用put在结果输出窗口得到它,再粘贴到word中。


举例:四格表指标统计分析报表的sas宏程序

%macro chisq (database= ,var= ,varfmt=,index=) ;

/* 利用freq 程序输出描述性结果到TabFreq 数据集*/
proc freq data = &database. noprint ;
tables &var. * group /out = TabFreq ;
run ;

/* 将两对比组的缺失例数分别输出到独立的数据集ma 和mb 中*/
data ma ( where = (group ="A") ) mb ( where= (group ="B") ) ;
set TabFreq (keep = &var. group COUNT) ;
where &var. = . ;
run ;

/* 利用ODS 输出描述性结果到CrossTabFreqs数据集,
对比统计的结果到数据集chisq,FishersExact */
ods listing close ;
ods output CrossTabFreqs = CrossTabFreqs chisq = chisq FishersExact=FishersExact ;
proc freq data = &database. ;
tables &var. * group /chisq exact expected nopercent norow ;
run ;
ods listing ;

/* 自CrossTabFreqs 数据集中生成理论频数的数据集,并将其排序 */
proc sort out = EXPECTED(keep = EXPECTED)
data = CrossTabFreqs ( where = ( EXPECTED not=. ) ) ;
by Expected ;
run ;

/* 自理论频数数据集中取出最大理论频数值,输出到数据集T中 */
data T(keep = T) ;
set EXPECTED ;
if n = 1 then T = EXPECTED ;
if T = . then delete ;
run ;

/* 自CrossTabFreqs 数据集中生成例数的数据集,并将其排序 */
proc sort out = Frequency ( keep = Frequency)
data = CrossTabFreqs ;
by descending Frequency ;
run ;

/* 自例数数据集中取出例数,输出到数据集n中 */
data n (keep = n) ;
set Frequency ;
if n = 1 then n = Frequency ;
if n = . then delete ;run ;
run ;

/* 自chisq 数据集中生成普通卡方检验的统计量和P值的数据库 */
data chisq1 (keep =value1 Prob1 ) ;
set chisq ( rename = (value = value1 Prob =Prob1) ) ;
where (Statistic = ('Chi-Square') | Statistic = ('卡方') ) ;
run ;

/* 自chisq 数据集中生成连续校正卡方检验的统计量和P值的数据库 */
data chisq2 (keep =value2 Prob2 ) ;
set chisq ( rename = (value = value2 Prob =Prob2) ) ;
where ( Statistic = ( 'Continuity Adj. Chi-Square') | Statistic = ('连续校正卡方') ) ;
run ;

/* 自Fishersexact 数据集中生成精确概率法P值的数据库 */
data Fishersexact (keep = cvalue1) ;
set Fishersexact ;
where (Name1 = ('XP2_FISH') ) ;
run ;

/* 合并结果,并定义统计量格式 */
data st (keep = ma mb n T value1 Prob1 value2 Prob2 cvalue1 &var. c) ;
merge ma ( rename = (COUNT = ma) ) mb ( rename = (COUNT = mb) ) n T chisq1 chisq2 Fishersexact ;
&var. = - 99 ;
if ma = . then ma = 0 ;
if mb = . then mb = 0 ;
format value1 6.2 value2 6.2 ;
run ;

data outa ( where = ( group ="A") ) outb (where = (group ="B") ) ;
set CrossTabFreqs ;
format ColPercent 6.2 ;
run ;

data outt (drop = table group _TYPE_ _TABLE_ Expected Missing) ;
merge outa (rename = ( Frequency = A ColPercent = percentA) )
outb ( rename = ( Frequency = B ColPercent =percentB) ) ;
if &var. = . then &var. = - 99 ;
run ;

proc sort ;by &var. ;run ;

data _null_ ;
file print notitle ;
merge outt st ;
if &var. = - 99 then do ;
if n = 40 and 1 = 40 and T > = 5 then do ;
put @3"&index. " @70 'chisq = 'value1 @83 'P= 'Prob1 ;
end ;
put @5 "例数(缺失) " @22 A '(' MA ') ' @47 B '(' MB ') ';
end ;
else do ;
put @5 &var. '(%) ' @22 A '(' PercentA ') '@47 B '('PercentB ') ';
format &var. &varfmt..;
end ;
run ;

proc datasets;
delete chisq chisq1 chisq2 Crosstabfreqs Expected Fishersexact
Frequency Ma Mb N Outa Outb Outt st stt t Tabfreq ; quit ;

%mend chisq ;

data jixian;
input id group$ SEX;
datalines;
1 A 1
2 A 2
3 A 2
4 A 2
5 B 1
6 B 2
7 B 1
8 B 2
;
run;

proc format;
value sexfmt 1='男性' 2='女性';
run;

%chisq (database=jixian ,var=sex ,varfmt=sexfmt,index=性别)

J2EE vs. NET, Java vs. C#:比较公正的评价

J2EE vs. NET, Java vs. C#:Since theres been plenty of discussion on these topics, I thought Id write...
  • Nightmare
  • Nightmare
  • 2003-06-02 11:42:00
  • 1903

临床试验的统计报表问题:四格表指标统计分析报表的sas宏程序

声明:本文摘自http://www.mysas.net/forum/viewtopic.php?f=4&t=1896一般而言,SAS的输出结果要经过编辑才能成为符合统计学要求的统计图表,而制作统计报告...
  • yugao1986
  • yugao1986
  • 2011-03-20 20:34:00
  • 1525

分类学习统计分析指标

1.引言   分类算法有很多,不同分类算法又用很多不同的变种。不同的分类算法有不同的特定,在不同的数据集上表现的效果也不同,我们需要根据特定的任务进行算法的选择,如何选择分类,如何评价一个分类算法的好...
  • family086
  • family086
  • 2017-02-21 13:58:52
  • 400

Excel在统计分析中的应用—第六章—抽样与抽样分布-Part2(等距抽样)

等距抽样:抽取间隔相同的样本,根据样本的数量n,将编号后的含有N个单位的总体划分为n个包含样本数量相等的区间(每个区间的样本数量Q为N/n),然后通过产生一个1~Q间的随机数,即可确定出对应的每个区间...
  • hpdlzu80100
  • hpdlzu80100
  • 2017-10-16 16:36:09
  • 428

分层抽样

1.sampleByKey import org.apache.spark.{SparkConf, SparkContext} object testVector { def main(ar...
  • ykm18811712927
  • ykm18811712927
  • 2017-04-20 09:54:18
  • 121

excel中的if应用

因为本人从事教学工作,经常要用到Excel对成绩进行计算汇总,其中遇到的一个典型的问题是如何根据分数来给出优、良、中、差的等级。如果只有两个分数段(如及格、不及格两个级别)很好办,假设成绩数据已经输入...
  • gohands
  • gohands
  • 2008-01-23 10:55:00
  • 1191

Excel 应用

"=INDIRECT(ADDRESS(ROW(),COLUMN()))  Tip: Logical AND fails to work with INDIRECT function in Condit...
  • kalimi
  • kalimi
  • 2009-02-25 14:22:00
  • 81

VBA在Excel中的应用(一)

 http://www.cnblogs.com/jaxu/archive/2009/04/04/1407004.html
  • benbenkui
  • benbenkui
  • 2009-04-30 17:32:00
  • 200

利用SAS软件制作报表的常用手法

利用SAS软件制作报表的常用手法 1、先设计好你的报表格式 2、用SAS过程先初步得到这些结果 比如可以用means过程、univariate过程得到一些描述统计量; 可以...
  • xgxyxs
  • xgxyxs
  • 2016-11-27 23:50:59
  • 1344

统计报表分析柱状图

我们介绍使用 JFreeChart 生成柱状图,首先从一个最简单的例子开始。 一 最简单的例子 为了降低门槛,让大家心理有个底,先介绍一个简单的不能再简单的例子,图片中的各类属性都采用默认值。 org...
  • ft0905
  • ft0905
  • 2007-06-11 11:38:00
  • 2263
收藏助手
不良信息举报
您举报文章:临床试验的统计报表问题:四格表指标统计分析报表的sas宏程序
举报原因:
原因补充:

(最多只允许输入30个字)