查看原文
其他

如果你想长时间待在实验室,那就把自己最好的设备都放在这里。

包子 果子学生信 2023-06-15

果子唠嗑

这是我的师弟自告奋勇要求投稿的帖子。我这个师弟叫包子,是位健身达人,身体很强壮,最近得了重感冒。

包子在医学硕士毕业的时候,进入了航空圈,报考了飞行员,身体测试的时候,前面一个个选手因为紧张出现高血压,包子因为是医生,立马打电话喊朋友买了点倍他洛克(降心率的药物)送过来,第一次用专业技能平复了自己的血压,顺利地进入面试阶段。但是,最后还是因为热爱科研大于热爱飞机选择读博。

包子热爱学习,以至于他强烈地影响了我们组的人看他的眼光,他的每一个举动都必须得跟学习对接起来,比如,他买降噪耳机是为了排除干扰,他买了电竞椅是为了更加专心致志地坐着学习,他买新的衣服是为了给自己更好地心情这样不至于学习起来乏味。

这段时间他改变了很多,天天从早到晚待在实验室,完全不是以前的状态。他接受了我的一个建议

如果你想长时间待在实验室,那就把自己最好的设备都放在这里。

包子买了大屏幕,买了电竞椅,买了靠枕,买了加热颈部的护颈。而我呢,比他多一点,两个27寸曲面屏,音响,高配台式机,录音设备,高清摄像头,折叠床。

当你能够长时间做一件事情,无论是好是坏,都会有产出。他说这是最近整理的统计学知识,关于t检验的。我一看确实是花了心思的,就同意他发出来。但是毕竟他现在还处于航空圈到学术圈的转型阶段,还有很长的路要走,进步空间很大,但是好在已经在路上,大概率是要越走越远的人。我愿意在这条路上竭尽所能帮助他。

今天老板回来,问我最近怎样,我说,组上现在很快乐,大家在一起互相帮助做点事情,很开心。

以下是今天的正文哈。

为什么要学习统计学

其实和很多人一样,我曾经也很排斥学统计学,看不懂其中复杂的数学公式,种类繁多的统计学方法,这些东西曾经让我很长一段时间被统计学拒之门外,直到有一天看电影《美国队长2》中那么一段对话:

希特维尔:索拉的算法是一个程序,用来选择和洞悉目标。
美国队长:什么目标?
希特维尔:你、开罗的一个主持人、国防部副部长、爱荷华市的一个高中毕业生、布鲁斯班纳、奇异博士。所有可能威胁到九头蛇的人,不管现在还是未来。
美国队长:未来?怎么可能知道?
希特维尔:怎么会不知道?21世纪是一本数码书,索拉教会九头蛇如何读这本书。你们的银行记录、病历、投票模式、电子邮件、通话信息,还有大学考试成绩。索拉的算法会评估人们过去,预测他们的未来。

毕竟九头蛇都开始学习数据分析了,坏人们都那么努力,看超级英雄电影长大的我决定要把这件事要做起来了。

既然我们有了学习统计学的动力(假如你也和我一样有着某天拯救世界的幻想),那么我们要从什么地方开始学习成为了最头疼的问题,思考这个问题源于我接到我一个同学的电话,电话里她很着急的问我:

t检验和F检验有什么区别,为什么她用统计软件算出的结果一个p值小于0.05,一个p值大于0.05,该怎么解释这个结果。

其实当时我听到这里,嘴角露出了一丝诡异的微笑(果子:我觉得是女同学),毕竟偷偷学习了这么久统计学,终于有发挥的余地了,于是我就开始深情并茂的解释,什么是中心极限定律,什么是样本统计量,什么是总体参数,什么样的数据可以使用t检验,t检验使用不了还可以使用非参数检验…..我也不知道我就这样讲了多久,并且还几度凝噎,因为想起了那些死啃统计学知识的艰苦夜晚。然而,沉默的电话那头只默默蹦出了三个字:没听懂!并且还补充说到,你可不可以直接告诉我这个东西怎么用。

好吧,我们已经有无数的计算机和软件可以替代我们去计算,因此我们最花时间的事情反而是如何去整理数据并且解读得到的结果,那我们就来试一下先不去纠结t检验的计算过程,而直接通过结果来解释我们的数据。

