【问题标题】:C/C++ How to calculate the streakedness of numerical data sets?C/C++ 如何计算数值数据集的条纹?
【发布时间】:2023-03-28 13:02:01
【问题描述】:

有人知道如何使用 C/C++ 计算数据的条纹吗?条纹的定义是与平均值有多少偏差(即运行平均数字数据条纹。感谢您的帮助。

[编辑] 来自我们公司的首席软件架构师,这是对统计度量的要求。有人可以根据我们架构师对数据条纹的定义定义一个统计公式吗? -- 2013 年 2 月 19 日上午 8:00

相同的数字是连续的。 1,2,3,3,3,4,5 连续 7 次。

案例 A:1,2,3,4,5,6,7,8,9,10,11,12,13 最长连续 13 次。

案例 B:1,2,3,4,5,6,7,3,8,9,10,11,12 最长的连续为 7,第二个较小的连续为 6。

案例 C:1,2,3,4,5,6,7,1,2,3,4,5,6 最长的连续为 7,第二个较小的连续为 6。

案例 D:1,2,3,4,5,6,7,1,2,3,1,2,1 最长的连击数为 7,第二小的连击数为 3,第三小的连击数2

案例 E:1,2,3,4,5,6,7,6,5,4,1,2,3 最长的连续为 7,第二个较小的连续为 3。

案例 F:1,2,3,4,5,6,7,6,5,4,3,2,1 的最长连击数为 7,并且没有更小的连击数。

案例 A 到 F 按“排序从大到小”排序,但都具有相同的最长条纹。使用条纹长度的平均值是不合适的:

A:平均 = 13/1 = 13

B:平均 = (7+6)/2 = 6.5

C:平均 = (7+6)/2 = 6.5

D:平均 = (7+3+2)/3 = 4

E:平均 = (7+3)/2 = 5

F:平均 = 7/1 = 7

考虑非条纹(将它们计为 1):

A:平均 = 13/1 = 13

B:平均 = (7+6)/3 = 4.3

C:平均 = (7+6)/2 = 6.5

D:平均 = (7+3+2+1)/4 = 3.25

E:平均 = (7+1+1+1+3)/5 = 2.6

F:平均值 = (7+1+1+1+1+1+1)/7 = 1.85

变量 R 可用于表示与特定条纹的平均值有多少偏差。根据所公开的实施例,条纹的水平不仅可以定义为距平均值的(整数*偏差)距离,还可以定义为(整数*fraction_of_deviation)距离。为此,可以使用可变 R 因子。 R 因子以偏差的一小部分表示两个连续 R 水平之间的分离。通过改变 R 因子,可以根据需要对条纹进行排序。但是,连胜的“可信度”也应该考虑在内,并包含在排名机制中。条纹内的偏差是衡量数据在条纹内的交错程度的明显指标。一个好的连胜应该更少交错,或者换句话说,有更少的偏差。出于这个原因,一个非常高水平的条纹被认为是好的,即使它的偏差比通常所期望的要大。因此,虽然水平 R 对排名产生积极影响,但连续性内的偏差对其产生负面影响。

【问题讨论】:

  • 回答这个问题需要哪些额外信息?谢谢。
  • hrrrrm。看起来很像家庭作业。我会使用en.wikipedia.org/wiki/Root-mean-square_deviation(真是巧合...... R 变量听起来像残差:-))或将预测的分位数与实际结果进行比较。
  • What additional information would be required to answer this question? - 你试过什么?你被困在哪里了?好像您只是复制并粘贴了作业,需要您付出一些努力
  • Najzero,这不是一个自制的问题。我们正在设计一个数据分析器来测量存储在商业关系数据库中的数字数据的描述性统计数据。我们刚刚阅读了均方根偏差维基百科链接。如何使用 RMSD 计算数据的条纹?您对使用更高的统计矩(例如峰度)有何看法?感谢您的回复。
  • @Mike,我们已经尝试过 1)最长递增子序列和 2)标准偏差 3)运行平均值来衡量数据的条纹?但是,客户需要更多的统计数据。感谢您的回复。

标签: c++ c algorithm math statistics


【解决方案1】:

很抱歉,如果这不正常,但我是从图像处理的角度来看的。

我见过的用于分析散点图的更有趣的方法之一是 Tukey 提出的“图论 scagnostics”或简称为“scagnostics”(散点图诊断),后来由 Wilkinson 编写。除了“stringiness”之外,还有其他几个有趣的形状/簇标识符。

如果您的数据在 2 空间或 3 空间中,则有一些图像处理算法可以识别数据条纹,但我必须查看一些示例数据图/图像以提供任何进一步的建议。

【讨论】:

  • 你的想法听起来很有希望。今天上午晚些时候,我将向它展示我们公司的首席架构师和软件总监。谢谢你的想法。如果我们公司的首席架构师想采纳你的想法,我会尽快通知你。非常感谢。
  • @@Rethunk,您今天有时间看看我们公司的软件架构师在原始问题的上述编辑中的示例吗?我很抱歉遗漏了我们的软件架构师的例子。感谢您的帮助。
  • 您能否告诉我们 Chauvanet 的标准是否适用于计算数据条纹? en.wikipedia.org/wiki/Chauvenet%27s_criterion谢谢你的帮助。
  • 抱歉,在您发布请求两天后,我才有机会阅读此内容。既然你已经接受了 Joni 的回答,我想你已经准备好了。否则请告诉我,我会尽力提供帮助,但我只是根据我的工作日程偶尔检查 stackoverflow.com。
  • @@Rethunk,如果您能帮助我们解决这个问题,我们将不胜感激,并阅读您发布的对我们问题的回答。我知道你的工作时间很忙。所以,我们会耐心等待。感谢您的回复。
【解决方案2】:

完全不清楚你想从这个度量中得到什么。如果您不关心条纹内容,您可以使用条纹长度的平方和除以总长度的平方。该度量值始终介于 0 和 1 之间。如果整个序列是单个条纹,则它正好为 1,如果它主要是一个长条纹,则它会稍微小一些,如果它根本没有条纹,它会是 1/length。对于您的情况,此措施的结果为

A: Average = 13²/13² = 1.0000
B: Average = (7²+6²)/13² = 0.5030
C: Average = (7²+6²)/13² = 0.5030
D: Average = (7²+3²+2²+1²)/13² = 0.3728
E: Average = (7²+1²+1²+1²+3²)/13² = 0.3609
F: Average = (7²+1+1+1+1+1+1)/13² = 0.3254

【讨论】:

  • 感谢您的回复,乔尼。今天晚些时候,我将尝试向它展示我们的软件总监和架构师。谢谢。
  • @@Joni,感谢您对测试用例的计算。如果我收到我们的软件总监和架构师的来信,我会批准你的回答。另外,请您评论一下 Chauvenet 标准对案例 A、B、C、D、E 和 F 的适用性。谢谢。
  • 您想将肖韦内的标准应用于什么?
  • @@Joni,Chavenet 的标准可用于从数据条纹基础的数据子序列中修剪“数据异常值”。感谢您的帮助。
  • @@Joni,维基百科指出,“假设一个值在多次试验中测量为 9、10、10、10、11 和 50。平均值为 16.7,标准差为 14.92。50与 16.7 相差 33.3,略大于 2 个标准差。取数据与均值超过 2 个标准差的概率大约为 0.05。进行了 6 次测量,因此统计值(数据大小乘以概率)为 0.05× 6 = 0.3。因为 0.3
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 2019-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多