第九节 R软件的应用
一、参数检验
什么是正确的检验统计?回想一下关于t分布是一个小的均值的抽样分布(当n<30时,不能近似为正态分布)。由于我们的兴趣在于检验样本的平均值,使用t分布作为我们的样本分布。
> percentCorrect
[1] 0.467 0.645 0.8680.472 0.844 0.879 0.405 0.604 0.787 0.449 0.772 0.780
>sampleMean<-mean(percentCorrect)
> sampleMean
[1] 0.6643333
> mu<-0.5
>s<-sd(percentCorrect)
> s
[1] 0.1792481
>n<-length(percentCorrect)
> n
[1] 12
>testStatistic<-(sampleMean-mu)/(s/n^0.5)
> testStatistic
[1] 3.175863
我们使用0.05的显著水平来执行我们的检验并达到我们的结论,在R软件的帮助下。在零假设下,让我们绘制我们的检验统计数据落在采样点上的位置:
> x <-seq(-5,5,by=.1)
>plot(x,dt(x,df=n-1),xlab="t",ylab="",type='l')
>abline(v=testStatistic,lty=2)
>legend(3,0.2,legend="3.175863")

我们可以在R中使用1 - pt函数来确定到达的概率检验统计的右侧:
>1-pt(testStatistic,df=n-1)
[1] 0.004413
这告诉我们只有0.44%的概率质量函数在右边我们的检验统计。给定5%的截止α值(每个尾部2.5%分布),我们的检验统计量超过2.5%,所以我们达到了决定我们拒绝零假设并且得出结论:真正的意思是数据与0.05显著不同,并且遵循不同的分布。在零假设下的分布(换句话说,我们的样本检验统计不是来自空分布)。
或者为了确定我们的值是否太过于极端,我们可以计算出来,使用qt函数分布的两个尾部临界点的t分布值:
>alpha<-0.05
>qt(alpha/2,df=n-1)
[1]-2.200985
>qt(1-alpha/2,df=n-1)
[1]2.200985
对于一些检验,R提供了一些计算能力。两个函数,power.t.test和power.prop.test,内置于ctest包自动化中功率计算具有灵活的参数,允许用户输入标准他们希望为了有R计算其他标准。
例如,power.t.test特定于计算能力相关值对于t检验(并且对于不同版本的t检验具有可选参数,单边与双边等)。例如,假设我们想知道在α= 0.05的显著性水平下给定大小为n = 20的样本的测试的功效。
我们可以指定这些参数,也可以指定delta值,这就是我们希望能够发现的人群之间的差异。例如,假设我们想要检测空分布之间的0.5个单位的差异和我们的备择假设,为此我们使用delta = 0.5。(测量单位是没关系的,但假定默认标准偏差为1,如果需要,可以使用“sd”选项更改)。对于检验的类型,我们需要指定“one.sample”。稍后我们将讨论其他类型的t检验,例如两个样本配对,因为哪个功效也可以用这个来计算的命令。
>power.t.test(n=20,delta=0.5,sig.level=0.05, type=”one.sample”)
One-samplet test power calculation
n= 20
delta= 0.5
sd= 1
sig.level= 0.05
power= 0.5645
alternative= two.sided
注意上面检验的功效只有0.5645,这不是很高。也许如果我们寻找一个不太微妙的差异,比如delta = 1,我们应该得到一个更高的功效检验,如下:
>power.t.test(n=20,delta=1,sig.level=0.05, type="one.sample")
One-samplet test power calculation
n= 20
delta= 1
sd= 1
sig.level= 0.05
power= 0.9886
alternative= two.sided
事实上,这个检验的功效是0.9886,意味着98.86%的时间检验应该拒绝零假设。这并不糟糕,比0.5645更好的结果来检验0.5的增量。也许我们认为使用更少的样品是一个好主意,也许可以节省经费。让我们来看看将样本大小减少到10的效果如何检验:
>power.t.test(n=10,delta=1,sig.level=0.05, type="one.sample")
One-samplet test power calculation
n= 10
delta= 1
sd= 1
sig.level= 0.05
power= 0.8031
alternative= two.sided
因素相同,减少样本量可将检验的功效降至0.8031。也许它支付使用n = 20作为一个样本大小?为了显示显著性水平的影响或许我们可以用n = 10的样本量来计算,但是而是使用更高的
水平。
>power.t.test(n=10,delta=1,sig.level=0.1, type="one.sample")
One-samplet test power calculation
n= 10
delta= 1
sd= 1
sig.level= 0.1
power= 0.8975
alternative= two.side
例如,假设我们进行了一个两个花朵的实验,基因型产生具有假定白花(隐性)的后代,比例20%和紫色花朵(显性)假设的后代比例75%。假设我们想检验我们的假设(零假设)
鉴于我们拥有来自900家农场的经验数据,这些比例是正确的,其中625朵有紫色的花朵,其余的(275朵)有白色的花朵。为了做到这一点,我们可以使用binom.test函数,带参数x =紫色的花数,n =样本中的总数,以及p =成功的比例是3/4。
>binom.test(x=625,n=900,p=3/4)
Exactbinomial test
data:625 and 900
numberof successes = 625, number of trials = 900, p-value = 0.0001593
alternativehypothesis: true probability of success is not equal to 0.75
95percent confidence interval:
0.6631930.724417
sampleestimates:
probabilityof success
0.6944444
二、非参数检验
非参数检验对概率没有或者很小有密度假设数据中抽出。它们在样本太小时使用很多,当数据非正态分布时(用Q-Q图测试数据),并且不能近似为正态分布情况,并且当使用非数字(等级,分类)数据。许多非参数检验都内置在R软件中,或者作为软件包ctest的一部分。作为附加软件包的一部分。有十几种非参数检验正在使用中。
Conover的文章“Practical Nonparametric”是进一步研究的一个很好的资源。测试大多数统计数据非参数检验不是来自标准分布,相反而是根据检验特定的检验统计量和获得的值计算。
单样本Wilcoxon检验通常被称为“Wilcoxon符号排序”测试。该检验确定经验数据的中位数是否不同,显著来自假设的中位数。这个检验在R中使用非常简单,只需输入数据向量和假设中位数(“mu”)作为参数即可。例如,让我们使用Wilcoxon测试来测试是否蛋白质预测百分比中位数与0.5不同。
>wilcox.test(percentCorrect,mu=0.5)
Wilcoxonsigned rank test
data:percentCorrect
V= 68, p-value = 0.02100
alternativehypothesis: true mu is not equal to 0.5

