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() # 弗里德曼的秩和非参数检验