我的数据能使用t检验吗?

因为t检验使用比较普遍,我在学习统计学之前也一度的认为只要比较差异就可以使用t检验,但是事实并不是这样,在把你的数据用t检验之前,应该做以下几件事情:
1.确定自己的数据只有两组,因为在多组数据的比较当中,使用t检验会增加阳性错误;
2.检验自己的数据是否严重的偏态,换句话说就是数据的分布不符合正态分布,因为t检验主要比较的是两组数据均值的差异,如果你的数据严重的偏态,均值便不能反应数据的真实情况,但是这里强调的是严重的偏态,多数统计学家还是认为轻微偏态对结果影响不会太大,仍可以使用t检验,但是评判标准比较主观,我们可以后面再讨论。
3.确定两组方差是否相等,与正态性检验一样,在方差相等的检验中,其无效假设为“两组方差相等”,因此我们只需要记住,F检验中,P<0.05时,就可以认为两组方差不等。
4.确保检验的两组数据没有明显的相关性,换句话说就是两组数据相互独立。

其实整理数据稍微麻烦一点的地方是判断数据是否偏态和检验方差是否相等,我们之前已经说了,今天我们不纠结算法,因为有太多的工具帮助我们计算,我在这里给大家介绍的就是通过R语言的方法快速的判断数据是否正态和方差齐性的方法:
1.首先是判断正态分布
有个最简单的方法,就是画图来判断:

#我们先随机建立一个正态分布模型x
x <- rnorm(1000,0,2)
qqnorm(x)

如果数据符合正态分布应该是这样的一个图形:

但是这样太过主观,因此我们可以用计算检验的方法来验证数据是否符合正态分布,我建议使用两种方法同时验证(反正都是电脑计算,也花不了多少时间):
我们读入一个数据集:

rt=read.table("response.txt",header=T,sep="\t")
head(rt)
                   response1 response2       NLR       PLR       LMR       NMR
1 Non-responder (SD and PD)    Non-PCR 1.1863636  77.27273 12.941176 15.352941
2  Responder (pCR,CR and PR)   Non-PCR 1.8333333 124.00000  3.260870  5.978261
3  Responder (pCR,CR and PR)   Non-PCR 4.0219780 212.63736  2.716418 10.925373
4  Responder (pCR,CR and PR)   Non-PCR 1.7387387 119.81982  5.842105 10.157895
5  Responder (pCR,CR and PR)   Non-PCR 0.8391608  65.03497  6.085106  5.106383
6  Responder (pCR,CR and PR)   Non-PCR 5.9855072 132.60870  1.971429 11.800000

这个数据集收集的是病人经过新辅助治疗后,相关血液指标数据与病人预后的关系,其中NLR、PLR、LMR、NMR是四个连续变量,response1和response2是两个分类变量。

首先可以用Shapiro-Wilk test(SW),样本小于2000的最佳选择,并且我们选择NLR这一列来计算,计算代码如下:

shapiro.test(rt$NLR)


Shapiro-Wilk normality test
data:  rt$NLR
W = 0.85958, p-value < 2.2e-16

结果解释
W值:W越大,越接近1,表示样本数据越接近正态分布
p值:如果p-value小于显著性水平α(0.05),则拒绝H0(H0:数据符合正态分布),则不符合正态分布
(我的这个数据便不符合正态分布)

第二种算法Anderson–Darling test(AD),这是效率最高的一种算法,代码如下:

##首先要安装一个nortest的包
install.packages("nortest")
library(nortest)
ad.test(rt$NLR)

Anderson-Darling normality test
data:  rt$NLR
A = 24.24, p-value < 2.2e-16

结果解释
A值:A越小,越接近0,表示样本数据越接近正态分布
p值:如果p-value小于显著性水平α(0.05),则拒绝H0(H0:数据符合正态分布),则不符合正态分布。
从两种不同的算法我们得到了同样的结果,就是该数据不符合正态分布。
值得注意的是:当样本足够大时,只要数据稍有一点偏离正态分布,p 值就总能小于 0.05,因AD和SW检验的结果总是倾向于显示数据为非正态分布,因此仍然需要我们结合实际情况来判断。

