• Wilcoxon signed rank(符号秩)检验与我之前介绍的单样本t检验很相似,也是用于对总体均数或中位数进行统计推断的一种方法。但与t检验不同的是,Wilcoxon符号秩检验是一种基于数据的“”的非参数检验方法,不需要对总体的分布特征加以限定,就是说,如果我们得到的计量资料,数据分布不呈正态,无法应用单样本t检验方法时,我们可以采用Wilcoxon符号秩检验方法。

    符号秩检验在临床试验中最常见的应用,是比较相关的数据或不呈正态分布的配对数据。下面我们就通过一个例子,看一下Wilcoxon符号秩检验的具体应用与SAS实现

  • 单样本计量资料的统计分析,这里主要介绍两种常用的统计方法:一是单样本t检验,另外是Wilcoxon符号秩检验。

    单样本t检验,主要用于推断一个未知总体的均数与一假设值之间有无差异。配对设计(配对t检验)是经常会用到的设计方法,比如两个时间点上相同个体的某个指标变化情况,或者作用于相同个体的两种干预措施所产生的不同效应值之间的差异,都可应用这种检验方法,事实上单样本t检验与配对t检验本质上是一样的。

  • 从今天开始,陆续向大家介绍一些临床试验中常用的统计方法,以及如何用SAS来实现,希望能起到抛砖引玉的作用。如果能对大家有些许帮助,我的时间就没有 白费。另外,本人水平有限,若文中有任何错误,还请大家热情的指正。

  • 在编写宏程序的时候遇到一个问题,即一个宏变量与其它字母、数字按一定的规则组合成为另一个宏变量,比如
    %let mvar = group;
    %let &mvar.1 = A;

    即上面这条语句定义了一个新的宏变量:group1,值是A,那么这个宏变量如何在程序中调用呢?

    在SAS的网站上检索到一篇文献(地址:http://www2.sas.com/proceedings/sugi22/CODERS/PAPER77.PDF),其中有一段:“The macro variable &DSN&N resolves to CLINICS5, &DSN5 resolves to FRED.  The &&DSN&N combination first resolves to a macro variable (&DSN5) which then resolves to a value (FRED) in a second pass. ” 按照这篇文献,上面的问题很简单:引用宏变量group1写成&&mvar.1即可,但在SAS9中,实践证明这样的写法无法解析成为&group1。

    后来在人大经济论坛里找到了这个问题的答案:&&&mvar.1。

  • 用GOOGLE检索医用SAS统计分析的时候,偶然发现的一堆SAS方面的资料,可能有需要的朋友吧,下面是这些资料的链接。

    SAS.Publishing.SAS.Certification.Prep.Guide.Advanced.Progr..07.zip
    http://www.megaupload.com/?d=64KZWD25
    SAS online tutorial for base exam.zip
    http://www.megaupload.com/?d=QW5SMMWO
    little sas book.pdf
    http://www.megaupload.com/?d=3J7S54XD
    SAS online tutorial for Advanced Exam.zip
    http://www.megaupload.com/?d=XT2F5JIU
    SAS.for.Mixed.Models.Second.Edition.zip
    http://www.megaupload.com/?d=BVLSWBF0
    SAS.Programming.The.One.Day.Course.zip
    http://www.megaupload.com/?d=EABM27IB
    A.Handbook.Of.Statistical.Analyses.Using.SAS.zip
    http://www.megaupload.com/?d=639LH7LK
    Marketing Research Methods in SAS.zip
    http://www.megaupload.com/?d=E4J5JP3Q
    医用SAS统计分析.金丕焕.zip
    http://www.megaupload.com/?d=JXI4PD44
    SAS认证真题集.zip
    http://www.megaupload.com/?d=F088RFXG
    Introduction to Data Management and Programming in SAS.zip
    http://www.megaupload.com/?d=R6SPYQCI
    A First Course on Time Series, Examples with SAS.zip
    http://www.megaupload.com/?d=QKPI3ZEX
    Base.SAS.Enhancements.in.SAS.9.zip
    http://www.megaupload.com/?d=3DQ6SD4V
    SAS官方课程及样题.zip
    http://www.megaupload.com/?d=F69HL15A
    Building.Credit.Scoring.Models.With.Enterprise.Miner.5.zip
    http://www.megaupload.com/?d=WS5U4LK2
    用SAS处理Panel Data学习材料.zip
    http://www.megaupload.com/?d=QOF7GTM8
    SAS金融应用程序举例.rar
    http://www.megaupload.com/?d=L1O5KD6I
    SAS。base123.pdf
    http://www.megaupload.com/?d=5J4686ZD
    SAS.Certification.Base.Programming.Practice.Exam.zip
    http://www.megaupload.com/?d=YYBOLQIH
    SAS base50.pdf
    http://www.megaupload.com/?d=LI1DZXD1
    常用生物统计方法的SAS程序.pdf
    http://www.megaupload.com/?d=RZXVXKJA

    SAS.Publishing.SAS.Macro.Programming.Made.Easy.2nd.Edi..07.pdf
    http://www.megaupload.com/?d=YGFAUG1R
    SAS for Forecasting Time Series.rar
    http://www.megaupload.com/?d=HK9670G6
    Analysis of Clinical Trials Using SAS A Practical Guide.pdf
    http://www.megaupload.com/?d=UHLAE1X2
    SAS Guide to Report Writing Examples, Second Edition.pdf
    http://www.megaupload.com/?d=DDCUROP9
    An Introduction to Time Series Analysis and Forecasting with Applications of
    SAS and SPSS
    http://www.megaupload.com/?d=NJ6RWLTN

  • /*
    SAS宏程序名称:helloWord
    主要功能:用SAS启动windows系统中的winword程序,打开一个已经存在的word文件或创建新文件
    主要参数:dir:给定的目录;docName:word文件名
    使用方法:%helloWord(d:\test\a,hello);   **目录可任意给定,不用加引号;文件名可以不加.doc的后缀,当然加了也no problem;
    说明:这个宏在XP/SAS9.13/Office2007下运行正常,在类似的环境下估计也无问题(比如XP/SAS8/Office2003),热心的朋友请帮忙测试,有问题的话希望能反馈给我;
              另外还有一点,这个宏中引用了另一宏(mkdir,功能是建立文件夹),在helloWord运行过程中,如果给出的目录不存在就用mkdir创建这个目录。
    联系我:medleaf@gmail.com
    我的主页:http://www.eyaoo.net/weblog/
    *********************************************************/

    %macro helloWord(dir,docName);
    options noxwait noxsync xmin;
    %let rc=%sysfunc(system(start winword));
    filename cmds DDE 'Winword|System';
    data _null_;
      x=sleep(1);
    data _null_;
      file cmds;
      %mkdir(&dir);
      put '[FileClose 2]';
      if fileexist("&dir\&docName") then
        do;
          put '[FileOpen.Name = "'"&dir\&docName" '"]';
        end;
      else
        do;
          put '[FileNew]';
          put '[FileSaveAs.Name="'"&dir\&docName"'",.Format=0]';
        end;
      put '[AppMinimize]';
      %global currentDoc;
      %let currentDoc = "&dir\&docName";
    run;
    %mend helloWord;


    /*
    记:
    在sas2word中,这个是比较基础的宏程序,原来在我的文章里也介绍过,这次改写了很多,精简了代码,增加了容错(自动建立目录等)功能。

    注意:   x=sleep(1);这一句中,建议在使用时将sleep的时间调的长些,如6或8秒,即x=sleep(8);否则,如果系统启动word的速度比较慢的话,可能会出现找不到文件的错误。

  • 前几年利用SAS的DDE技术编写了几个用于统计报告报表的宏程序,将统计表直接写到WORD中,对于工作效率而言,确实提高了不少,不过这些宏程序编写的很乱,也不够完善,写统计报告的时候,还需要做些Ctrl+C后Ctrl+V的工作,所以决定重新编写这些宏程序,主要是精炼程序代码,增加功能,目标只有一个,即一键生成 Report(理想化,别当真,laugh face)。

    目前编写工作正在进行中,对于其中一些基础的宏,我将陆续放在这里,希望能和大家一起探讨,以便使这些SAS宏程序更加高效和通用。

  • 使用sas的dde将文本写入Word文档,最常用的就两个WordBasic命令:Insert和InsertPara
    看下面的这个例子:

    %helloword(c:\,example); /*注:1*/
    data _null_;
    file cmds;
    put '[Insert "我的第一个例子"]‘; /*注:2*/
    put ‘[InsertPara]‘; /*注:3*/
    run;

    1:调用宏程序helloword,在C盘上建立一个名为example的Word文档
    2:将“我的第一个例子”这几个字插入到上述文档当前光标的位置,也就是文档的第一行
    3:插入一个段落标记,此时Word中的光标已经下移到第2行

  • 将sas的统计分析结果输出到Word文档中,实现起来并不复杂,利用SAS提供的ods(Output Delivery System,输出传递系统),可以很方便的将结果输出到.rtf(也就是Word格式文档)、.html(网页)以及PDF文档中。
    最简单的实现:
    ods rtf file="filepath:docname.rtf";
    proc step
    ...
    ods rtf close;
    然后非常不幸的是,上述输出结果是系统默认的,是SAS系统已经预定义好的格式(几乎所有的情况下都不符合我们的要求),如果想用ODS系统实现统计报表的定制输出,实现过程就要复杂的多。

    事实上,运行在OS/2及Windows操作系统下的SAS系统,还有另外一种与其它应用程序交互的技术,那就是Dynamic Data Exchange,动态数据交换技术,简称DDE。

  • 在临床试验中,使用sas计算受试者的年龄,大体上有三种思路:

    一种是计算当前日期(应该是受试者签署知情同意书的那一天)与受试者生日相差有多少天,然后除以365.25即为年龄值(我把它叫做计算法),另一 种思路是,根据当前的月、日进行判断,当前月份比出生月份大的,或月份相同但当前日等于或大于出生日的情况,年龄即为当前年份与出生年份之差,否则,年龄 是上述差-1,这种方法计算的是整数周岁(我称之为判断法,呵呵),而第一种方法如果不对结果取整的话,年龄是带有小数位的。

    第三种方法也是计算周岁,实现方法更为简单,结果与第二种方法是一致的。具体的代码见文后的补充。