V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Richard14
V2EX  ›  问与答

正态分布数据可以转换成均匀分布数据吗?

  •  
  •   Richard14 · 2022-05-20 23:59:46 +08:00 · 1236 次点击
    这是一个创建于 913 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,数学不太好,现在有一组比较长的向量(一维向量),经过测算它的分布符合正态分布(均值和方差不一定),但是正态分布的数据在工程上不太好利用,想问一下有没有办法转成均匀分布。

    网上搜了一些答案都看不太懂,都提到要 XY 什么的,但是我这里只有一维的向量啊。。

    9 条回复    2022-05-21 13:14:07 +08:00
    ipwx
        1
    ipwx  
       2022-05-21 00:36:29 +08:00
    .... 你的原始需求是什么,为什么要换成均匀分布。为什么说正态分布工程上不好利用。。。。(满脸问号
    Richard14
        2
    Richard14  
    OP
       2022-05-21 01:16:21 +08:00
    @ipwx 原始需求是为了储存浮点数数据,但是要转化成整数方便索引,比如一组数据在数据库里为一行( 81.2, 93.33, 67.5, 47.2...),使用需求上需要比如显示符合已知条件的条目,已知客户需要第一项介于 80-90 之间,第二项介于 90 到 100 之间,如果用浮点数储存的话就要直接写 80<=a<=90 and 90<=b<=100 ,但如果量化为整数的话,比如 80-90 之间量化为 85,90-100 之间量化为 95 ,则搜索时指定 85*95 的条目就可以了。但是量化的过程中发现数据并不均匀分布,统计了一下发现是按照正态分布的,如果按固定长度区间转化的话,集中在分布均值附近的数据感觉会丢失很多信息
    Trim21
        3
    Trim21  
       2022-05-21 06:40:08 +08:00 via Android
    你按照你统计出来的均值和方差,带到正态分布曲线里。计算出 10%,20%,30,…80%,90%这些分界点的值,把这些值作为筛选条件。
    Trim21
        4
    Trim21  
       2022-05-21 06:42:08 +08:00 via Android
    这个 xy 不是坐标,是统计量的值和样本值
    kilasuelika
        5
    kilasuelika  
       2022-05-21 08:52:26 +08:00 via Android
    1 。算 x 序列的均值,标准差 mu,sigma
    2 。计算此正态分布的累积概率分布 y=CDF(x),于是 y 为[0,1]均匀分布。
    给定 y ,要算出 x 就是分位数 x=quantile(y)。
    shinyy
        6
    shinyy  
       2022-05-21 09:11:45 +08:00 via iPhone
    @kilasuelika #5 是了 直方图均衡化
    Richard14
        7
    Richard14  
    OP
       2022-05-21 10:48:20 +08:00
    @Trim21 是这个意思,但需要数学表达,工程上不可能输入一串数组做判断,<=t[0] 则等于 0 ,<=t[1]则等于 1....这种的,计算太复杂了,不可能工程化。

    @kilasuelika 均值和方差是很好求的,但是计算 CDF 搜了一下公式是类似这种的

    https://wikimedia.org/api/rest_v1/media/math/render/svg/3cdb2c24bf4b5a6d4be5003f68d33e0087380c49

    感觉这种需要不定积分的没法拿来算啊。。
    ipwx
        8
    ipwx  
       2022-05-21 13:12:02 +08:00   ❤️ 1
    ipwx
        9
    ipwx  
       2022-05-21 13:14:07 +08:00   ❤️ 1
    上面的连接,自己找,正太分位数的反函数可以用 erfinv 表达,而它又有近似算法。哪怕打表都无所谓,可以二分查找。改原始数据是什么鬼,不会算就找资料算啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.