首页 > 编程 > R > 正文

使用R语言进行单样本t检验

2023-04-28 12:24:13
字体:
来源:转载
供稿:网友

一、单样本t检验

单总体t检验是检验一个样本平均数与一个已知的总体平均数的差异是否显著。当总体分布是正态分布,如总体标准差未知且样本容量小于30,那么样本平均数与总体平均数的离差统计量呈t分布。 (--百度百科)

在单样本的情况下,假设数据x1,x2,...,xn来自于服从N(μ,σ2)的独立随机变量。我们希望对假设μ=μ0进行检验。

对n个均值为μ,标准差为σ的随机变量求平均值,使用均值的标准误(SEM,standard Error of the Mean)来描述这个均值的波动性,它的表达式是:SEM= σ/sqrt(n)

对于服从正态分布的数据,有一般性准则:有95%的数据会落在μ±2σ这个区间里。所以如果μ0是真实的平均数,那么x均就应该落在μ0±2SEM中。通过计算 t = (x均-μ0)/SEM来判定t是否落在了一个接受域中。

t应该以一定的概率落在这个接受域之外,这个概率被称为显著性水平。如果t落在接受域之外,那么我们就在预设的显著性水平上拒绝零假设。另一种等价的方法是计算p值,它指的是得到一个绝对值上大于或等于当前t值的概率,我们在p值小于显著性水平的情况下拒绝零假设。

有时候我们需要对样本数据的均值进行单边检验,即判定μ是落在右边区域(偏大)还是左边区域(偏小)。

二、R语言中进行t检验的函数

在R中可以使用t.test()函数 来进行单样本t检验。其形式如下:

t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, var.equal = FALSE, conf.level = 0.95, ...)

其中,x为非空数值型向量;y是可选的数值型向量;

alternative是字符型字符串,用于指定备择假设方法,其中two.sided是双边检验,less是左侧单边检验,greater是右侧单边检验;

mu是数据的真实均值;

paired是一个逻辑值,用于指定是否进行配对检验,默认为FALSE;

var.equal是一个逻辑值,用于指定两个方差是否相等(a logical variable indicating whether to treat the two variances as being equal. If TRUE then the pooled variance is used to estimate the variance otherwise the Welch (or Satterthwaite) approximation to the degrees of freedom is used.)

conf.level指定置信水平,默认为0.95.

三、R语言中进行单样本t检验的例子

(1)双边检测的例子

某种元件的寿命x(小时),服从正态分布N(μ,σ2),其中mu,σ2均未知,其中抽样的16只元件的寿命如下:

159,280,101,212,224,379,179,264,222,362,168,250,149,260,485,170

问是否有理由认为元件的平均寿命等于250小时?

原假设H0:μ = 250;备择假设H1:μ≠250

编写R程序如下:

#定义变量
x<-c(159,280,101,212,224,379,179,264,222,362,168,250,149,260,485,170)
#进行单样本t检验
t.test(x,mu=250)

运行结果如下:

 R语言进行单样本双侧检验

结果解读:

结果中第1行是标题“单样本t检验”;第2行给出了使用的数据变量:x;第3行计算了t值,给出了自由度df,和p值;第4行是备择假设:真实值不等于250;紧接着第5和第6行是95%的置信区间[188.89,294.11];最后3行是样本估计,数据x的均值是241.5。

从产生的结果来看,p-value=0.7353>0.05,所以不能拒绝原假设H0(μ=250),即这些样本寿命的均值在0.05的显著性水平下与250没有显著区别。

(2)单边检测的例子

环保标准规定汽车的新排放标准:平均值<20ppm,现某汽车公司测试10辆汽车的排放结果如下:

15.6, 16.2, 22.5, 20.5, 16.4,19.4,16.6, 17.9, 12.7,13.9 

问题:公司引擎排放是否满足新标准。

原假设H0:μ>=20;备择假设:μ<20;

编写R语言程序如下:

#定义变量x
x<-c(15.6,16.2,22.5,20.5,16.4,19.4,16.6,17.9,12.7,13.9)
#进行单样本单边检测(less)
t.test(x,mu=20,alternative="less")

运行结果如下:

R语言中进行单样本单侧检验

结果解读:

p-value = 0.0075<0.05,则拒绝原假设,亦即选择备择假设:μ<20.也就是说,该题中的汽车符合排放标准。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表