将值绘制到 rails 中的直方图

Plotting values onto a histogram in rails

我知道有几个 histogram gems,但我的问题有点独特。我不需要任何类型的图表或图像。我的 rails 应用程序有一个算法,可以给每个用户一个介于 0 和 1 之间的分数。例如billybob 的 raw_score 可能是 .00901 而 frankiejoe 的 raw_score 可能是 .00071.

先不说我为什么要这样做,我想在直方图上绘制这些值,然后将平均值 raw_score 映射为 50%,将平均值加标准差映射为大约 65%(平均值减去 35% 时的标准差),平均值加上 80% 时的 2 x 标准差等。因此每个标准差单位的 15 个百分位数。

我不需要实际的直方图chart/image,我只需要将它们加载到直方图后对应的直方图值。我本质上是将数字转换成更美观的分数,例如billybob 的 histogram_score 现在可能是 .987 而 frankiejoe 的可能是 .471。目前,它只有几十个用户或分数,但我希望能够处理数千个 users/scores.

我想将转换后的值存储到我的数据库中。我现在拥有的数字是 raw_score:decimal,我会将它们存储为 histogram_score:decimal

如何在我的 rails 应用程序中执行此操作?

谢谢!

想通了。所以 descriptive_statistics gem 会为我完成这个。

require 'descriptive_statistics'
data = [0.15, 0.25, 0.10, 0.05, 0.35, 0.10]
data.map {|score| data.percentile_rank(score)}
 => [66.66666666666666, 83.33333333333334, 50.0, 16.666666666666664, 100.0, 50.0]

在我的例子中,我只是循环遍历每个用户的 raw_score 并将其存储为 percentile_score。效果很好!