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

2022-05-20 23:59:46 +08:00
 Richard14

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

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

1240 次点击
所在节点    问与答
9 条回复
ipwx
2022-05-21 00:36:29 +08:00
.... 你的原始需求是什么,为什么要换成均匀分布。为什么说正态分布工程上不好利用。。。。(满脸问号
Richard14
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
2022-05-21 06:40:08 +08:00
你按照你统计出来的均值和方差,带到正态分布曲线里。计算出 10%,20%,30,…80%,90%这些分界点的值,把这些值作为筛选条件。
Trim21
2022-05-21 06:42:08 +08:00
这个 xy 不是坐标,是统计量的值和样本值
kilasuelika
2022-05-21 08:52:26 +08:00
1 。算 x 序列的均值,标准差 mu,sigma
2 。计算此正态分布的累积概率分布 y=CDF(x),于是 y 为[0,1]均匀分布。
给定 y ,要算出 x 就是分位数 x=quantile(y)。
shinyy
2022-05-21 09:11:45 +08:00
@kilasuelika #5 是了 直方图均衡化
Richard14
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
2022-05-21 13:12:02 +08:00
ipwx
2022-05-21 13:14:07 +08:00
上面的连接,自己找,正太分位数的反函数可以用 erfinv 表达,而它又有近似算法。哪怕打表都无所谓,可以二分查找。改原始数据是什么鬼,不会算就找资料算啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/854278

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX