专栏名称: 生信媛
生信媛,从1人分享,到8人同行。坚持分享生信入门方法与课程,持续记录生信相关的分析pipeline, python和R在生物信息学中的利用。内容涵盖服务器使用、基因组转录组分析以及群体遗传。
目录
相关文章推荐
51好读  ›  专栏  ›  生信媛

z-score会改变数据分布吗

生信媛  · 公众号  · 生物  · 2019-11-04 20:57

正文

请到「今天看啥」查看全文


z-score会改变数据分布吗

先说结论: z-score 不会 修改原来的数据分布。


这篇是 z-score的标准化究竟怎么弄? 中如下内容的修订

那么默认参数下,我们就是对矩阵按列进行z-score的标准化。检验标准很简单,计算标准化的数据的均值和标准差,因为z-score的结果就是让数据服从均值为0,标准差为1的正态分布。

里面说z-score的效果是让数据转换成正态分布的说法是不正确的。z-score的效果就是让变换后的数据的均值为0,标准差为1,不会改变原来的数据分布。(每当看到0和1,就不自觉地想到标准正态分布,真是尴尬呀)

当然这篇文章不只是纠正一个错误而已,还想介绍一个除了搜索以外还有什么方法是可以验证自己的想法的方法。这个方法很简单,就是 实践出真知

因为我原来的观点是z-score会改变了数据分布,那么最简单的验证方法就是找一个原本不是正态分布的数据做一个z-score变换,观察前后的数据分布即可。而这个可以通过R语言实现。

什么样的分布不是正态分布呢?

  1. x 1:100

  2. y 1:100

  3. mean(y) # 50.5

  4. sd(y) # 29.01149

  5. plot(x,y, pch=".")


嗯,这个肯定不是正态分布!

之后,我们将y进行z-score变换,也就是 scale 一下

  1. y.s scale(y)

  2. mean(y.s) # 0

  3. sd(y.s) # 1

  4. plot(x,y.s, pch=".")


原来是什么分布,z-score变换之后还是原来的分布。因为z-score做的事情是将数据整体偏移(减法)保证了均值为0,随后进行压缩(除法),保证了方差为1。

最后说一句: 尽管我们可以通过学习别人的经验来获取知识,但网络上的资料未必都非常优秀(包括我的),有一些内容是笔误,有一些内容是作者没有搞清楚就写,因此,有些时候你还需要通过自己实践才行。








请到「今天看啥」查看全文