R语言:十一个统计检验都在这了

Python012

R语言:十一个统计检验都在这了,第1张

R语言的各种检验

1、W检验(Shapiro–Wilk (夏皮罗–威克尔 ) W统计量检验)

检验数据是否符合正态分布,R函数:shapiro.test().

结果含义:当p值小于某个显著性水平α(比如0.05)时,则认为

样本不是来自正态分布的总体,否则则承认样本来自正态分布的总体。

2、K检验(经验分布的Kolmogorov-Smirnov检验)

R函数:ks.test(),如果P值很小,说明拒绝原假设,表明数据不符合F(n,m)分布。

3、相关性检验:

R函数:cor.test()

cor.test(x, y,

alternative = c("two.sided", "less", "greater"),

method = c("pearson", "kendall", "spearman"),

exact = NULL, conf.level = 0.95, ...)

结果含义:如果p值很小,则拒绝原假设,认为x,y是相关的。否则认为是不相关的。

4、T检验

用于正态总体均值假设检验,单样本,双样本都可以。

t.test()

t.test(x, y = NULL,

alternative = c("two.sided", "less", "greater"),

mu = 0, paired = FALSE, var.equal = FALSE,

conf.level = 0.95, ...)

结果意义:P值小于显著性水平时拒绝原假设,否则,接受原假设。具体的假设要看所选择的是双边假设还是单边假设(又分小于和大于)

5、正态总体方差检验

t.test(x, y = NULL,

alternative = c("two.sided", "less", "greater"),

mu = 0, paired = FALSE, var.equal = FALSE,

conf.level = 0.95, ...)

结果含义:P值小于显著性水平时拒绝原假设,否则,接受原假设。具体的假设要看所选择的是双边假设还是单边假设(又分小于和大于)

6、二项分布总体假设检验

binom.test(x, n, p = 0.5,

alternative = c("two.sided", "less", "greater"),

conf.level = 0.95)

原假设:p=p0,p

7、Pearson 拟合优度χ2检验

chisq.test(x, y = NULL, correct = TRUE,

p = rep(1/length(x), length(x)), rescale.p = FALSE,

simulate.p.value = FALSE, B = 2000)

原假设H0:X符合F分布。

p-值小于某个显著性水平,则表示拒绝原假设,否则接受原假设。

8、Fisher精确的独立检验:

fisher.test(x, y = NULL, workspace = 200000, hybrid = FALSE,

control = list(), or = 1, alternative = "two.sided",

http://conf.int = TRUE, conf.level = 0.95)

原假设:X,Y相关。

9、McNemar检验:

mcnemar.test(x, y = NULL, correct = TRUE)

原假设:两组数据的频数没有区别。

10、秩相关检验

cor.test(x, y,

alternative = c("two.sided", "less", "greater"),

method = "spearman", conf.level = 0.95, ...)

原假设:x,y相关.

11、Wilcoxon秩检验

wilcox.test(x, y = NULL,

alternative = c("two.sided", "less", "greater"),

mu = 0, paired = FALSE, exact = NULL, correct = TRUE,

http://conf.int = FALSE, conf.level = 0.95, ...)

原假设:中位数大于,小于,不等于mu.

1.两变量均为多分类

此时就是通常说的分析变量间的关联性,此时数据一般为数据框或矩阵结构的频数表,可直接使用chisq.test()命令进行处理,如:

>chisq.test(bird.df)

如果频数表中有频数为0,则会输出一个错误信息:Chi-squared approximation may be incorrect

2.两变量均为二分类

此时数据为2*2列联表,chisq.test()会默认使用耶茨连续性校正,可通过corrct=TRUE进行关闭,实际上,chisq.test()只会对2*2列联表使用耶茨校正。如果设定了使用蒙特卡洛方法,则不会再使用耶茨校正。

3.一个变量为二分类一个变量为多分类

这种情况下为卡方拟合优度检验,为保险起见,基本上都要设定rescale.p=TRUE,如果不指定P,则认为期望概率全部相等的情况。

>chisq.test(survey$new,p=survey$old,rescale.p = TRUE)