数据准备
t检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n <30),总体标准差σ未知的正态分布。t检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。
t检验的适用条件为样本分布符合正态分布。
R中检验正态分布的函数:
shapiro.test()
结果p值要是小于0.05,样本分布是非正态分布,如果大于0.05,样本分布是正态分布。
t检验可分为单总体检验和双总体检验,以及配对样本检验。
单总体t检验是检验一个样本平均数与一个已知的总体平均数的差异是否显著。
个人理解的应用实例:已知一个玉米品种的产量是8000 kg/ha,在一个田间试验中测定这个玉米品种的产量,单样本t检验要做的就是检验田间试验测定的产量与已知产量是否相等。
单样本t检验的假设:
H0:样本均值与已知的总体均值相等。
H1:样本均值与已知的总体均值不相等。
t统计量的计算:
m:样本平均值;
:已知总体的均值;
S:样本标准差,自由度df=n-1。
n:样本量。
单样本t检验R调用函数:
t.test(x, mu, alternative = "two.sided")
x:数据向量;
mu:理论平均值。默认为0,可根据自己统计计算需求更改;
alternative:备择假设。允许值为“two.sided”(默认),也可以根据需要设置为“greater”或“less”之一。
结果解释:p值小于0.05,结论是v1的平均值与理论值1.5有显著差异。
检验两个样本平均数与其各自所代表的总体的差异是否显著。
个人理解的应用实例:检验两个玉米品种产量是否存在差异。
t.test(y ~ x, data)
其中的y是一个数值型变量,x是一个二分变量。
t.test(y1, y2)
其中的y1和y2为数值型向量(即各组的结果变量)。可选参数data的取值为一个包含了这些变量的矩阵或数据框。
t检验默认假定方差不相等,并使用Welsh的修正自由度。你可以添加一个参数var.equal=TRUE以假定方差相等,并使用合并方差估计。默认的备择假设是双侧的(即均值不相等,但大小的方向不确定)。你可以添加一个参数alternative="less"或alternative="greater"来进行有方向的检验。
结果解读:得到结果中P值小于0.05,说明要拒绝原假设(两品种v1值无差异),接受备择假设,即两品种v1值差异显著。
非独立样本的t检验假定组间的差异呈正态分布。
个人理解的应用实例:一个玉米品种接受两个施氮处理,两个施氮处理下玉米的产量是否存在差异。
t.test(y1, y2, paired=TRUE)
其中的y1和y2为两个非独立组的数值向量。
结果解读:不同氮素水平的比较显示p值小于0.05,说明v1值在两个氮水平间差异显著;而两个年份下v1值无显著差异。
如果想在多于两个的组之间进行比较,应该怎么做?如果能够假设数据是从正态总体中独立抽样而得的,那么你可以使用方差分析(ANOVA)。ANOVA是一套覆盖了许多实验设计和准实验设计的综合方法。
参考资料:
T检验:符合正态分布的数据用T检验秩和检验:不满足正态分布的数据用秩和检验
正态分布的检验
非正态分布
非正态分布中值比均值有意义
如果点在直线两侧则为正态分布。图示为非正态分布
wilcox.test(变量1,变量2)
prop.test(抽样阳性, 抽样总数, p=已知百分比, alternative = "greater")
alternative 参数,假设方向用greater或less,默认双侧检验。
用于检验实际观测值与理论推断值之间的偏离程度。卡方值越大说明偏离越大,卡方值越小,说明偏离程度低。卡方值为0说明完全符合。
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.