科学网

 找回密码
  注册
科学网 标签 SAS

tag 标签: SAS

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

纵向数据分析方法在公共卫生研究中应用
jackson19861023 2014-3-24 14:15
纵向数据即我们通常所说的重复测量数据,指观察对象的研究效应不仅包括研究结局,还包括出现结局变量的时间。当研究对象的研究结局在各个测量点之间的研究效应不独立时,协方差结构将会相对复杂,因此需要在统计分析时,考虑复杂协方差结构,由此形成了一系列纵向数据分析的统计分析方法。 根据资料类型的不同,纵向数据分析方法也各不相同。对定量结局变量,纵向数据分析方法主要包括重复测量方差分析,截断回归模型,中断时间序列分析,线性混合模型等。对定性的结局变量,纵向数据分析方法主要包括广义估算方程以及广义线性混合模型等。 重复测量方差分析在纵向数据分析中应用较为广泛。此方法可以处理定量结局变量在多个测量时间点之间可能存在的不独立情况。但对数据各个时间点的协方差结构有要求,即我们通常所说的球型性检验,要求协方差结构满足复对称结构。同时,重复测量方差分析不能纳入协变量,只能分析时间效应和处理因素的效应。因此,重复测量方差分析对混杂因素的处理相对较弱。 截断回归模型,中断时间序列,线性混合模型等处理重复测量数据时,都可以纳入协变量。因此可以很好地测量重复测量数据中的混杂效应。截断回归模型,中断时间序列是同一类模型,多应用于政策干预前后效果的评价,中断时间序列模型考虑了各个时间点之间存在的自回归现象。其基本思想是以干预时间发生前后分为两个不同时间点,分别拟合两条斜率的回归模型,从而通过比较时间点前后斜率的变化来评价政策干预是否达到了预期目的。 线性混合模型在一般线性回归的基础上引入随机效应,并且协方差结构也可以考虑多种情况,从而更好进行参数估计。线性混合模型最常见的就是方差成分模型,即在截距项上引入随机效应,从而在统计分析时,充分考虑到时间变异的影响。如研究一项药物治疗铅中毒的疗效,研究者分别在治疗后 1 周,治疗后 4 周,治疗后 6 周测量试验组和对照组患者的血铅含量水平。此时,可以利用线性混合模型,在截距项上引入测量时间的随机效应,从而在考虑时间变异的情况下,更好地分析试验效应。 结局变量为定性数据时,可以考虑使用广义线性混合模型和广义估算方程。根据结局变量的不同,广义线性混合模型主要包括广义 logistics 模型,广义 Poisson 模型,广义负二项回归模型。广义估算方程也是处理分类变量结局的数据,但其出发点与广义线性混合模型有所差别。广义线性混合模型即在广义线性模型的基础之上引入随机效应,其出发点仍然在控制时间差异的基础上,分析个体效应的差别。而广义估算方程则更关注群体效应,在允许自由估计观察对象的协方差结构的前提下,通过一定的统计变换和标准误较正方法,即使协方差结构无法准确定义,广义估算方程也可以对群体效应进行较为准确的估算。 SAS 软件对纵向数据分析有完备的支持。中断时间序列可以在 proc autreg 过程中拟合,广义线性模型可以在 proc mixed 过程中拟合。广义线性混合模型可以在 proc glimmix 过程中拟合,广义估算方程可以在 proc genmod 过程中拟合。
个人分类: 统计分析方法|8097 次阅读|0 个评论
[转载]sas 视频教程
gzhang23 2013-8-14 12:14
SAS是用于决策支持的大型集成信息系统,但该软件系统最早的功能限于统计分析,至今,统计分析功能也仍是它的重要组成部分和核心功能。经过多年的发展,SAS已被全世界120多个国家和地区的近三万家机构所采用,直接用户则超过三百万人,遍及金融、医药卫生、生产、运输、通讯、政府和教育科研等领域。在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统,并在96~97年度被评选为建立数据库的首选产品。堪称统计软件界的巨无霸。 SAS系统具有灵活的功能扩展接口和强大的功能模块,在BASE SAS的基础上,还可以增加如下不同的模块而增加不同的功能:SAS/STAT(统计分析模块)、SAS/GRAPH(绘图模块)、SAS/QC(质量控制模块)、SAS/ETS(经济计量学和时间序列分析模块)、SAS/OR(运筹学模块)、SAS/IML(交互式矩阵程序设计语言模块)、 SAS/FSP(快速数据处理的交互式菜单系统模块)、SAS/AF(交互式全屏幕软件应用系统模块)等等。SAS有一个智能型绘图系统,不仅能绘各种统计图,还能绘出地图。SAS提供多个统计过程,每个过程均含有极丰富的任选项。用户还可以通过对数据集的一连串加工,实现更为复杂的统计分析。此外, SAS还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,使用户能方便地实现特殊统计要求。 SAS9.2标准教程01新建逻辑库和数据集 SAS9.2标准教程02使用向导导入外部数据 SAS9.2标准教程03如何对数据集进行排序 SAS9.2标准教程04筛选数据集 SAS9.2标准教程05 行列转制
2758 次阅读|0 个评论
研究室的笨鸟(2)附:统计软件的安装概要
fs007 2012-5-5 23:17
寻正 安装统计软件概要 : Windows 7系统 :SAS, Stata, SPSS, SOFA, R, WinIDAMS SAS、Stata、SPSS是比较流行的统计软件,但都是付费软件,其安装过程都比较简单,无非是运行安装程序后选择安装目录,让安装程序自动完成安装。 使用R者,请至R-项目网站下载安装程序( http://www.r-project.org/ )。中国读者可至中国科技大学或者其它单位提供的镜相网站上下载: http://ftp.ctex.org/mirrors/CRAN/ CTEX.ORG http://cran.csdb.cn/ Computer Network Information Center, CAS, Beijing http://mirror.bjtu.edu.cn/cran Beijing Jiaotong University, Beijing http://cran.dataguru.cn Dataguru, Guangzhou http://mirrors.ustc.edu.cn/CRAN/ University of Science and Technology of China http://mirrors.xmu.edu.cn/CRAN/ Xiamen University 在中科大镜相获取安装文件也可使用这个链结:http://mirrors.ustc.edu.cn/CRAN/bin/windows/base/R-2.15.0-win.exe R 不是SAS这类的软件,对用户相对比较友善,有一个图形界面,可以完成大多数的数据管理与分析工作。R提供的是较低层次的操作,也就是比较原始的命令行操 作模式,相当于SAS去掉图形界面,只给你命令与结果窗口。那么,对于大多数的笨鸟级用户来说,就需要一个图形界面。我推荐Rkward,当然,Rcmdr也值得一试。 安装Rkward请至http://rkward.sourceforge.net/。其网站速度不是太快,要有耐心。 安 装Rcmdr请至http://cran.r-project.org/web/packages/Rcmdr/index.html。如果你对直接下载 链结感兴趣:http://cran.r-project.org/bin/windows/contrib/r-release /Rcmdr_1.8-4.zip。由于Rcmdr是一个R的相关模块组件,你也可以用模块组件的方式安装:在R命令窗键 入:install.packages(“Rcmdr”)。或者通过R本身提供的图形界面:Packages = Install package = 选择中国的一个镜相,然后选择Rcmdr。在第一次使用时,还会要求安装相关组件,点击安装即可。如果要每次启动R时都自动启动Rcmdr界面,则修改 R\R-2.15.0\etc\目录下的Rprofile.site文件(用记事本打开),在其中加入下面的命令即可: local({ old - getOption("defaultPackages") options(defaultPackages = c(old, "Rcmdr")) }) SOFA(即沙发)的安装跟SAS等类似,到沙发网站下载安装文件即可: http://www.sofastatistics.com/downloads.php WinIDAMS的安装很简单,跟沙发类似,到其网站下载即可: http://portal.unesco.org/ci/en/ev.php-URL_ID=2070URL_DO=DO_TOPICURL_SECTION=201.html Ubuntu 12.4 : R, PSPP, SOFA 在Ubuntu(音吾帮图)下安装也很容易。点开软件中心(Software Center),在右上的搜索栏键入PSPP可以直接安装这一软件。 沙发软件则参考上文下载地址,选择Linux版即可,下载后点击即可安装。 安 装R有多种方式。我采用的是比较简单的一种:先进入软件中心定义软件库,然后在系统命令窗口下键入一个简单的命令即可。Ubuntu Software Center = Edit(编辑) = Software Sources (软件库)= Other Software ( 其它软件) = Add...(添加) 然 后根据你喜欢哪一个R的软件库(CRAN),填入库链结,以中科大为例:URL为http://mirrors.ustc.edu.cn/CRAN /bin/linux/ubuntu 版本(distribution)为precise/(即12.04),如果使用以前版本,则有Oneiric(11.10)Natty(11.04)等 等。 在设置好软件库之后,在系统命令窗键入以下命令即可: sudo apt-get install r-base 在R基本部件装好后,到软件中心搜索Rcmdr或者RKWard即可,搜索到相应软件点安装。 如果在安装过程中有什么疑问,可以上网搜索,或者来此寻求解答(假如你的问题不太复杂的话)。
个人分类: 笨鸟先飞|5689 次阅读|0 个评论
研究室的笨鸟(2) 统计分析的木牛流马
热度 1 fs007 2012-5-4 09:02
寻正 【寻正按:本文保留版权,任何媒体,包括常规出版业、网络媒体、博客等,没有获得授权,不得转载它处。在本书未完成之前,中国科学网博客是我唯一登载此系列内容的媒体。】 当我在格物致知一节中介绍我因为前辈努力而拥有了摇统计分析的木牛流马,就是指计算机时代的统计分析程序。这样的程序太多了,我不可能一一涉及,也没有必要一一涉及。对于做研究的笨鸟们来说,他们有了问题,需要一个解决方案,并不需要对比各个统计软件的优劣,事实上,对于同样的数据,采用同样的分析模型,也不允许不同的统计软件得到不同的结论。 由于本书的目的是为研究者提供简单易行的操作指南,我有意识地选择了如下统计分析模块作为笨鸟们按图索骥的基础。SAS、SPSS、与Stata入选是因为它们流行,而WinIDAMS、PSPP、SOFA与R入选则是因为它们属于免费软件。在选择免费软件时,我尽量选择拥有全面功能的统计分析软件,读者需要理解,在此之外,尚未有一些特别模块,比如计算样本量的PS软件,值得读者尝试。【对于感兴趣的读者,推荐观阅 StatPages.org针对免费统计软件的列表 。】 在我开始写本书时,我尚不熟悉所列举的免费软件,但我愿意用实际例证,向读者表明,如果你掌握了本书的基本概念,注重应用,而不是那复杂的统计学的机械计算程序,你也会象我一样,玩转统计分析的木牛流马。当然,我们这样玩的基础是对开发这些软件的专业人员的充分信任:如果我们提供了适当的数据输入,选择了适当的统计模块,他们的软件就会产生一致的分析结果——这一点,大家在细读本书的例证操作时就可以一次又一次地验证。 不同的统计程序有不同的特色,比如使用SAS软件,我就不喜欢亚分(Subset)现有数据库,觉得麻烦,而采用Stata时,就没有亚分的概念,而是可以针对同一数据库采用if限制选择亚样本。之所以不把这种区别称为优缺点,而只是特色,是因为对于熟练的用户来说,这两种方式几乎没有区别,亚分在工作目录里的数据文件只是临时性的,并不占据空间,跟Stata临时选择样本是异曲同工。 或许对一个能熟练使用各种统计软件的人来说,这些软件都有优劣,但对于实验室的笨鸟来说,那是镜花水月,优点未必让你受益,缺点也似乎无伤大雅,我们还是回到写作与阅读本书的底线上来:如果一项统计分析太复杂,你需要咨询统计专家,让专家做适当的统计分析,你的目标是采用统计程序,做一些力所能及的简单统计分析——许多人最终会惊奇原来许多统计计算自己也能胜任。 我在1990年代专门修过一门课程,是SAS的应用。在那一门课中,我几乎没有机会真正地应用SAS来做统计分析,绝大部分时间,都花在学习SAS的数据管理。许许多多的人,都恐怕难以理解为什么枯燥的数据管理是如此重要,事实上,在我没有向人提供统计分析服务前,也或多或少心存疑虑。一旦我开始向研究者提供如此服务,我就意识到了数据收集管理的重要性,在我提供的统计分析服务中,超过半数的时间在指导顾客如何收集数据或者浪费在有缺陷的数据中。不久前,我就为一位顽固的拒不理解分析单元这一基本概念的顾客而灰心丧气,为他提供统计分析的时间,不到向他解释示范数据收集的1/5。 如果是一位统计专家撰写本节内容,接下来的任务就是针对各个软件的安装与设置详细地一一介绍。我决定不那么做,因为那样存在着两个风险,一是信息过量(Information Overload),我撰写本书的宗旨就是回避统计分析无所不在的复杂,需要证明的是不知其所以然也能做出适当的统计分析来,我需要读者始终保持阅读本书的轻松状态,你会骑自行车吗?统计分析的木牛流马的操作远比骑自行车简单多了,前提是要象你骑自行车一样,谁在乎自行车的所有机械原理?如果某个国家立法不懂自行车原理就不准骑,你一定认为该国立法人员有病。如何安装软件与设置,对于那些真正想应用本书内容的人来说,应当已经不成为问题,如果是问题,则可以在网络上搜索,这样的指南应当随手可得。 其次是我不希望本书枯燥无味,让读者在兴致既起之际,忽然被一堆技术细节浇上一盆冷水。我们会征服这些技术细节,但不是简单地堆砌,让读者迷失在术语与机制的迷宫中。在本节的附录中,我简单介绍各个统计软件的获取与安装,挂一漏万,如果有问题在交流中解决。 现在我们的注意力转到一个具体的问题上来,那就是,“我需要安装什么系统?”我为你提供了六个备选项,你究竟需要选哪一个,还是六个都选? 如果你经费允许,可以选择付费程序,否则免费程序可以达到同样的目的,学习成本不会相差太大。SAS的收费策略是细水长流,每年都要更新执照,而Stata是一杆子买卖,一次收费很多,但终生使用,不过,隔几年又出新版本,让你陷入To upgrade or not to upgrade(更新或不更新)的超级困惑中。那么SPSS呢,好象两种策略都在使用,价格跟SAS与Stata不相上下。不过,好消息是,有人不满SPSS的价格,开发了一个替代产品,称为PSPP,PSPP与SPSS肯定有些差距,但对于我的读者来说,有跟没有一样。不过,PSPP是GNU软件,需要在GNU/Linux系统中运行。 在我所提供的四项分析软件中,SOFA与R同时有Linux版本与Windows版本。我欣赏开源软件的理念,因此,相关例证全经Linux系统产生,以平衡付费软件都是基于Windows的这一倾向。开源系统比如Ubuntu的图形界面已经做得很不错了,Windows下对应的绝大多数程序都有了对应,强烈推荐读者在新配置的机器上使用开源系统。 在免费软件中,R可能要艰深一些,是属于专业级的软件,很多统计专业人员都用它,R现在已经有了图形界面,但可能更方便写程序。联合国教科文组织的WinIDAMS相当于SAS没有图形界面。PSPP与SOFA则有图形界面,相对而言,可能更易操作。如果你真心要使用这些软件,其实有没有图形界面关系不是很大,并不增加多少学习成本。 每一种软件都有自己的操作习惯与基本概念,虽然从一种软件跳到另一种软件并不困难,但读者基于实用目的,只需要掌握一种软件即可。如果强行要我对于从未接触过统计软件的人进行推荐,我推荐R,因为掌握这门技能具有更大的扩充性,放在简历上比较体面。 统计学是纯西方发展起来的学科,读者不可避免地要掌握英文词汇,对此我只能建议读者咬牙忍受,习惯了就不觉只有方块字才美。为了增长读者英文知识,我也尽量详注相关英文词汇,增加读者理解专业文献的能力。 【寻正按:本文保留版权,任何媒体,包括常规出版业、网络媒体、博客等,没有获得授权,不得转载它处。在本书未完成之前,中国科学网博客是我唯一登载此系列内容的媒体。】 2012.05.03
个人分类: 笨鸟先飞|4740 次阅读|1 个评论
存活分析(Survival analysis)的SAS源码
热度 2 beepro 2012-1-8 08:42
最近要用到存活分析(Survival analysis), 但是很头疼, 因为假如第5天有10个蜜蜂死了, 原来的SAS要把数据打10次! (change all , to ; in SAS. input treatment$ day censor bee#, control 1 1 1 control 1 1 2 control 5 1 3 control 5 1 4 control 5 1 5 control 5 1 6 control 5 1 7 control 5 1 8 control 5 1 9 control 5 1 10 control 5 1 11 control 5 1 12 control 5 1 13 想用一个Loop input treatment$ day dead censor; control 5 10 1 这一句就可以顶10句,那样我的Excel数据可以很快变成SAS的数据了。 但是SAS好久没有用LOOP了, 只好在网上讨论。 今天终于可以工作了! ××××SAS Code××××××××××××××××× DATA survival; input treatment $ day dead censor; Do bee=1 to dead; output; end; DATALINES; gfp 24 1 1 gfp 48 2 1 gfp 96 3 1 gfp 96 20 0 rpl8 24 5 1 rpl8 48 12 1 rpl8 96 25 1 rpl8 96 3 0 ; RUN; proc print; run; proc lifetest plot=(s) graphics; time day*censor(0); strata treatment; run; Proc print打印出来的结果是我所要的:   Obs treatment day dead censor bee 1 gfp 24 1 1 1 2 gfp 48 2 1 1 3 gfp 48 2 1 2 4 gfp 96 3 1 1 5 gfp 96 3 1 2 6 gfp 96 3 1 3 7 gfp 96 20 0 1 8 gfp 96 20 0 2 9 gfp 96 20 0 3 10 gfp 96 20 0 4 11 gfp 96 20 0 5 12 gfp 96 20 0 6 13 gfp 96 20 0 7 14 gfp 96 20 0 8 15 gfp 96 20 0 9 16 gfp 96 20 0 10 17 gfp 96 20 0 11 18 gfp 96 20 0 12 19 gfp 96 20 0 13 20 gfp 96 20 0 14 21 gfp 96 20 0 15 22 gfp 96 20 0 16 23 gfp 96 20 0 17 24 gfp 96 20 0 18 25 gfp 96 20 0 19 26 gfp 96 20 0 20 27 rpl8 24 5 1 1 28 rpl8 24 5 1 2 29 rpl8 24 5 1 3 30 rpl8 24 5 1 4 31 rpl8 24 5 1 5 32 rpl8 48 12 1 1 33 rpl8 48 12 1 2 34 rpl8 48 12 1 3 35 rpl8 48 12 1 4 36 rpl8 48 12 1 5 37 rpl8 48 12 1 6 38 rpl8 48 12 1 7 39 rpl8 48 12 1 8 40 rpl8 48 12 1 9 41 rpl8 48 12 1 10 42 rpl8 48 12 1 11 43 rpl8 48 12 1 12 44 rpl8 96 25 1 1 45 rpl8 96 25 1 2 46 rpl8 96 25 1 3 47 rpl8 96 25 1 4 48 rpl8 96 25 1 5 49 rpl8 96 25 1 6 50 rpl8 96 25 1 7 51 rpl8 96 25 1 8 52 rpl8 96 25 1 9 53 rpl8 96 25 1 10 54 rpl8 96 25 1 11 55 rpl8 96 25 1 12 56 rpl8 96 25 1 13 57 rpl8 96 25 1 14 58 rpl8 96 25 1 15 59 rpl8 96 25 1 16 60 rpl8 96 25 1 17 61 rpl8 96 25 1 18 62 rpl8 96 25 1 19 63 rpl8 96 25 1 20 64 rpl8 96 25 1 21 65 rpl8 96 25 1 22 66 rpl8 96 25 1 23 67 rpl8 96 25 1 24 68 rpl8 96 25 1 25 69 rpl8 96 8 0 1 70 rpl8 96 8 0 2 71 rpl8 96 8 0 3 8行的数据变成71行了! 省略8倍的工作量。  结果也是正确的:  Test of Equality over Strata Test Chi-Square DF Chi-Square Pr Log-Rank 21.5285 1 〈.0001 Wilcoxon 19.0001 1 〈.0001 -2Log(LR) 15.1797 1 〈.0001 存活分析本来是用来跟踪2个不同处理(如药, 和对照)的群体的生存情况的, 但是也可以用来分析行为, 例如 2组不同处理的蜜蜂回巢的情况, 因为回巢与时间有关, 所以存活分析比只用最后的数据更好。因为最后的数据只 有一个比例, 有可能中间两个组有差别, 但是最后没有了, 那么存活分析可以发现差别, 但是G-test不会发现。
个人分类: 档案|4448 次阅读|5 个评论
excel 导入SAS 出现问题 有些变量竟然是缺失的
wenxiaopiao 2011-8-23 16:39
用的是SAS9.2这个版本,也不知道从哪里找来的,辛辛苦苦整理的数据,分析了超过一大半,有个变量的值非常奇怪,全是缺失的,返回原始excel查看,发现了一个让我泪奔的事实,从epidata导出的excel数据,然后再导入到SAS,这个的SAS有一部分记录的变量是缺失的,我在excel明明看看这个变量是存在的,清清楚楚明明白白是数字,结果SAS愣是空白的。一整列的变量都是缺失的,好几列的变量都是空白的,十分隐蔽。 此次分析的数据量极大,过程相当复杂,耗费了本人很多的脑细胞,心灵上造成了极大的伤害。 为什么会出现这样的情况? 1、 试过了,从epidata直接转换成SAS文件不会出现这样的问题。之前为什么从epidata导出成excel,是因为要在excel中做一些操作,删除巨多的重复项,要是能直接写命令,也就不用导出excel了,偶有只有这水平。 2、自己在excel的第一行增加一条记录,每条记录上各个变量都填上数值,全填上0,再导入SAS,这次这个SAS又正常无比。 血淋淋泪汪汪的教训:以后excel导入SAS要小心了,能直接epidata转换SAS就不搞那么多步骤了。excel导入SAS,管你个三七二十一,先增加一行,全部的变量都填上数字再导入。后面再删除这条记录就是了。 为什么会出现这种情况呢?盗版软件?有谁知道到底是怎么回事?我很纳闷。 2012年2月补充: By default the Import Wizard will scan the first 20 rows for delimited and the first 8 rows for Microsoft Excel files.If you have all missing data in these rows, or the data are not representative of the entire file, then the Import Wizard(and the IMPORT procedure) may not read the file correctly. 使用IMPORT procedure: the XLS identifier looks at all rows in the file to determine the column type, wheras the EXCEL identifier only looks at the first 8 data rows by default. 《the little sas book》four edition.P36. P64 至此,终于明白是怎么一回事了。
12863 次阅读|0 个评论
[转载]SAS学习的几个网站
censambao 2011-2-20 12:01
初学SAS 已有 597 次阅读 2010-1-28 17:24 | 个人分类: 未分类 | 系统分类: 科研笔记 | 关键词:SAS 这是本人博文第一篇,想了好久也没想出什么来,就把自己学习SAS的一些东西在这里给大家分享一下, 统计学在我们生态学领域里,重要性不可忽视。例如,野外搜集来的数据,本身含有不少误差在里面,能否把处理效应和误差剥离的干净,就要看你的实验设计水平的高低了,统计学学好了,这方面就不怕了。 废话不再多说了,把话题交给SAS。SAS处理统计数据的功能还是蛮强大的,如何能正确的使用它?是我们一直梦寐以求的,具体参考(本人建议)教科书:《口腔医学科研设计与统计分析》主编 胡良平; 有用的网站: http://core.ecu.edu/psyc/wuenschk/SAS.htm (各种类型的统计分析程序都有,英语版) http://www.bioon.com/biology/sas/55221.shtml (较为容易上手,国内汉语版) 转载: http://blog.sciencenet.cn/home.php?mod=spaceuid=389171do=blogid=290953
个人分类: 他文共赏|2715 次阅读|0 个评论
Creating a Sample Data Set
xulearn 2011-1-19 15:10
proc print data=sashelp.class; run; data subset1; do PickIt=1 to 19 by 2; set sashelp.class point=PickIt; output; end; stop; run; proc print data=subset1; run; data subset2; do PickIt=1 to TotObs by 2; set sashelp.class point=PickIt nobs=TotObs; output; end; stop; run; proc print data=subset2; run; data subset3(drop=i SampSize); SampSize=10; do i=1 to SampSize; PickIt=ceil(ranuni(0)*TotObs); set sashelp.class point=PickIt nobs=TotObs; output; end; stop; run; proc print data=subset3; title 'A Random Sample with Replacement'; run; data subset4; SampSize=10; ObsLeft=TotObs; do while (SampSize0 and ObsLeft0); PickIt+1; if ranuni(0)SampSize/ObsLeft then do; set sashelp.class point=PickIt nobs=TotObs; output; SampSize=SampSize-1; end; ObsLeft=ObsLeft-1; end; stop; run; proc print data=subset4; title 'A Random Sample without Replacement'; run; proc surveyselect data=sashelp.class method=srs n=10 /* seed=12345*/ out=sample1; run; proc print data=sample1; run; proc surveyselect data=sashelp.class method=urs n=10 /* seed=12345*/ out=sample2; run; proc print data=sample2; run;
个人分类: SAS|1 次阅读|0 个评论
非线性方程参数的SAS-DUD法求解程序-Logistic Model
soilborne 2010-10-31 16:16
Dm'log;clear;output;clear;'; Options font=sasfont 8; DATA NEW; INPUT x y; cards; 0 9.6 1 18.3 2 29.0 3 47.2 4 71.1 5 119.1 6 174.6 7 257.3 8 350.7 9 441.0 10 513.3 11 559.7 12 594.8 13 629.4 14 640.8 15 651.1 16 655.9 17 659.6 18 661.8 PROC NLIN METHOD=DUD BEST=2; PARMS K=661 TO 665 BY 2 A=3 TO 5 B=-0.6 TO -0.4 BY 0.1; MODEL y=K/(1+EXP(A+B*x)); RUN;
个人分类: 方法|6362 次阅读|0 个评论
我在网络上的一些言谈举止
agri521 2010-9-2 01:12
2010年11月6号 Twitter微博 玉米产业体系育种研究室2010年赴美国考察报告 http://url.cn/3W9bHA 笔者评:这种交流方式非常好,至少可以让大家知道你们去美国做什么了。 2010年11月6号 Twitter微博 代码重构之路的艰辛与模型重构之路的艰难。 2010年11月3号 Twitter微博 有文献讲,可以用R直接调用WOFOST dll,挺感兴趣的,有时间了好好研究研究。 2010年11月2号 Twitter微博 今天看到土壤通报上一篇文章,在结论部分,作者写到,WOFOST模型仍需要不断的发展和完善,使它能更好的为人类服务!。 2010年10月30号 Twitter微博 实验室有位老师先后在中国农业科学中和英版发表文章,而且是在同一年,让人伤心的是,两篇文章的摘要一字不差,英文文章正文内容85%是翻译自中文文章。原来这些事情就在身外。 2010年10月30号 Twitter微博 中国期刊网上可以检索到许多基于面向对象的的模型或系统,不讨论文章中是如何写面向对象的,到底私下源代码是如何设计类的?自己不说可能谁也不知道。农业模型你真的是面向对象嘛? 2010年8月26号 在 普蘭塔 上的留言 不大认同您讲的生态模型用的是计算机语言,而生物统计或统计模型离不开如R等。这本A Practical Guide to Ecological Modelling,就是讲如何使用R语言来研制生态模型,指数学模型,而非统计模型。R语言或C语言,他们只是工具,并不能代表所研制的模型的类型。如果使用底层语言写模型,与使用R、matlab等高级语言相比,对研制者的编程能力要求高。可以这样,使用R等工具建模、检验、验证,发文章就足够了。当需要这些模型在软件里实现,再转换成C、C++或C#,这一步可以找人代劳。粗略认识,欢迎加入农业模型QQ群:111765496讨论。 2010年9月2号 在 农业模型QQ群的留言 不知道IMZ(网名)是否一定要使用DSSAT。如果要买,先了解这个个人版和机构版在使用协议上的区别。今年《结晶学报A辑》影响因子从2提高到49就是因为一个软件的协议改变了,要求使用我的软件必需引用我的文章。价格差这么多,我想在协议上还是有区别。如果IMZ只是用这个DSSAT本地化一下,发个文章这类的。其实可以找其它模型来代替,如APSIM和SUCROS等。老板说钱不是问题,如果不花钱我们就可以把这件事办成,那时,钱是不是问题就不重要了。使用SAS和R语言的最大区别是,后者可以不花钱就可做ANOVA。
个人分类: 文献探讨|5367 次阅读|0 个评论
[转载]几种常用的统计分析软体比较
agri521 2010-7-29 14:36
本文转载自周恬弘的博客为了美丽的地面。周先生毕业于维吉尼亚州大学,哲学博士,现为台湾某医院行政副院长。 http://thchou.blogspot.com/2008/07/blog-post_13.html (笔者整理排版) 这一年来接触了几种不同的统计软体,有些是自己有实际去使用过,有些则是只听别人介绍或只有概念上的初步了解。每一种软体都各有利弊,我就目前所知道的这几种软体做简单的比较。 本来我只会使用SPSS,但不是很深入。 SPSS是专门给社会科学研究人员使用的统计软体 , 其好处是视窗的介面与对话方块与下拉式选单的功能让一般的电脑使用者很容易上手 ,使得SPSS成为最普遍的统计软体之一。 在修计量经济学时,我们所使用的统计软体叫做Stata,以前我并不知道有这样的软体,但是使用之后也觉得蛮好用的,有其独特的功能。Stata原 本只用简单的指令,研究人员可以写一连串的指令去整理资料内容与执行统计分析工作,后来Stata的版本也加入类似SPSS的视窗介面与对话方块与选单的 功能。对我来说, Stata最方便的地方 (这也是老师一再强调的好处),是 可以将整套的执行指令存成一个do file,可以让研究人员反覆执行同样的分析工作 。 如果要修改分析工作中的某些步骤,只要修改其中相关的部分指令,便可以很容易让电脑重新进行分析工作,省下很多的时间与避免错误的可能性。相较之下,对话 方块每执行一次分析工作,就得重头勾选对话方块中的项目,相当耗时,也容易出错。后来有朋友告诉我其实 SPSS也有类似Stata的do file的执行指令档的功能,如果懂得其执行指令,也可以反覆执行整批的指令。 因此在操作上,我觉得 SPSS与Stata其实差不多。不过我个人比较喜欢 Stata的分析结果呈现格式,感觉上比较简洁 ;此外, Stata所提供的统计功能要比SPSS来得完整 。特别是在回归分析方面,Stata的涵盖面比SPSS更为广泛,而且Stata在进行假设验证时,比SPSS来得灵活。 SPSS与Stata都不便宜,虽然Stata有简易版与学生版,价格较低廉,可是能够处理的资料量与变数量有限制,而且Stata每年都要收费。 还有,SPSS与Stata在处理的资料量上面有一定的限制,对于非常大的资料档(如资料笔数很多),有时这两种软体无法处理。 在处理大量的资料方面,目前公认最好的统计软体是SAS。 SAS也是透过写指令的方式去执行资料整理与统计分析,与Stata相似。SAS的功能也非常完备,可能是统计专业人员最倚重的软体。但是其缺点是SAS没有单机版,只有机构版,而且每年计费,且收费不便宜,换句话说, SAS是只提供给机构或团体使用 。不是在机构工作的研究人员或没有与SAS签约的机构的研究人员都无缘使用SAS。 暑假我修Dr. Luke的健康照护机构策略,Dr. Luke在上课时会用到另一种统计软体叫做JMP,这是SAS集团的新产品之一,属于单机版的套装统计软体,感觉上相当精巧与友善。 JMP是一种互动型的分析软体,也是使用视窗与对话方块的功能 , 研究人员每执行一次动作,结果马上会呈现出来,使用者可以根据这个结果,再做进一步的资料整理或分析,直到所期望的最终的结果出现。JMP运用很多图形的 方式来呈现分析结果,让分析人员一目了然。我觉得JMP在整理资料的功能也是我目前所接触过最友善的,分析人员可以很容易地依照自己的想法操作资料,并且 马上得到自己所想要的资料排列格式。据我所知,JMP可以处理的资料量也相当大,不过其统计功能的涵盖面可能不像Stata或SAS那么广泛与完整。它另 外的一个缺点是没有执行指令档的功能,因此每个动作都要一次又一次透过对话方块与下拉式选单去执行。 最近,有位朋友介绍我一种开放程式码的统计软体,叫做R。我才刚在了解这个软体。据我所知,R的统计功能也相当齐全,可以处理的资料量也很大,它是 采用写执行指令的方式去进行分析,但是与SAS、SPSS与Stata不同的地方在于R也是采用互动的方式,让分析人员一步一步、一层一层分析下去,直到 得到自己想要的结果。而且R好像也有执行批次档的功能。然而最大的好处是R是可以自由取得,不用花钱。不过据说R的上手并不容易,因为它是由专精统计的网 友所共同发展出来的,因此还是在变动中,而且没有一套完整详尽的操作手册,而是散布各处,要找到这些使用指南经常要花一些时间。因此,有位好心的统计工作 者特别架设了一个网页 ,专门介绍R给对其他统计软体有些经验的人,希望藉此缩短摸索的时间。 对于各种统计软体所包括的功能,Wikipedia有做比较 ,可以参考看看。 有时候我很纳闷,为什么要有这么多不同的统计软体?每一种各有优缺,导致像我这样,每种都接触一下,学了一点,却没有一种是专精的,还要伤脑筋去想 到底要用哪一种作为自己的主要工具。有时候,太多选择也是颇让人头疼,这时就会希望有一种完美的统计软体:免费、处理无限大的资料量、涵盖所有的统计功 能、可以执行批次指令档、也有视窗与对话方块功能,而且,容易学习与上手。 http://www.statmethods.net/index.html http://en.wikipedia.org/wiki/Comparison_of_statistical_packages 以下为网友回复: 这些统计软体的多元化跟电脑软体市场的竞争有直接关系。但是设计统计软体的考量和需要,因为大过个人使用者的层次,才会使这市场变得如此复杂。 就电脑的发展史来看,在个人超级电脑还没有发展出来,储存空间还非常有限的五零甚至到六零年代,庞大的资料都是电脑的中央大系统,也就是IBM公司发展的Mainframe在作储存和输出控制。那时的资料库语言是Cobol,用来写数学计算的语言是Fortran。 Fortran 算是中阶语言,比最基本的Assembly language高一阶而已,对不专学电脑语言的研究者来说,要学programming很困难。因为这个友善一般使用者的需要,在Chicago University教书的几位社会科学研究者就跟电脑专家合作,发展出第一代的SPSS。值得注意的是这虽然是电脑软体,是可以读算和呈现结果的环 境,却也是一种新的电脑语言 是用Fortran作底写创出来新的电脑语法,也就是说系统必须先解读SPSS成为Fortran,再由Fortran解作Assembly language,然后执行真正的指令 。所以SPSS 变成是最高阶的语言,同时也指由这个语言控制数算和输出结果的环境。这种模式成为后来发展所有统计软体语言的典范。 SPSS刚开始也是需要使用者自己写语言(syntax)。采用视窗的环境和滑鼠点选很后来的事。 SPSS 头几代刚设计出来就遇到这语言跟IBM系统相容不是很顺利的问题。这问题其实是IBM系统不断更新,Fortran 的发展跟不上,导致SPSS也受到限制。另一方面是因为不是专业的程式设计师最先开始使用SPSS,却不擅掌控如何从大系统读存资料。这两个问题,成为 SPSS后来不受工商企业界广为采用的致命伤。一直要到个人电脑的速度和储存容量可以和大系统匹敌,才有所改善。 SAS 差不多是六零年代末期开始发展进入软体市场,却一直到七零年代初才比较多人使用。刚开始SAS也是由Fortran写成。但是能赶过SPSS进占工商企 业,是因为电脑语言C的发明。C比Fortran 更容易使用,更灵活地能跟Assembly language对谈。也就是说C更容易和大系统相容,方便使用者从大系统上读写存资料。SAS公司的人比较有企业远见。一看到C的发展具备潜力,马上把 后来的SAS 版本改由C、而不是Fortran来写。所以会C的专业程式设计师同时也很容易学会SAS。企业界不缺钱顾人学最新的东西,雇了最新的C programmers作系统管理,发现这人同时也略懂SAS系统(反之也是),至于统计学者就另外聘请,形成企业界里系统管理专家和统计学者合作,而由 SAS程式设计师担任连接两边界面的合作团队,促使公司大量采用SAS系统。SAS 就是这样在整体市场行销上拼过SPSS ,在八零年代几乎独占统计软体市场。 C 在八零年代初也被用来发展另外一种管理系统,叫做Unix ,成为IBM Mainframe系统的劲敌。而且在九零年代起开始有取代IBM Mainframe的趋势,成为新的系统管理平台。SAS 当初下对了一步棋,现在就骑在浪头上,远远超过SPSS。在有进行临床实验的药厂更是如此,比方美国食品药物检验局在检查药厂送交的临床实验报告时,就 同意而且规定药厂要以SAS档案格式呈送资料 (最近要打破SAS的独占,规定也能用超越软体档案格式限制的XML的格式标准呈送)。 SAS不纯粹只是市场行销上超越SPSS,就语言本身的灵活和广度来看,都大到适用于不同的企业。这语言的强处,就是因为不需要借助视窗,什么都能 办到:比方能用SAS语言本身去读写各类商用资料库、输出全新的报表格式、和创造新的统计应用软体,如同用语言C一般。SAS programming本身变成是一种专业。极大部份只用SPSS的人的电脑程度实在不能比。不过对大部份在研究机构的学生和老师来说,要精通SAS的程 式设计必须花不少时间学,实在困难。 STATA原本是由计量经济学家和电脑程式设计师一起发展出来,专用在经济指数预测。在发展这语言和软体的时候同时看到SPSS和SAS的优缺点。所以 STATA 的语言环境看起来像是SPSS和SAS的混合 要用视窗或纯写程式的功能几乎一样 (视窗点选的动作可以记录成do file 用batch mode送交系统执行)。现代版的SPSS也发现光用视窗会牺牲执行速度和限制用途,容许使用者在每个主要视窗按paste 的按钮,就可以把语言syntax 记录下来成为类似do file的syntax file,也能交付batch mode执行。 稍微了解STATA多一点之后,会知道STATA在处理资料上有一点跟SPSS和SAS很不同。是STATA 的强处,比较挑剔的人却说是STATA的缺点。 SPSS 和SAS 在处理资料上是一笔记录(record or case)读进来到主要的work memory后,在每一个运算的功能(function)处理过,把这笔资料写出到另外的work memory,再读另一笔资料进来到主要的work memory。是线性按照记录原有存放的次序的处理流程。一笔进来一笔出去,下一个记录才能读进来。处理完写出去的记录不能再回过头来颠倒做再次的处理。 这个流程在SPSS的语言程式里没有显明,但系统在台面下是这样处理。所以大部份SPSS 的使用者如果没有被教通,就根本不知道为什么有些指令是必须要先写才能跟着其他的指令,长久来就都搞不通怎样写好程式,最后只好傻傻地只靠视窗功能。 SAS 的语言里就把资料读进来和处理资料的数算功能(在SAS 里叫做procedure ,简写作proc)明显划分。读资料的语法部份叫做data step。也是每次只读一笔资料,做基本的资料改写或操弄,写出到另一个work memory。再读进另一笔。 但是STATA读资料的时候就突破这种一笔一笔的处理方式 。读的时候是把所有的记录一次都读进到主要的work memory 里组织形成像Excel里的table,基本上是架构成一个距阵,让使用者可以指明要用哪些变数(variable),而且可以选择要哪些记录 record ,要跳着或是颠倒的顺序作处理。举个例子。比方在SPSS或SAS里,写程式的方式是要假想一笔资料读进来,能够处理的是同一笔记录上不同变数间值的加减 乘除(水平方向)。STATA除了水平方向的运算外,更可以在一个动作下处理一个特定变数下不同记录的值之间的加减乘除(垂直方向)。所以更加灵活。 问题是因为是一次读进所有的资料在work memory里来架构距阵,work memory要够大才行。现在一般的个人电脑内设的RAM都足够处理学术界的研究资料。但是企业界在用的资料库,比方银行高达数百万的帐号或是健保资料, 有时候就大到超过个人电脑上RAM一次读进所能够负荷的容量。所以不管学术界和教育界对STATA的灵活程度如何赞不绝口,都没有考虑到企业界的实际顾 虑,对企业界还是只用 SAS的忠诚表示不解。 R处理资料的基本结构跟SPSS和SAS比较像,原本是由ATT Bell lab在八零年代创造的电脑语言S演进而来,算是最新的发展。所以资料数目比较不是考量。但是处理的速度没有SAS快。虽然有很多统计学家写出最新的统计 功能,在使用者学习手册上因为没有市场利益的刺激,却相对欠缺。但只要这两个问题逐渐得到解决,在未来的确可能打破其他统计软体要使用者付费和不断提升版 本的困扰。但这也使得 R使用者要写出和其他软体程式对照的R教学手册,目前受到其他公司用版权百般刁难阻挡。 SPSS 公司看到SAS的优势,后来也赶紧改用C语言作底,而不再靠Fortran。但是使用者社群一分化固定下来,让大部份的专业程式设计师靠拢到SAS阵营去,就限制了SPSS软体后来的发展。 怎么说? 一个新的程式语言和软体要能发展成熟,起码都要大概十年的期间。原本开发新语言和写新软体的人没办法了解所有行业的需要。是靠使用者用了之后给予回 馈和评价,才知道如何改进升格版本。如前一篇评论所言,SPSS的使用者一开始就只是那些学院里的社会科学研究者,使用统计的程度也许不差,但是缺乏对电 脑语言广度的认知,对SPSS和管理系统的相容性也不擅操作。SPSS公司为了继续留住这群主要顾客,当个人电脑开始跃进时,是所有统计软体中最先接纳改 用视窗环境,好方便这些设计程式功夫不高的一般使用者。这在当时看起来虽然是最进步的做法,长远看来却是划地自限,使专业的程式设计师更避开学SPSS。 原因是如果视窗和滑鼠人人会用,那还用得着专业的程式设计师吗?专写程式的人靠什么吃饭? 所以SAS虽然比较晚接纳个人电脑的视窗环境,却比较有耐力,能够靠有好设计程式功力的使用者社群一起发展更具威力的更新版本,提供给各种不同的企业环境运用。 STATA就是看到SAS和SPSS龟兔赛跑的结果,虽然也提供视窗环境方便大众,但是不敢忽略发展STATA语言本身,希望能留住不同程度的使用 者。浅白地说,写SPSS syntax比使用视窗功能略为麻烦;相反地,单写SAS语言比SAS视窗点选的功能强很多;STATA写语言跟使用视窗功能的效率差不多,但是学会直接 写STATA语法能让使用者自己设计统计程序和加强处理数据的功能,所以专业的程式设计师学STATA 比一般使用者更有发挥才能赚饭吃的余地。这种做法也才使得原来是用SPSS或是SAS两边不同程度的人,都有改用STATA的好处。
个人分类: 博文转载|5154 次阅读|0 个评论
SAS系统Contrast 语句详解
agri521 2010-7-17 13:16
我在 【总结】方差分析系列一用好 ANOVA中的Contrast选项 中曾简单介绍了contrast选项,下面我翻译并整理了SAS中contrast语句常数向量的获取方 法,也适用于SAS的estimate语句和SPSS软件。 本文主要内容整理自 A quick guide to writing contrast statements in SAS and SPSS 。 Contrast语句使你可以用自定义的方式进行假设检验,它必须出现在model语句之 后。如果用到manova语句、repeated语句、random语句或test语句,contrast语句必须出现在这些语句之前。标记用来标识所进 行的检验,用以标识的文字或符号需用单引号括起来。效应表达式用以指定假设检验的因素(组合),这些因素(组合)必须是model语句中出现过的。效应表 达式后的常数向量用以指定相应因素(组合)各水平的值,在指定各水平的情况下进行相关因素的分析。 下面将举例说明效应表达式常数向量获取过程。 1. 影响因素的顺序及编码方式 在SAS中,class语句指定了因素的顺序,这决定着contrast语句中常数向量的写 法。 在默认情况下,因素按字母顺序或数值大小进行编码。例如,如果变量sex有男性和 女性两个值,并分别用M和F表示。那么,程序将先为F(女性)计算系数。 2. 数据的描述统计 在SAS中,使用proc univariate可以使我们对数据集有个粗略的认识。输出结果里还包括盒子图。 3. 确定感兴趣的差异比较 假设一个完全随机区组试验设计,有A、B和C三个因素。A因素有2个水平(1和2),B因素 有3个水平(1、2和3),C因素有4个水平(1、2、3和4)。 我们设定一个简单比较:当b为2时,比较A 2个水平之间的差异。 4. 新建一个系数表,并关注影响因素顺序及其水平顺序。 根据A和B因素在class语句里的排列顺序,A因素出现在行,而B因素出现在列,并把A和 B因素水平按数值大小排列(如下图)。在表格左侧和顶部的单元格标明需比较水平的系数(红色斜体表示)。 5. 表格左侧的系数与顶部的系数两两相乘,并在相应单元格里标明结果。那么,A*B交互项的系数为0 1 0 0 -1 0(红色表示)。 6. 把交互项系数横向和纵向相加,并写到表格右侧和底部。 这些值是A(表格右侧)和B(表格底部)主效应系数。由于B主效应的系数均为零,可以不出现 在contrast语句。对于A,我们必需按顺序写为1 -1。 7. 表格右侧和底部系数相加,即得截距的系数,并写到右下角单元格。因为其值为零,截距不出现在contrast语句中。 8.最后,即得contrast语句。 对于SAS系统的proc glm 或proc mixed过程步,contrast语句可写为:contrast A1 v A2 in B2 A 1 -1 A*B 0 1 0 0 -1 0; 在SAS系统里,小于1的至少4位十进制小数也可作为常数向量 (如:0.3333)。 现在,设想同一试验数据,但我们对一个更复杂的差异比较感兴趣,这涉及到A、B和C 三个因素。设定C的4水平是对照,那么你可以让1、2和3水平与4水平进行比较,而且是在B为2和A为1条件下。 下面,我们将以在B为2和A为1条件下C的1水平与4水平比较为例。 1. 首先取A和B两个因素,建立参数表。 从上图可知,contrast语句需要保留A、B以及截距项,但这一步还不能下这个结论。 2. 现在,检查A*B交互项与C,以找到A*B*C交互项的系数。 从上图可知,contrast语句不需保留截距和A*B交互项,而保留C。这里才能确定C项需要保留。 3. 由于C保留,所以我们检查A与C,B与C,以确定contrast语句还需要保留哪些项。 A*C 这样,contrast语句不保留A和截距,而将保留C。 B*C 因此,contrast语句将不保留B和截距,但C将保留。 4. 最后,还需要B*C与A和A*C与B,以确定最后两项是否进入contrast语句。 B*C与A 我们已经知道contrast语句不保留A和截距项,但B*C将保留。 A*C与B contrast语句不保留B和截距,但保留A*C。 5. 到此为止,我们已经确定了contrast语句里需指定的效应:C, A*C, B*C, and A*B*C。 contrast语句将写为: contrast C1 v C4 in A1 and B2 C 1 0 0 -1 A*C 1 0 0 -1 0 0 0 0 B*C 0 0 0 0 1 0 0 -1 0 0 0 0 A*B*C 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 注:于非零系数之后的零可以省略。所以,A*B*C 0 0 0 0 1 0 0 -1与上面的意义相同。 6. 我们对其它比较也可能感兴趣,如水平2,3与4比较。 对于C 2 v 4 in A1 and B2 contrast C2 v C4 in A1 and B2 C 0 1 0 -1 A*C 0 1 0 -1 0 0 0 0 B*C 0 0 0 0 0 1 0 -1 0 0 0 0 A*B*C 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 对于 C 3 V C4 in A1 and B2 contrast C3 v C4 in A1 and B2 C 0 0 1 -1 A*C 0 0 1 -1 0 0 0 0 B*C 0 0 0 0 0 0 1 -1 0 0 0 0 A*B*C 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 延伸资料: How can I do ANOVA contrasts?
个人分类: 统计计算|16662 次阅读|0 个评论
用SAS分析员估计样本含量和效能计算
agri521 2010-7-16 10:09
估计样本含量时应当具备的条件如下: 确定检验水准(第Ⅰ类错误的概率) 越小所需要的样本例数越多。一般情况下选=0.05,同时根据专业知识确定单侧或双侧检验。如果A优于B或B优于A两种结果都可能发生,用双侧; 从专业上可以判定只可能出现一种结果时用单侧检验。 提出所期望的检验效能(1-) 假设检验的效能是指当对立假设 H 1 .为真时拒绝 H 0 的概率。也 即,在特定的水准下,若总体间确实存在着差异,此次实验能发现此差异的概率。要求检验效能越大,样本含量也就越大。实际上检验效能由Ⅱ类错误大小所决 定,一般情况下选在0.25-0.1之间,相应的检验效能在0.75-0.9之间。在实验设计时。检验效能不宜低于0.75,否则检验的结果很可能反映 不出总体的真实差异,出现非真实的阴性结果。在 查阅文献 时, 这个问题应引起研究者的注意。 容许误差= 1 - 2 比较2个总体间的差值,若研究者无法得到总体参数的信息,可做预实验或用专业上认为有实际意义的差值代替。 总体标准差,或总体率 可根据经验或预实验用样本标准差或样本率来估计参考值。 摘自:冯丽云等著,SAS for Windows 医学统计分析操作指南, 郑州大学出版社 ,2001
个人分类: 统计计算|3967 次阅读|0 个评论
完整的SAS代码应包括几部分?
agri521 2010-7-12 19:35
完整SAS程序应包括6部分, 如下: OPTIONS 语句 语句以Options开始,控制output的外观。 Data 集定义语句 语句以LIBNAME或FILENAME开始,把数据集的位置告知SAS系统,以读写数据。 DATA step(s) 语句以Data开始,连接原始数据或已存在的SAS数据集,然后修改数据或新建数据集。 PROC step(s) 语句以Proc开始,执行统计分析,生成统计报表。 Comments 为代码做必要的注释。 Run 语句 在Data步或Proc步尾部加Run,以执行程序。 以上翻译自:The Little SAS Book (Second Edition), Delwiche LD and Slaughter SJ, SAS Institute, Inc., 1998.
个人分类: 统计计算|4354 次阅读|0 个评论
SAS处理数据三个步骤
agri521 2010-7-12 14:28
本文翻译并改编自北卡州立大学Fikret Isik教授的帖子。 http://www4.ncsu.edu/~fisik/index.html 第一步:Examining Data for Analysis 这是是数据处理最重要的部分,因为异常值会影响到处理结果并误导你。在使用复杂数据分析步之 前,花点时间检查你的数据。 Getting to konw data Proc contents data=mydata; run; 使用contents过程步可以让你了解数据,告诉你:数据集名和保存位置;数据创建时间和最后修改时间;变量数和类型; Examination of numeric variables Proc univariate data=mydata plot; var height; ID family; run; 本过程步提供了数值变量最完整的信息:检验变量分布;描述统计;显示极端观测;绘制分布图。 plot选项提供了茎叶图、盒子图和正态分布图,可视化检查数据。 最重要的是可以提供Extreme Observations,方便排除异常值。 Examination of character/discrete variables Proc freq data=mydata ; table block family/out=FreqTable nocol norow nocum nopercent; run; 离散变量检查语句,本人用的较少。 Data Summary Proc means data=hbook.mydata mean std cv n maxdec=2; var Height diameter; run; 本语句提供数据汇总功能,在排除异常值后,以手里的数据做个全面的了解。 第二步:推断统计 经过第一步的预处理后,可以保证数据通过正态检验和齐次性检验,具体方法可以查阅本人的其它 帖子。 analysis of variance Proc Anova; Proc GLM; Proc MIXED 上面的三个语句功能各异,均用于进行方差分析。Proc MIXED国内用的较少,外文期刊常能见到。 Correlation and regression Proc corr; Proc Reg; Proc nlin; 上述两个语句可以计算相关系数和回归方程,以及线性和非线性拟合,具体方法可参考本人的其它帖子。 第三步:Plotting 本人对SAS绘图只是简单的了解,在这里不作介绍。笔者习惯使用Sigmaplot进行科学 制图。 上述三步可以满足大部分人的需求,切记第一步是不能省的。 本来想写些自动生成三线表,自动在数据后添加SD和abc的代码,这样使处理结果一步到位,省去重新整理的麻烦,但由于时间关系,暂不作打算了。
个人分类: 统计计算|7394 次阅读|0 个评论
SAS与通径分析
agri521 2010-7-8 14:35
通径分析 是数量遗传学家Sewall Wright于1921年提出来,经遗传育种学者不断改进和完善形成的一种多元统计技术。它通过对自变量和因变量之间的相关分解来研究因变量(性状)的相 对重要性,已在众多领域广泛应用。 通径系数是因变量Y关于自变量X1、X2、X3的标准的偏回归系数,即通径系数=自变量的回 归系数(自变量的标准差/因变量的标准差)。 计算步骤: 1、相关系数计算 2、因变量对自变量的多元回归分析 3、通径系数的计 算 4、间接通径系数的计算 计算涉及的公式: 1、通径系数=自变量的回归系数(自变量的标准差/因变量的标准差) 2、 通径系数的显著性测验与多元回归分析中对偏回归系数的显著性测验等价 3、回归方程的误差e的通径系数=sqrt(1-R2) 4、x1 通过x2的间接效应(间接通径系数)=X1与的X2相关系数*x2的通径系数 同理x2通过x1的间接效应=X1与的X2相关系数*x1的通径系 数 SAS代码: (本想写成宏,可以直接给出终计算结果,限于能力和时间,本代码只能输出计算通径系数所需的数据 集) /*系统设置*/ options nodate nonumber nocenter linesize=80 pagesize=60 ; /*数据读取*/ data xiaomai; input y x1-x4; cards; 15.7 10 23 3.6 113 14.5 9 20 3.6 106 17.5 10 22 3.7 111 22.5 13 21 3.7 109 15 5 10 22 3.6 110 16.9 10 23 3.5 103 8.6 8 23 3.3 100 17.0 10 24 3.4 114 13.7 10 20 3.4 104 13.4 10 21 3.4 110 20.3 10 23 3.9 104 10 2 8 21 3.5 109 7.4 6 23 3.2 114 11.6 8 21 3.7 113 12.3 9 22 3 6 105 run; ods html file=E:Doctor Degreesasdatamydata.html style=science; ods output SimpleStats=SimStats(keep= variable stddev); /*导出标准差数据集*/ /*相关系数计算*/ proc corr data=xiaomai; var y x1-x4; run; ods trace on ; ods output FitStatistics=FitStat(keep=label2 cvalue2); /*导出R 2 */ ods output ParameterEstimates=PaterE( keep= variable standardizedest); /*导出标准回归系数*/ /*多元回归分析*/ proc reg data=xiaomai; model y=x1-x4/stb; /*stb选项:标准回归参数估计*/ run; ods trace off; /*合并标准差和标准回归系数数据集*/ data result; merge PaterE SimStats FitStat ; label standardizedest=标准回归系数 stdDev=标准差 variable=自变量; run; proc print data= result; run; ods html close; run; 参考文献: 1、通径分析在Excel和SPSS中的实现,张琪,农业网络信息,2007/03 2、 偏相关与通径分析的EXCEL VBA程序设计,陈庭木,农业网络信息,2007/03 3、EXCEL在通径分析中的应用,任红松,农业网络信 息,2006/03 4、Excel在通径分析中的应用,何风华,中国卫生统计,2005/05 5、通径分析在EXCEL上的实现,张 天伦,农业网络信息,2004/08
个人分类: 统计计算|12650 次阅读|0 个评论
初学SAS
热度 1 leeguoliang 2010-1-28 17:24
这是本人博文第一篇,想了好久也没想出什么来,就把自己学习SAS的一些东西在这里给大家分享一下, 统计学在我们生态学领域里,重要性不可忽视。例如,野外搜集来的数据,本身含有不少误差在里面,能否把处理效应和误差剥离的干净,就要看你的实验设计水平的高低了,统计学学好了,这方面就不怕了。 废话不再多说了,把话题交给SAS。SAS处理统计数据的功能还是蛮强大的,如何能正确的使用它?是我们一直梦寐以求的,具体参考(本人建议)教科书:《口腔医学科研设计与统计分析》主编 胡良平; 有用的网站: http://core.ecu.edu/psyc/wuenschk/SAS.htm (各种类型的统计分析程序都有,英语版) http://www.bioon.com/biology/sas/55221.shtml (较为容易上手,国内汉语版)
个人分类: 未分类|3627 次阅读|2 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-8 08:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部