高山流水分享 http://blog.sciencenet.cn/u/friendpine 走在科学路上的一位无名侠客,只是静静的走着.........

博文

在R中如何求给定分布和统计量的p-value

已有 26426 次阅读 2010-3-24 10:58 |个人分类:统计学与R语言学习|系统分类:科研笔记

在知道了分布函数和相应的统计量后怎样得到p-value呢?用R可以很容易的实现,如下(来自<统计建模和R软件>)
P_value <- function(cdf,x,paramet,side=0){
  n <-length(paramet)
  p <-switch(n+1,
                cdf(x),
                cdf(x,paramet),
                cdf(x,paramet[1],paramet[2]),
                cdf(x,paramet[1],paramet[2],paramet[3]) 
               )
  if(side <0) p
  else if(side >0) 1-p
  else
    if(p<1/2) 2*p
    else  2*(1-p)
}
其中cdf是分布函数(下面会列出一些分布),
x是计算出来的统计量的值,如t分布中的t值,f分布中的f值,
paramet是分布的参数,如正态分布需要指定(mu,sigma),f分布需要指定(df1,df2),
side是指计算p值的类型,是单侧,还是双侧.

R中与各个分布对应的分布函数名称如下:
分布                     R中的名称            参数
normal                   norm                mean,sd
F                        f                   df1,df2,ncp
Student's t              t                   df,ncp
chi-squared              chisq               df,ncp
uniform                  unif                min max
.............................................
更多的分布请见<统计建模和R软件>的P118.

注意:在上面计算p值的程序中,给定的分布名称应该加上p表示分布,如t分布应该写成pt,f分布应该是pf,正态分布是pnorm,更详细的请见R中,?pt()会告诉你非常具体的参数设置.

http://blog.sciencenet.cn/blog-54276-305762.html

上一篇:线性回归的假设和pearson相关系数的假设
下一篇:期刊的卷和期

4 高建国 戴小华 黄富强 万幼

发表评论 评论 (2 个评论)

数据加载中...

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

GMT+8, 2021-10-25 13:23

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部