如何转换为具有给定均值和标准差的高斯分布

机器算法验证 正态分布
2022-03-24 08:09:53

我只是好奇而已。我正在看这部电影博士漫画,其中一位教授说对论文进行评分,使其具有平均值为 81 和标准差为 12 的高斯分布。

我有点困惑,要让数据遵循这样的分布,我将不得不更改我已经给出的数据或等级。是否有标准程序来执行此操作?我的意思是可以说我已经评分了。那么如何将其更改为给定的分布

4个回答

如果成绩已经是高斯,Dimitriy 的回答是可以的。在一般情况下,只需执行分位数重新归一化:修改您的成绩以将其分位数映射到高斯分位数。

以下 R 代码生成正常成绩。注意使用rank关系来处理。

# generate uniform grades
grades <- sample(0:100, 50, replace = TRUE)

# map on quantiles
L <- length(grades)
normal.grades <- qnorm( rank(grades)/(L+1), mean = 81, sd = 12)

我必须警告你,很多老师都这么说(平均值和标准差的值不同),但这只是个玩笑。不要这样做。

我曾经为大约150个等级制作了一个普通的QQ图。这几乎是完美的。这不是很好,因为如果答案是随机且独立的,这就是您所期望的……从那以后,我再也没有尝试过。

通过减去样本均值并除以标准差来标准化原始分数。称之为分数。它的平均值为零,标准差为一。分数乘以12 并加上 81 来创建重新调整的分数。zz

实际上,您需要使用类似copula 的转换您可以使用数据的经验 cdf 将它们转换为均匀分布的数据,并使用高斯的逆 CDF 将它们转换为高斯分布的数据。

如您所见,有很多方法可以得到这个!:) 这是我的两分钱:

Box-Cox 首先对您的数据进行变换 [ 1 , 2 ],以便将高阶矩(偏度和峰度)设置为期望值(高斯情况下为 0 和 3)。这可以通过尝试不同的功率变换参数和测试来轻松完成,以查看变换样本的各自偏度和峰度。之后你遵循 Dimitriy 的想法;您减去样本均值并除以标准差以使您的样本(这不会影响高阶矩),然后通过将样本乘以 12 并添加 81 来设置您想要的比例。N(0,1)

第一步中的幂变换实际上照顾了 Douglas 对 Dimitriy 对原始数据“非高斯性”的解决方案的评论。

你有它,等级(几乎)。说实话,对于一大班学生来说,使用这样的 StdDev,你会期望有些人的成绩超过 100 分...... (0.0557 = 1-pnorm(100.1, mean=81, sd=12))N(81,144)