网站大量收购独家精品文档,联系QQ:2885784924

采用均数和标准差进行方差分析的方法及SAS实现.docVIP

采用均数和标准差进行方差分析的方法及SAS实现.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
采用均数和标准差进行方差分析的方法及SAS实现

采用均数和标准差进行方差分析的方法及SAS实现 广东省深圳市中医院 郭志武 【摘要】目的 探讨采用均数和标准差进行方差分析的方法及SAS程序。方法 通过推导,得到基于均数和标准差的方差分析计算公式,并用简洁的SAS程序实现。结果 实现了有关算法及SAS程序。结论 采用均数和标准差进行方差分析是完全可行的,编制SAS程序可以有效实现相关的计算,得到可靠的结果。 【关键词】均数 标准差 方差分析 SAS 在实际工作中,通常会遇到一些研究资料只有均数和标准差而缺失原始数据的情况,比如年代久远的研究资料、期刊文献的资料等等。对于这些资料,若需进行t检验是很容易的,有现成的公式可用;但若需对多个样本资料做方差分析就不易了,现有的计算公式以及统计软件的算法都是基于原始数据的,因此有必要探讨基于均数和标准差的方差分析算法,以满足实际工作的需要。 1.算法的推导 对于单因素方差分析,传统的算法是先计算总变异,然后分别算出组间变异和组内变异,最后求出F值和对应的P值。这都是基于原始数据来计算的。若只有均数和标准差,则需要通过推导得出计算组内变异和组间变异的公式。 组间变异的理论公式为: (1) 而,因此: (2) 组内变异的理论公式为: (3) 由于组内标准差,因此,从而: (4) 这样,通过(2)式和(4)式,可以很方便地计算出和,从而进一步计算出F值。 至于双因素方差分析和多因素方差分析,可作类似推导,这里不再赘述。 多个样本的两两比较可以遵照现有公式完成。 2.SAS程序的实现 下面以《卫生统计学》第四版(倪宗瓒主编)第51页的样例数据为例,介绍采用均数和标准差进行方差分析的SAS程序的实现。 /*建立数据集,输入各组组号、样本例数、均数、标准差,组号需按ABCD...顺序输入*/ data a; input gp$ n X S; cards; A 11 105.45 10.87 B 9 102.39 14.55 C 10 122.80 17.07 ; /*采用sql过程进行方差分析计算*/ proc sql; create table b as select sum(n) as N, /*计算总例数N*/ count(n) as k, /*计算组数k*/ sum(n*X**2)-sum(n*X)**2/sum(n) as SSZJ, /*计算组间变异*/ sum(S**2*(n-1)) as SSZN /*计算组内变异*/ from a; quit; data c; set b; MSZJ=SSZJ/(k-1); /*计算组间均方*/ MSZN=SSZN/(N-k); /*计算组内均方*/ F=MSZJ/MSZN; /*计算F值*/ P=1-probf(F,k-1,N-k); /*计算P值*/ proc print data=c; var F P; /*显示F值,P值*/ run; /*以下进行两两比较计算,采用LSD-t检验*/ data d; set c; keep N k MSZN; proc sql; create table e as select a1.gp as gp1,a2.gp as gp2, /* 交叉匹配生成两两比较数据集*/ a1.n as n1,a2.n AS n2, a1.X AS X1,a2.X as X2 from a as a1, a as a2 where a1.gpa2.gp; create table f as select e.*,d.* from e ,d; /*生成两两比较计算表 */ quit; data g; set f; dmean=x1-x2; sd=sqrt(MSZN*(1/n1+1/n2)); t=dmean/sd; p=(1-probt(abs(t),n-k))*2; proc print data=g; var gp1 gp2 n1 n2 x1 x2 dmean t p; /*显示两两比较结果*/ run;

文档评论(0)

taotao0c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档