2.判断方差是否相等
当然方差齐性检验的方法很多,但是比较常用方法是Bartlett检验,我们同样用上面的数据集来试一下(这里我们就将数据分为两组,一组是Responder组的NLR,一组是Non-responder组的NLR):

#首先要安装一个car包
install.packages("car")
library(car)
bartlett.test(rt$NLR~rt$response1)

Bartlett test of homogeneity of variances
data:  rt$LMR by rt$response1
Bartlett's K-squared = 150.99, df = 1, p-value < 2.2e-16

结果解释:因为P<0.05,所以拒绝原检验(方差相等),所以两组数据NLR的方差不齐。

t检验登场

在真正开始t检验之前,我们先简单了解下t检验家族的成员,包括:单样本的t检验,独立样本t检验和配对样本t检验,今天我们先解决我们使用较多,最容易接触到的独立样本t检验

之前我们导入了一组数据,通过提前对数据的整理发现,似乎我们的数据不适合进行t检验,但是这里我们为了学习,我们假设我们的这组数据是正态分布,并且方差相等的“完美数据”,那么我们就可以开始进行t检验的计算了,在进行t检验之前,我们提出一个科学问题,我们想要了解Responder组的病人NLR与Non-responder组的病人NLR的差异是否有统计学意义,计算代码如下(两独立样本t检验):

t.test(rt$NLR~rt$response1)
Two Sample t-test

data:  rt$NLR by rt$response1
t = -0.94226, df = 806, p-value = 0.3463
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.23256679  0.08170545
sample estimates:
mean in group Non-responder (SD and PD)   mean in group Responder (pCR,CR and PR) 
                                2.227165                                 2.302595 

结果解释:我们可以看到P值为0.3463,无法拒绝假设检验,则可以解释为Responder组的病人NLR与Non-responder组的病人NLR在统计学上不存在差异。并且从计算出的均值也可以看到,它们的差异不是很显著(2.227165 vs 2.302595)。

当我们将NLR换为LMR(另一组数据时),计算结果如下:

t.test(rt$LMR~rt$response1)

Two Sample t-test

data:  rt$LMR by rt$response1
t = 2.9018, df = 806, p-value = 0.003811
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 0.4304434 2.2301986
sample estimates:
mean in group Non-responder (SD and PD)   mean in group Responder (pCR,CR and PR) 
                                6.999463                                 5.669142 

这是P<0.05,可以认为Responder组的病人LMR与Non-responder组的病人LMR在统计学上存在差异,并且在两组数据均值上我们也可以看到明显的差异(6.999463 vs 5.669142)。

是时候使用非参数检验了

wilcoxon检验也称非参数检验,并不要求成对数据之差服从正态分布,只要求对称分布即可,并且在两组方差不齐的时候我们也可以使用wilcoxon检验替代t检验,因此我们之前导入的数据似乎更适合使用非参数检验,我们先将数据代入查看一下结果:

wilcox.test(rt$NLR~rt$response1)

Wilcoxon rank sum test with continuity correction
data:  rt$NLR by rt$response1
W = 64565, p-value = 0.4202
alternative hypothesis: true location shift is not equal to 0

通过结果我们可以看到,wilcoxon检验与t检验的结果是一致的,P>0.05,两组差异无统计学意义。

虽然同t检验相比,似乎非参数检验需要的前提条件较少,但是因为算法的原因(这次我们先不纠结算法的问题),得到的结论其实会比t检验更加的模糊,所以在符合t检验使用条件的情况下,在比较两组数据均值差异的时候,还是更建议使用t检验

最后总结

如果要进行两独立样本的t检验,可以很快的通过如下步骤实现:

  1. 首先用Shapiro-Wilk test(SW)和 Anderson–Darling test(AD)法验证数据是否符合正态分布,并且通过qq图来判断偏态的程度(只要数据量比较大,即使原数据有点偏离正态分布,使用 t 检验也不会有大问题);

  2. 使用Bartlett检验数据在不同的水平下方差是否相同;

  3. 并且通过上述两步的结果来决定使用t检验还是wilcoxon检验(选择是一门科学,也是艺术)。

统计学其实是一个大坑,需要无数日日夜夜一点一点的填满,但是就像果子老师经常讲的那样,学习和健身是值得坚持终身的事情,我们一起加油。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存