假设检验(hypothesis test),就是根据已掌握的资料对一个总体参数是否等于某一个数值,某一随机变量是否服从某种概率分布的假设,然后根据所取得的样本资料,利用一定的统计方法计算出有关检验的统计量,依据一定的概率原则,以较小的风险来判断估计数值与总体数值(或估计分布与实际分布)是否存在显著差异,是否应当接受原假设的一种检验方法。假设检验是根据小概率事件的实际不可能性原理来推断的。假设检验中的小概率标准称为显著性水平,用\(\alpha\)表示。依据显著性水平的大小将检验统计量的所有可能值组成的样本空间分为两个区域 :否定域或拒绝域:在原假设成立的情况下,如果检验统计量的值落在这个区域里,则否定原假设。接受域:在原假设成立的情况下,如果检验统计量的值没有落在这个区域里,则接受原假设。 假设检验的步骤:1. 建立统计假设,包括原假设,备择假设。2. 确立合适的检验统计量,确定其分布。3. 规定显著性水平 4. 根据样本观测值计算检验,统计量的取值。5. 判断原假设是否成立。假设检验的四种情况
| \(H_{0}\)为真 | \(H_{0}\)为假 | |
|---|---|---|
| 接受\(H_{0}\) | 正确决策 | 第二类错误 \(\beta\) |
| 拒绝\(H_{0}\) | 第一类错误\(\alpha\) | 正确决策 |
第一类错误,也称弃真错误,本来是真的,却根据检验统计量的值把它给否定了。发生这种错误的概率通常用\(\alpha\)表示。第二类错误,也称取伪错误,本来是假的,却根据检验统计量的值把它给接受了。
参数假设检验,是指在总体的分布形式已知的条件下,对总体参数的某一假设进行的检验 。
当总体分布为正态分布,总体标准差为已知时,检验所使用的检验统计量为\(z=\frac{\bar{x}-\mu _{0}}{\sigma _{0}/\sqrt{n}}\sim N(0,1)\)。\(\sigma\)为总体方差,\(\mu _{0}\)为总体均数,\(n\)为样本数,\(\bar{x}\)为样本均数。 在总体方差未知的情况下,用样本方差\(S\)代替总体\(\sigma\),检验统计量为\(t=\frac{\bar{x}-\mu _{0}}{S/\sqrt{n}}\sim t(n-1)\)
例 某药厂生产一批新的药品,规定直径为10mm,方差为0.4。为了检验机器的性能是否良好,随机抽取了25件产品,测得其平均长度为9.30 9.32 10.41 9.06 10.21 9.31 9.96 9.03 10.22 9.19 10.36 9.67 10.43 10.36 9.83 10.67 10.38 9.29 9.74 9.99 9.98 9.89 9.52 9.88 9.67。假设生产的药品直径服从正态分布,问在显著性水平0.05时,该机器的性能是否良好。
z.test<-function(x,sigma,alpha,u0=0,alternative="two.sided"){
n <- length(x)
options(digits=4)
result<-list( )
mean<-mean(x)
z<-(mean-u0)/(sigma/sqrt(n))
p<-pnorm(z,lower.tail=FALSE)
result$mean<-mean
result$z<-z
result$p.value<-p
if(alternative=="two.sided"){
p<-2*p
result$p.value<-p
}
else if (alternative == "greater"|alternative =="less" ){
result$p.value<-p
}
else return("your input is wrong")
result$conf.int<- c(
mean-sigma*qnorm(1-alpha/2,mean=0, sd=1,
lower.tail = TRUE)/sqrt(n),
mean+sigma*qnorm(1-alpha/2,mean=0, sd=1,
lower.tail = TRUE)/sqrt(n))
result
}
x <- c(9.30,9.32,10.41,9.06,10.21,9.31,9.96,9.03,10.22
,9.19,10.36,9.67,10.43,10.36,9.83,10.67,10.38,9.29,
9.74,9.99,9.98,9.89,9.52,9.88,9.67)
z.test(x,0.4,0.05,10)
## $mean
## [1] 9.827
##
## $z
## [1] -2.165
##
## $p.value
## [1] 1.97
##
## $conf.int
## [1] 9.670 9.984
P值大于0.05,可以该机器的性能良好。
例 假设上提的总体方差未知,假设生产的药品直径服从正态分布,问在显著性水平0.05时,该机器的性能是否良好。
t.test(x,alternative = "two.sided",mu=10)#总体方差未知,使用t检验
##
## One Sample t-test
##
## data: x
## t = -1.8, df = 24, p-value = 0.08
## alternative hypothesis: true mean is not equal to 10
## 95 percent confidence interval:
## 9.629 10.025
## sample estimates:
## mean of x
## 9.827
P值大于0.05,可以该机器的性能良好。
两个总体为正态分布,方差已知,检验所使用的检验统计量为\(z=\frac{(x_{1}-x_{2})-(u_{1}-u_{2})}{\sqrt{\frac{\sigma_{1}^{2}}{n_{1}}+\frac{\sigma_{1}^{2}}{n_{2}}}}\sim N(0,1)\)
两个总体为正态分布,方差未知,检验所使用的检验统计量为\(T=\frac{(x_{1}-x_{2})-(u_{1}-u_{2})}{\sqrt{\frac{S^{2}}{n_{1}}+\frac{S^{2}}{n_{2}}}}\sim t(n_{1}+n_{2}-2)\)
例 制药厂试制某种安定神经的新药,两台仪器制造药品服从正态分布,从各自加工药品中,分别取若干个测量其直径,两组直径如下A组 20.5 19.8 19.7 20.4 20.1 20.0 19.0 19.9 B组 20.7 19.8 19.5 20.8 20.4 19.6 20.2,问两台仪器的加工精度有无显著差异?
x<-c(20.5, 19.8, 19.7, 20.4, 20.1, 20.0, 19.0, 19.9)
y<-c(20.7, 19.8, 19.5, 20.8, 20.4, 19.6, 20.2)
t.test(x, y, var.equal=TRUE)
##
## Two Sample t-test
##
## data: x and y
## t = -0.85, df = 13, p-value = 0.4
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.7684 0.3327
## sample estimates:
## mean of x mean of y
## 19.93 20.14
P值大于0.05,可以两台仪器的加工精度无显著差异。
样本率与总体率比较的目的,是推断该样本所代表的未知总体率π与已知总体率\(\hat{p}\) 是否不同。 当样本含量\(n\)足够大,且样本率\(p_{0}\) 和\(1-p_{0}\)均不太小,如 \(np_{0}\)与\(n(1-p_{0})\)均大于5 时,样本率的分布近似正态分布统计量\(Z=\frac{\hat{p}-p_{0}}{\sqrt{p_{0}(1-p_{0})}}\sim N(0,1)\)。当\(np_{0}\)与\(n(1-p_{0})\)均小于5时,样本率的分布近似二项分布。
例 按照以往经验,新生儿染色体异常率一般为1%,某医院观察了当地400名新生儿,有一例染色体异常,问该地区新生儿染色体是否低于一般水平?
binom.test(1,400,p=0.01,alternative="less")
##
## Exact binomial test
##
## data: 1 and 400
## number of successes = 1, number of trials = 400, p-value = 0.09
## alternative hypothesis: true probability of success is less than 0.01
## 95 percent confidence interval:
## 0.0000 0.0118
## sample estimates:
## probability of success
## 0.0025
#样本量较小时,不宜选择prop.test(),有警告!
prop.test(1,400,p=0.01,alternative="less")
## Warning in prop.test(1, 400, p = 0.01, alternative = "less"): Chi-squared
## approximation may be incorrect
##
## 1-sample proportions test with continuity correction
##
## data: 1 out of 400, null probability 0.01
## X-squared = 1.6, df = 1, p-value = 0.1
## alternative hypothesis: true p is less than 0.01
## 95 percent confidence interval:
## 0.0000 0.0131
## sample estimates:
## p
## 0.0025
P值大于0.05,尚不能认为该地区新生儿染色体异常低于一般水平。
两个总体比例\(\hat{p_{1}}\)和\(\hat{p_{1}}\)的极大似然估计分别为近似地服从正态分布: \(Z=\frac{\hat{p_{1}}-\hat{p_{2}}}{\sqrt{(n_{1}+n_{2})\hat{p}(1-\hat{p})/n_{1}n_{2}}}\),\(\hat{p}=\frac{n_{1}\hat{p_{1}}+n_{2}\hat{p_{2}}}{n_{1}+n_{2}}\)
例 某综合医院随机抽取了345个男病例与451个女性病例调查吸烟的暴露情况, 调查结果为187个男性病例与76女性病例中有吸烟的暴露, 能否认为男、女病例吸烟的暴漏一致?
s <- c(187,76)
t <- c(345,451)
prop.test(s,t)
##
## 2-sample test for equality of proportions with continuity
## correction
##
## data: s out of t
## X-squared = 120, df = 1, p-value <2e-16
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.308 0.439
## sample estimates:
## prop 1 prop 2
## 0.5420 0.1685
P值较小,可以认为男女病例的吸烟暴漏情况不同。
两个服从Poisson分布比率,欲检验这两个率是否不同,需要Poisson检验。 例 分别观察了两种疫苗17877与16660个受种者, 结果分别出现2例和9例格林巴利,能否认这两种疫苗接种后发生格林巴利不一致?
library(rateratio.test)
rateratio.test(c(2,9),c(17877,16660))
##
## Exact Rate Ratio Test, assuming Poisson counts
##
## data: c(2, 9) with time of c(17877, 16660), null rate ratio 1
## p-value = 0.05
## alternative hypothesis: true rate ratio is not equal to 1
## 95 percent confidence interval:
## 0.02177 1.00055
## sample estimates:
## Rate Ratio Rate 1 Rate 2
## 0.2070942 0.0001119 0.0005402
library(exactci)
## Loading required package: ssanv
poisson.exact(c(2,9),c(17877,16660))
##
## Exact two-sided Poisson test (central method)
##
## data: c(2, 9) time base: c(17877, 16660)
## count1 = 2, expected count1 = 5.7, p-value = 0.05
## alternative hypothesis: true rate ratio is not equal to 1
## 95 percent confidence interval:
## 0.02177 1.00055
## sample estimates:
## rate ratio
## 0.2071
poisson.test(c(2,9),c(17877,16660))
##
## Comparison of Poisson rates
##
## data: c(2, 9) time base: c(17877, 16660)
## count1 = 2, expected count1 = 5.7, p-value = 0.03
## alternative hypothesis: true rate ratio is not equal to 1
## 95 percent confidence interval:
## 0.02177 1.00055
## sample estimates:
## rate ratio
## 0.2071
poisson.test()检验不是Poisson精确检验,参考其他两种方法在\(\alpha=0.05\)时可以认为接种两种疫苗发生格林巴利的情况基本一致。
独立性检验评估了变量之间的相互独立情况,如果拒绝原假设,相关性强弱的度量通常用phi系数(Phi-Coefficient)描述\(2*2\)(四格表)数据相关程度,\(\varphi =\sqrt{x^{2}/n}\),\(n\)总频数;列联系数(Contingency Coefficient)主要用于大于\(2*2\)的列联表,\(C=\sqrt{\frac{x^{2}}{x^{2}+n}}\);Cramer’s V系数,\(V =\sqrt{\frac{x^{2}}{n*\min[(R-1),(C-1)]}}\);可用vcd包中的assocstats()函数计算。
mytable <- xtabs(~Treatment+Improved,data=Arthritis)
assocstats(mytable)
## X^2 df P(> X^2)
## Likelihood Ratio 13.530 2 0.0011536
## Pearson 13.055 2 0.0014626
##
## Phi-Coefficient : NA
## Contingency Coeff.: 0.367
## Cramer's V : 0.394
总体来说,较大的值意味着较强的相关性。vcd包也提供了一个kappa()函数,可以计算混淆矩阵的Cohen’s kappa值以及加权的kappa值。(混淆矩阵可以表示两位评判者对于一系列对象进行分类所得结果的一致程度。)
协方差是描述X和Y相关程度的量,定义为\(s_{xy}=\frac{1}{n-1}\sum (x_{i}-\bar{x})(y_{i}-\bar{y})\),用于衡量两个变量的总体误差。方差是协方差的一种特殊情况,即当两个变量是相同的情况下。相关系数是中心化与标准化后的协方差,定义为\(r=\frac{s_{xy}}{\sqrt{s_{xx}}\sqrt{s_{yy}}}\),用来描述定量变量之间的关系。相关系数避免了协方差量纲的影响,其值的大小表示关系的强弱程度(完全不相关时为0,完全相关时为1),其符号(±)表明关系的方向(正相关或负相关)。 有多种相关系数,其中Pearson积差相关系数衡量了两个定量变量之间的线性相关程度。Spearman等级相关系数则衡量分级定序变量之间的相关程度。Kendall’s Tau相关系数也是一种非参数的等级相关度量。cor()函数可以计算这三种相关系数,而cov()函数可用来计算协方差。Pearson相关检验,适用于正态分布总体的数据,如果总体不服从正态分布,可用秩相关检验。秩相关检验是在成对观测数据的符号检验基础上发展起来的,比传统的单独用正负号的检验更加有效。在R软件中,使用rank()函数计算秩统计量。 ###Pearson、Spearman和Kendall相关 除计算相关系数外,对相关系数是否为0进行统计学检验,可以用cor.test()函数对Pearson、Spearman和Kendall相关系数进行统计并完成系数的相关检验。
Pearson相关用于双变量正态分布的资料,定义为\(r=\frac{1}{n-1}\sum _{i=1}^{n}(\frac{x_{i}-\bar{x}}{s_{x}})(\frac{y_{i}-\bar{y}}{s_{y}})\),反映两个变量线性相关程度的统计量。
例 某医生为了探讨缺碘地区母婴TSH水平的关系,应用免疫放射分析测定了160名孕妇(15-17周)及分娩时脐带血TSH水平(mU/L),现随机抽取10对数据,母血TSH1.21 1.30 1.39 1.42 1.47 1.56 1.68 1.72 1.98 2.1,脐血TSH3.90 4.5 4.20 4.83 4.16 4.93 4.32 4.99 4.7 5.2,试对母血TSH水平与新生儿脐带血TSH水平进行相关分析。
x <- c(1.21,3.90,1.30,4.50,1.39,4.20,1.42,4.83,1.47,4.16)
y <- c(1.56,4.93,1.68,4.32,1.72,4.99,1.98,4.70,2.10,5.20)
cor.test(x,y)
##
## Pearson's product-moment correlation
##
## data: x and y
## t = 10, df = 8, p-value = 6e-06
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.8563 0.9920
## sample estimates:
## cor
## 0.9654
Pearson积差相关系数0.96,P值小于0.05,可以认为母血TSH水平与新生儿脐带血TSH水平相关。
当X和Y相互独立时,\(r_{i}\)为X产生的秩统计量,\(R_{i}\)为Y产生的秩统计量,Spearman秩相关系数为\(r_{s}=[\frac{1}{n}\sum r_{i}R_{i}-(\frac{n+1}{x})^{2}]/(\frac{n^{2}-1}{12})\) $。
例 两位评分员对新出生的5名新生儿进行Apgar评分,甲:6 7 8 9 10,乙:5 6 7 8 10。试用Spearman秩相关检验方法检验两个评分员对等级评定有无相关关系。
x <- c(6,7,8,9,10)
y <- c(5,6,7,8,10)
cor.test(x,y,method = "spearman")
##
## Spearman's rank correlation rho
##
## data: x and y
## S = 4.4e-15, p-value = 0.02
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 1
Spearman相关系数为1,P值小于0.05,可以认为两位评分员结论有关。
从两变量是否协同(concordant)来检验变量之间的相关性,如果\((x_{j}-x_{i})(y_{j}-y_{i})>0\)则对子协同,如果\((x_{j}-x_{i})(y_{j}-y_{i})<0\)则对子不协同。Keandall \(\tau\)相关系数\(\hat{\tau }=\frac{n_{d}-n_{c}}{C_{n}^{2}}\),\(n_{d}\)是不协同的对子数目,\(n_{c}\)是能够协同的对子数目。
例 欲研究体重和肺活量的关系,调查某地10名初中女生的体重和肺活量如下,进行相关性检验。体重:75 95 85 70 76 68 60 66 80 88,肺活量:2.62 2.91 2.94 2.11 2.17 1.98 2.04 2.20 2.65 2.69。
x <- c(75,95,85,70,76,68,60,66,80,88)
y <- c(2.62,2.91,2.94,2.11,2.17,1.98,2.04,2.20,2.65,2.69)
cor.test(x,y,method = "kendall")
##
## Kendall's rank correlation tau
##
## data: x and y
## T = 38, p-value = 0.005
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## 0.6889
Kendall秩相关系数为0.68,P值小于0.05,可以认为体重和肺活量是相关的,且为正相关。
偏相关是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系。可以使用ggm包中的pcor()函数计算偏相关系数,函数调用格式为:pcor(u,S)其中的u是一个数值向量,前两个数值表示要计算相关系数的变量下标,其余的数值为条件变量(即要排除影响的变量)的下标。S为变量的协方差阵。
例 WHO数据集中有每10万人的HIV病人死亡率和医生的数量,试在控制国家后,分析HIV死亡率和当地医生数量是否有关?
who <- read.csv("WHO.csv", header = T)
x<- who[,c(2,4,120,291)]
y <- na.omit(x)
pcor(c(2,4,1),cov(y))
## [1] -0.6442
独立性检验用于两个或两个以上因素多项分类的计数资料分析,如果要研究的两个因素(又称自变量)或两个以上因素之间是否具有独立性或有无关联或有无交互作用的存在,就要应用\(\chi ^{2}\)独立性检验。如果两个自变量(暂以两个自变量为例)是独立的,即无关联,就意味对其中一个自变量(因素)来说,另一个自变量的多项分类次数上的变化是在取样误差的范围之内。假如两个因素是非独立,则称这二变量之间有关联或有交互作用存在。
例 vcd包中Arthritis数据集包含了关节炎的治疗情况(Treatment)、性别(Sex)和改善情况(Improved),治疗情况和改善情况是否独立?
mytable<-xtabs(~Treatment+Improved,data=Arthritis)
mytable
## Improved
## Treatment None Some Marked
## Placebo 29 7 7
## Treated 13 7 21
chisq.test(mytable)
##
## Pearson's Chi-squared test
##
## data: mytable
## X-squared = 13, df = 2, p-value = 0.001
p值较小,可以认为治疗情况和改善情况不独立。
对于大于2*2二维列联表,可以用Fisher精确检验
fisher.test(mytable)
##
## Fisher's Exact Test for Count Data
##
## data: mytable
## p-value = 0.001
## alternative hypothesis: two.sided
CMH检验可以对一些分层变量进行调整,从而获得反应率的总体比较。最为最为常见的应用是在多中心试验中对研究中心进行调整而进行两组率的比较。
例 vcd包中Arthritis数据集包含了关节炎的治疗情况(Treatment)、性别(Sex)和改善情况(Improved),在性别分层的情况下治疗情况和改善情况是否独立?
mytable<-xtabs(~Treatment+Improved+Sex,data=Arthritis)
mytable
## , , Sex = Female
##
## Improved
## Treatment None Some Marked
## Placebo 19 7 6
## Treated 6 5 16
##
## , , Sex = Male
##
## Improved
## Treatment None Some Marked
## Placebo 10 0 1
## Treated 7 2 5
mantelhaen.test(mytable)
##
## Cochran-Mantel-Haenszel test
##
## data: mytable
## Cochran-Mantel-Haenszel M^2 = 15, df = 2, p-value = 7e-04
P值较小,分性别来看,治疗情况和改善情况并不独立。
该方法用网格判断数据的集中程度,集中程度用最大信息系数(MIC,the Maximal Information Coefficient)表示,传统的相关系数得到结果用MIC值同样可以得到。该方法适用于任何分布的数据类型,不要求成两变量成直线关系。如果MIC值趋进于0,则两变量之间无关,如果MIC趋进于1,则两变量之间有关。
例 WHO数据集中有每10万人的HIV病人死亡率和医生的数量,试分析HIV死亡率和当地医生数量是否有关?
who <- read.csv("WHO.csv", header = T)
plot(who$Deaths.due.to.HIV.AIDS..per.100.000.population.per.year., who$Medical_Doctors)
cor.test(who$Deaths.due.to.HIV.AIDS..per.100.000.population.per.year.,
who$Medical_Doctors, method = "pearson")
##
## Pearson's product-moment correlation
##
## data: who$Deaths.due.to.HIV.AIDS..per.100.000.population.per.year. and who$Medical_Doctors
## t = -4.3, df = 120, p-value = 3e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.5068 -0.2008
## sample estimates:
## cor
## -0.3636
由于两变量不是线性关系,从线性相关的结果来看,相关性较差。
#调用MINE.jar,Java中列以0开始
col1 <- which(names(who) == "Deaths.due.to.HIV.AIDS..per.100.000.population.per.year.")-1
col2 <- which(names(who) == "Medical_Doctors")-1
source("MINE.r")
MINE("WHO.csv", c(col1, col2))
MINE("WHO.csv", "all.pairs") #两两比较所有变量
whoresult <- read.csv("WHO.csv,119-vs-290,cv=0.0,B=n^0.6,Results.csv",
header = T)
whoresult$MIC..strength.
## [1] 0.5495
MIC值大于0.5,说明两变量有一定的相关性,结合绘图的结果,两变量有如下关系:随着医生数量的增加,HIV的死亡率降低,但降低到一定程度后不再继续降低。
是一种不依赖与趋势结构的快速判断趋势是否存在的方法,它将数据一分为二,形成前后数对,根据数对差值的符号进行判断,如果负值较多,说明数据有增大趋势,如果正值较多,说明数据有减小的趋势。
例 某医院传染病门诊15天的门诊量如下:5 9 12 18 17 16 19 20 4 3 18 16 17 15 14,试问该15天内的门诊量是否有下降的趋势?
cox.stuart.test <- function(x) {
method = "Cox-Stuart test for trend analysis"
leng = length(x)
apross = round(leng)%%2
if (apross == 1) {
delete = (length(x) + 1)/2
x = x[-delete]
}
half = length(x)/2
x1 = x[1:half]
x2 = x[(half + 1):(length(x))]
difference = x1 - x2
signs = sign(difference)
signcorr = signs[signs != 0]
pos = signs[signs > 0]
neg = signs[signs < 0]
if (length(pos) < length(neg)) {
prop = pbinom(length(pos), length(signcorr), 0.5)
names(prop) = "Increasing trend, p-value"
rval <- list(method = method, statistic = prop)
class(rval) = "htest"
return(rval)
} else {
prop = pbinom(length(neg), length(signcorr), 0.5)
names(prop) = "Decreasing trend, p-value"
rval <- list(method = method, statistic = prop)
class(rval) = "htest"
return(rval)
}
}
customers = c(5, 9, 12, 18, 17, 16, 19, 20, 4, 3, 18, 16, 17, 15, 14)
cox.stuart.test(customers)
##
## Cox-Stuart test for trend analysis
##
## data:
## Decreasing trend, p-value = 0.11
P值大于0.05,接受原假设,可以认为该15天内的门诊量是没有下降的趋势。
Cochran Armitage 趋势检验也称\(\chi^{2}\)趋势检验,其目的是说明某一事件发生率是否随着原因变量不同水平的变化而呈线性趋势。
例 下表表示不同年龄血液病患者真菌感染发生情况 年龄 发生 未发生 — — — <=29 18 131 30~59 52 232 >=60 26 82
现欲比较患者年龄与真菌感染发生率之间是否存在线性趋势?
s1 <- c(18, 52, 26)
s2 <- c(131, 232, 82)
tot = s1 + s2
prop.trend.test(s1, tot)
##
## Chi-squared Test for Trend in Proportions
##
## data: s1 out of tot ,
## using scores: 1 2 3
## X-squared = 6.3, df = 1, p-value = 0.01
P值小于0.05,拒绝原假设,可以认为血液病患者年龄与真菌感染发生率之间存在变化趋势。
亦称student t检验(Student’s t test),主要是用于小样本(样本容量小于30)的两个平均值差异程度的检验方法。它是用T分布理论来推断差异发生的概率,从而判定两个平均数的差异是否显著,t检验适用与正态分布资料。检验的调用格式为:t.test(y~x,data)其中的y是一个数值型变量,x是一个二分变量。调用格式或为:t.test(y1,y2)其中的y1和y2为数值型向量(即各组的结果变量)。可选参数data的取值为一个包含了这些变量的矩阵或数据框。
单个样本t检验又称单样本均数t检验(one sample t test),适用于样本均数与已知总体均数\(\mu _{0}\)的比较,其比较目的是检验样本均数所代表的总体均数\(\mu\)是否与已知总体均数\(\mu _{0}\)有差别,单样t检验的应用条件是总体标准s未知的小样本资料( 如n<50),且服从正态分布。单样本的t检验计算公式为\(t=\frac{\bar{X}-\mu _{0}}{s/\sqrt{x}}\)
例 某地35名难产儿出生体重为3.38 3.51 4.08 4.44 3.44 3.25 3.49 3.29 3.93 4.06 3.29 2.99 3.87 3.19 3.30 3.45 3.50 3.52 3.01 3.80 3.20 3.64 3.85 4.09 3.53 3.93 3.29 3.70 4.13 3.81 2.96 4.44 3.98 2.82 4.23,一般婴儿出生体重\(\mu _{0}\) 3.30(大规模调查获得),问相同否?
weight <- c(3.38,3.51,4.08,4.44,3.44,3.25,3.49,3.29,3.93,4.06,3.29,2.99,3.87,3.19,3.30,3.45,3.50,3.52,3.01,3.80,3.20,3.64,3.85,4.09,3.53,3.93,3.29,3.70,4.13,3.81,2.96,4.44,3.98,2.82,4.23)
shapiro.test(weight) #正态性检验
##
## Shapiro-Wilk normality test
##
## data: weight
## W = 0.97, p-value = 0.6
t.test(weight,alternative = "two.side",mu=3.30)
##
## One Sample t-test
##
## data: weight
## t = 4.4, df = 34, p-value = 1e-04
## alternative hypothesis: true mean is not equal to 3.3
## 95 percent confidence interval:
## 3.466 3.756
## sample estimates:
## mean of x
## 3.611
P值小于0.05,可以认为两地的出生体重有差异。
配对样本均数t检验简称配对t检验(paired t test),又称非独立两样本均数t检验,适用于配对设计计量资料均数的比较,其比较目的是检验两相关样本均数所代表的未知总体均数是否有差别。配对设计(paired design)是将受试对象按某些重要特征相近的原则配成对子,每对中的两个个体随机地给予两种处理。应用配对设计可以减少实验的误差和控制非处理因素,提高统计处理的效率。配对t检验的公式为\(t=\frac{\bar{d}}{s_{d}/\sqrt{n}}\) 配对设计处理分配方式主要有三种情况:①两个同质受试对象分别接受两种处理,如把同窝、同性别和体重相近的动物配成一对,或把同性别和年龄相近的相同病情病人配成一对;②同一受试对象或同一标本的两个部分,随机分配接受两种不同处理;③自身对比(self-contrast)。即将同一受试对象处理(实验或治疗)前后的结果进行比较,如对高血压患者治疗前后、运动员体育运动前后的某一生理指标进行比较。
例 某单位研究饮食中缺乏VE与肝中VA的关系,将同种属的大白鼠按性别相同,年龄、体重相近者配成对子,共8对,并将每对中的两头动物随机分到正常饲料组和VE缺乏组,过一定时期将其处死,测得肝中VA的含量。问不同饲料组大白鼠肝中VA的含量有无差别?
| 大白鼠对号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 8 | |
|---|---|---|---|---|---|---|---|---|
| 正常饲料组 | 3550 | 2000 | 3000 | 39 | 50 | 3800 | 3750 | 3450 3050 |
| VE缺乏组 | 2450 | 2400 | 1800 | 3200 | 32 | 50 | 2700 | 2500 1750 |
normal <- c(3550,2000,3000,3950,3800,3750,3450,3050)
ve <- c(2450,2400,1800,3200,3250,2700,2500,1750)
t.test(normal,ve,paired = T)
##
## Paired t-test
##
## data: normal and ve
## t = 4.2, df = 7, p-value = 0.004
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 355.8 1269.2
## sample estimates:
## mean of the differences
## 812.5
P值小于0.05,可以认为不同饲料组大白鼠中VA含量有差异。
两独立样本t 检验(two independent samples t-test),又称成组 t 检验,适用于完全随机设计的两样本均数的比较,其目的是检验两样本所来自总体的均数是否相等。完全随机设计是将受试对象随机地分配到两组中,每组对象分别接受不同的处理,分析比较处理的效应。或分别从不同总体中随机抽样进行研究。两独立样本t检验要求两样本所代表的总体服从正态分布且两总体方差相等,即方差齐性(homogeneity of variance, homoscedasticity)。 若两总体方差不等,即方差不齐,可采用t’检验,或进行变量变换,或用秩和检验方法处理。\(t=\frac{\bar{x_{1}}-\bar{x_{2}}}{\sqrt{s^{2}/n_{1}+s^{2}/n_{2}}}\),\(s^{2}=\frac{(n_{1}-1)s_{1}^{2}+(n_{2}-1)s_{2}^{2}}{n_{1}+n_{2}-2}\)
例 25例糖尿病患者随机分成两组,甲组单纯用药物治疗,乙组采用药物治疗合并饮食疗法,二个月后测空腹血糖(mmol/L)甲组8.4 10.5 12 12 13.9 15.3 16.7 18 18.7 20.7 21.1 15.2 乙组 5.4 6.4 6.4 7.5 7.6 8.1 11.6 12.0 13.4 13.5 14.8 15.6 18.7,假设两组方差齐,问两种疗法治疗后患者血糖值是否相同?
x <- c(8.4,10.5,12,12,13.9,15.3,16.7,18,18.7,20.7,21.1,15.2)
y <- c(5.4,6.4,6.4,7.5,7.6,8.1,11.6,12.0,13.4,13.5,14.8,15.6,18.7)
shapiro.test(x)
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.97, p-value = 0.9
shapiro.test(y)
##
## Shapiro-Wilk normality test
##
## data: y
## W = 0.93, p-value = 0.3
t.test(x,y,var.equal = T)
##
## Two Sample t-test
##
## data: x and y
## t = 2.6, df = 23, p-value = 0.01
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 0.9444 7.7800
## sample estimates:
## mean of x mean of y
## 15.21 10.85
tIndDf <- data.frame(DV=c(x, y),IV=factor(rep(c("f", "m"), c(length(x),length(y)))))
t.test(DV ~ IV, var.equal=TRUE, data=tIndDf)
P值小于0.05,可以认为两种疗法治疗后患者血糖值不相同。