之前有数据需要可视化相关系数。我拿来数据之后也没有多想,环境因子标准化后直接算pearson相关性。做完之后想到数据可能不符合正态分布,用Shapiro test 和Bartlett test分别检验数据的正态性和方差齐性,结果果然不符。于是又用spearman做了一遍。但是结果和别人的还不一样,后来才发现是标准化之前的处理不一样。我是忽略缺失值进行标准化,而别人是先将缺失值赋值为0再标准化。结果就出现了下面的四张图。
关于检验数据的正态性,详见:
颜色表示相关性,从红色到蓝色递减。星号表示显著性,*为P<0.05; **为P<0.01; ***表示P<0.001。
A为spearman相关系数,环境因子缺失的填0进行标准化。
B为pearson相关系数,环境因子缺失的填0进行标准化。
C为spearman相关系数,忽略环境因子的缺失进行标准化。
D为pearson相关系数,忽略环境因子的缺失进行标准化。
不同方法及标准化得到的相关系数和显著性存在着非常明显的差异。如果不说根本看不出来是一套数据。
相关性
Pearson是计算连续型正态分布变量之间的线性相关关系。
spearman不要求正态连续,但数据至少是有序的,呈现非线性相关。
如果数据不符合正态分布,当然也可以用pearson算,但是结果的准确性就很差了。可能计算出来的样本具有相关性,能够表示你的样本变量直接是相关的,但不能反应整体中这两变量是否依然相关,因为总体的分布未知。
所以不符合正态分布的数据、以及不知道是啥分布的数据,老老实实用spearman计算。
标准化
关于标准化的方法目前非常多。这里只说标准化之前的处理。对于微生物的数据,NA和0的意义是完全不同的。
NA表示缺失,即这个点没有进行测量。
而0表示这个点进行了测量,其测量结果为0。
所以我认为对环境因子标准化直接忽略缺失值进行标准化即可,不能先把缺失的地方赋值为0再进行标准化。
很多文章里的方法也存在这种问题,细节的方法没有说清楚,导致自己做的时候并不能重现。我总结了一下,方法的选择可能有以下几个原因:
1.这个方法是正确可用的。基于此,图1中我们应该选C用的方法,即spearman相关系数,忽略环境因子的缺失进行标准化。
2. 看文献用的啥我也用啥;
3. 工具里默认或者推荐的方法;
4. 这个方法容易做,省时间省精力;
5. 紧跟潮流,用最新出的方法;
5. 这个方法得到了我想要的结论,所以选他。这种情况在文章里对方法的描述必然就含糊不清。基于这个思路,如果我想得到图1中“5”号因素显著的结果 ,就选B。如果想得到“6”号因素显著的结果 ,就选C或D。如果想让显著性高一些,就选C。完全不想要“6”号因素显著,就选A。
END