非常通俗、生活化的语言重新解释一下 normalize.quantiles() 到底干了什么?

概要

解释R中normalize.quantiles()的使用

主题内容

library(preprocessCore)

c <- matrix(c(5,2,3,
              4,1,6,
              3,4,6), nrow=3)
colnames(c) <- c("A", "B", "C")
rownames(c) <- c("gene1", "gene2", "gene3")

具体解释

当然可以!我们来用非常通俗、生活化的语言重新解释一下 normalize.quantiles() 到底干了什么,你一定能理解!


🎯 场景类比:学生成绩

假设我们有 3 个老师(A、B、C),分别给同一批 3 个学生打分,但每个老师评分标准不同:

老师A老师B老师C
学生1543
学生2214
学生3366

可以看到:

  • 老师B可能打分都很低(1~6);
  • 老师C可能喜欢打高分;
  • 老师A中规中矩;

❗问题:

现在我们想分析学生表现,但每个老师的打分标准不一样,直接比较会不公平。


✅ 目标:

让每个老师的打分分布“看起来一样”,以便公平对比每个学生的相对位置(排名)是否一致。


✨解决办法:normalize.quantiles()

🪄 它做了三件事:


✅ 第1步:对每列(老师)打分排序(不改变顺序,只记录名次)

排名老师A老师B老师C
第1名(最低分)213
第2名344
第3名(最高分)566

✅ 第2步:对每个“名次”取所有老师平均分

排名平均分数
第1名(2+1+3)/3 = 2
第2名(3+4+4)/3 = 3.67
第3名(5+6+6)/3 = 5.67

✅ 第3步:把平均值替换回原表格,但保留原来每个老师对每个学生的排名

谁是第1名就给他2分,谁是第2名就给他3.67,谁是第3名就给他5.67


✅ 最终结果(位置和原始名次一样,但分布一致)

老师A老师B老师C
学生15.673.672.00
学生22.002.003.67
学生33.675.675.67

✅ 数据分布比较

在这里插入图片描述

✅ 左边图:标准化前(原始数据)
  • 三列(样本 A、B、C)分布明显不同
  • A 比较中等,B 分布更分散,C 偏高。

✅ 右边图:标准化后(分位数标准化)
  • 所有列的分布几乎完全一致;
  • 每一列的“数据分布形状”统一了;
  • 可以更公平地做后续分析,比如比较每个基因在不同样本间的相对表达。

这正是 normalize.quantiles() 的作用核心:

📊 将多个样本的数值分布调整为一致的“排名形状”,以便公平比较。


如果你愿意,我可以直接画图对比标准化前后的分布差异,让你一眼看懂要不要?🎨

小结

normalize.quantiles() 的核心思想是:

你保留原来的名次,但我统一你们打分的尺度”——这样就可以公平比较啦!


针对同一个基因不同处理方式,可以使用这种方式表示在不同处理方式的排名,从而比较不同的处理后的该基因的表达值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值