反正态分布算法

"反正态分布算法"这个词在中文语境下通常指的是标准正态分布累积分布函数(CDF)的"反函数"算法

在统计学和计算机科学中,它有一个更专业的名称:分位数函数 (Quantile Function) 或 Probit 函数

简单来说,它的逻辑是反过来的:

  • 正态分布 (Normal Distribution):给你一个数值(比如 Z分数),告诉你它落在某个范围的概率是多少。

  • 反正态分布 (Inverse Normal):给你一个概率 (比如 95%),告诉你对应的数值(Z分数)是多少。

直观理解:从"排名"推"分数" 为了让你秒懂,我们拿考试打比方:

  • 场景:全班考试成绩服从正态分布,平均分 60,标准差 10。

  • 正态分布 (CDF):

    • 问:"我考了 80 分,我打败了百分之多少的人?"

    • 答:"算出 Z 分数是 2.0,查表得知你打败了 97.7% 的人。"

  • 反正态分布 (Inverse CDF):

    • 问:"我想排在前 5%(也就是打败 95% 的人),我至少要考多少分?"

    • 答:"输入概率 0.95,通过算法算出 Z 分数是 1.645,换算回分数是 76.45 分。"

所以,"反正态分布算法"就是计算机用来回答第二个问题的数学工具。

反正态转换(Inverse Normal Transformation, INT)的过程示例

我们用一个简单的例子来说明反正态转换的过程。假设有 10 个样本的甲基化 β 值如下:

原始数据(甲基化 β 值):

0.1, 0.2, 0.4, 0.5, 0.3, 0.9, 0.7, 0.8, 0.6, 0.05

步骤 1:对 β 值进行排序

首先对这些 β 值进行升序排序,得到每个值的排序位置。

排序后的值 排序位置
0.05 1
0.1 2
0.2 3
0.3 4
0.4 5
0.5 6
0.6 7
0.7 8
0.8 9
0.9 10

步骤 2:计算分位数

接下来,计算每个排序位置的分位数。分位数可以通过以下公式计算:

分位数=排名总样本数+1 \text{分位数} = \frac{\text{排名}}{\text{总样本数} + 1} 分位数=总样本数+1排名

计算每个值的分位数:

排序位置 分位数
1 0.091
2 0.182
3 0.273
4 0.364
5 0.455
6 0.545
7 0.636
8 0.727
9 0.818
10 0.909

步骤 3:将分位数转换为标准正态分布下的 z 分数

使用正态分布的累积分布函数的反函数(qnorm),将分位数映射到标准正态分布下的 z 分数。标准正态分布的 z 分数表示每个分位数在标准正态分布中的位置。

通过 R 中的 qnorm() 函数,我们可以得到:

{r} 复制代码
qnorm(c(0.091, 0.182, 0.273, 0.364, 0.455, 0.545, 0.636, 0.727, 0.818, 0.909))

步骤 4:映射到原始数据顺序

最后,将这些 z 分数映射回原始数据的顺序:

原始 β 值 排序位置 分位数 正态分布 z 分数
0.1 2 0.182 -0.91
0.2 3 0.273 -0.60
0.4 5 0.455 -0.11
0.5 6 0.545 0.11
0.3 4 0.364 -0.35
0.9 10 0.909 1.34
0.7 8 0.727 0.60
0.8 9 0.818 0.91
0.6 7 0.636 0.35
0.05 1 0.091 -1.34
相关推荐
万法若空30 分钟前
对数恒等式
人工智能·算法·机器学习
AI小码1 小时前
如何让AI帮你构建项目?七级方法
人工智能·算法·计算机·ai·程序员·大模型·编程
1000世界小札1 小时前
排序算法全景总结:从 O(n²) 到 O(n log n),再到线性时间(附完整对比与选型指南)
数据结构·算法·排序算法
一直C1 小时前
【Linux应用编程】深入理解Linux多任务机制:进程原理、状态转换与进程控制实战
linux·开发语言·算法·ubuntu·vim·visual studio code
玉树临风ives2 小时前
atcoder ABC 472 题解
数据结构·c++·算法
AI服务老曹2 小时前
抽烟识别算法接入 AI 视频分析平台的流程与误报优化指南
人工智能·算法·音视频
阳明山水2 小时前
销量预测2025—2026:技术演进、实证发现与系统架构的系统性综述
人工智能·深度学习·算法·机器学习·架构
伯远医学2 小时前
RIP-seq 高分文献案例分享
java·前端·javascript·人工智能·算法·eclipse·html
啊嘞嘞?2 小时前
力扣(LRU缓存)
算法·leetcode
珂朵莉MM2 小时前
2026国信杯具身智能创新大赛-编程技能赛--本科组国赛解题报告 | 珂学家
算法·深度优先·图论