反正态分布算法

"反正态分布算法"这个词在中文语境下通常指的是标准正态分布累积分布函数(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
相关推荐
王老师青少年编程2 小时前
csp信奥赛c++中的递归和递推研究
c++·算法·递归·递推·csp·信奥赛
Bczheng12 小时前
五.serialize.h中的CDataStream类
算法·哈希算法
小O的算法实验室2 小时前
2025年SEVC,考虑组件共享的装配混合流水车间批量流调度的多策略自适应差分进化算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
汀、人工智能2 小时前
[特殊字符] 第36课:柱状图最大矩形
数据结构·算法·数据库架构·图论·bfs·柱状图最大矩形
List<String> error_P2 小时前
蓝桥杯最后冲刺(三)
算法
样例过了就是过了2 小时前
LeetCode热题100 跳跃游戏
c++·算法·leetcode·贪心算法·动态规划
无限进步_3 小时前
【C++&string】寻找字符串中第一个唯一字符:两种经典解法详解
开发语言·c++·git·算法·github·哈希算法·visual studio
FluxMelodySun3 小时前
机器学习(二十九) 稀疏表示与字典学习(LASSO算法、KSVD算法、奇异值分解)
人工智能·算法·机器学习
LG.YDX3 小时前
笔试训练48天:跳台阶
数据结构·算法