1.Shapiro检验:检验正态性

测试样本是否遵循正态分布。

shapiro.test(myVec) 
# 例子:检验一个正态分布
normaly_disb <- rnorm(100, mean=5, sd=1) # 生成一个正态分布
shapiro.test(normaly_disb)

 

Shapiro-Wilk normality test

data:  normaly_disb
 W = 0.9936, p-value = 0.919


# 例子:检验一个非正态分布
not_normaly_disb <- runif(100)

shapiro.test(not_normaly_disb)

    Shapiro-Wilk normality test

data:  not_normaly_disb
W = 0.9563, p-value = 0.002195

 

怎么解读?

如果p值小于显着性水平(0.05),则可以拒绝正态分布的零假设。

 

2.单样本t检验:检验一个正态分布数据样本的平均值

测试样本的平均值是否可以在统计学上与某值无明显差异。

x <- rnorm(50, mean = 10, sd = 0.5)
t.test(x, mu=10) # testing if mean of x could be
   One Sample t-test

data:  x
t = -0.8547, df = 49, p-value = 0.3969
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
  9.797195 10.081767
sample estimates:
mean of x 
 9.939481 

怎么解读?

在上述情况下,p值不小于显着性水平(0.05),因此不能拒绝平均值= 10的零假设。另请注意,95%置信区间范围包括其范围内的值10。因此,可以说'x'的平均值为10,特别是因为'x'被假定为正态分布。如果不假设正态分布,请使用下一节中显示的wilcoxon符号秩检验
注意:使用conf.level参数调整置信度。

 

3. Wilcoxon秩和检验:在未假设正态分布的数据样本中检验均值

当假设数据样本不遵循正态分布时,Wilcoxon符号秩检验可以替代t检验。它是一种非参数方法,用于测试估计值是否与其真实值不同。

wilcox.test(input.vector, mu = m, conf.int = TRUE)

怎么解读?

如果p值<0.05,则拒绝原假设,估计值和真实值统计层面上不同。

 

4.两个样本t检验、Wilcoxon秩和检验:比较两个样本的平均值

t.Test和Wilcoxon检验都可用于比较2个样本的平均值。

当两个样本分布正态分布时,将两个数值向量样本传递给t.test(),当不遵循正态分布时,则传递给wilcox.test()。

x <- c(0.80, 0.83, 1.89, 1.04, 1.45, 1.38, 1.91, 1.64, 0.73, 1.46)
y <- c(1.15, 0.88, 0.90, 0.74, 1.21)
wilcox.test(x, y, alternative = "g") # greater
Wilcoxon rank sum test

data:  x and y
W = 35, p-value = 0.1272
alternative hypothesis: true location shift is greater than 0

当p值为0.1262时,我们不能拒绝x和y都具有相同均值的零假设。

t.test(1:10, y = c(7:20)) # P = .00001855
Welch Two Sample t-test

data:  1:10 and c(7:20)
t = -5.4349, df = 21.982, p-value = 1.855e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  -11.052802  -4.947198
sample estimates:
  mean of x mean of y 
5.5      13.5 

当p值<0.05时,我们可以安全地拒绝零假设,即平均值没有差异。 如果我们想对x和y的值进行1比1的比较,该怎么办?

#使用paired = TRUE进行1对1的观察比较。

t.test(x, y, paired = TRUE) 
wilcox.test(x, y, paired = TRUE)

我什么时候可以得出结论是不同的?

通常,如果p值小于显着性水平(理想地为0.05),则拒绝两个均值相等的零假设。

 

5. Kolmogorov和Smirnov检验:测试两个样本是否具有相同的分布

Kolmogorov-Smirnov检验用于检查2个样本是否遵循相同的分布。 

ks.test(x,y) # x 和 y 是两个数字向量

# 不同的分布
x <- rnorm(50)
y <- runif(50)
ks.test(x, y) 
Two-sample Kolmogorov-Smirnov test

data:  x and y
D = 0.48, p-value = 1.387e-05
alternative hypothesis: two-sided
# 相同的分布
x <- rnorm(50)
y <- rnorm(50)
ks.test(x, y) 

Two-sample Kolmogorov-Smirnov test

data:  x and y
D = 0.18, p-value = 0.3959
alternative hypothesis: two-sided

如何判断它们是否来自同一个分布?

如果p值<0.05(显着性水平),我们拒绝零假设(它们的分布相同)。

6. Fisher's F-检验:测试两个样本是否具有相同的方差

Fisher's F检验可用于比较2个样本的方差。

var.test(x, y)  # Do x and y have the same variance?

fligner.test()bartlett.test()也可以用作相同目的。

7. 卡方检验:检验列联表中两个变量的独立性

卡方检验可用于检验两个分类变量的独立性。示例:您可能想知道大预算电影是否会成为票房收入。我们得到了2个分类变量(电影预算,成功状态),每个变量有2个因子(大/低预算和命中/翻转),形成一个2 x 2矩阵。

 

chisq.test(matrix, correct = FALSE)  # Yates continuity correction not applied
or
summary(table(x, y)) # performs a chi-squared test.

Pearson's Chi-squared test
data:  M
X-squared = 30.0701, df = 2, p-value = 2.954e-07

如何判断x,y是否独立?

有两种方法可以判断它们是否独立:(1)通过查看p值(2)来自Chi.sq值

p值:如果p值小于0.05,我们就不能拒绝x和y独立的零假设。因此,对于上面的示例输出(p-Value = 2.954e-07),我们拒绝零假设并得出结论,x和y不是独立的。

卡方值:对于具有2个自由度(dof)的2 x 2列联表,如果计算的Chi-Squared大于   3.841(临界值),我们拒绝变量是独立的零假设。要查找较大dof列联表的临界值,可以用qchisq(0.95,n-1),其中n是变量的数量。

 

8.相关性:测试两个变量的线性关系

cor.test()检验,如果两个变量之间的相关性是显著,我们可以从p值看出结果。

cor.test(x, y) 

9.更常用的测试

fisher.test(contingencyMatrix, alternative = "greater")  # Fisher检验用于测试列联表中行和列的独立性
friedman.test()  # 弗里德曼的秩和非参数检验