为了给出一些上下文,我通常会测量虚拟机(VM)或系统软件的性能,并且通常希望比较性能问题的不同优化。对于许多基准测试,性能在绝对运行时间内进行测量,并且通常用于VM的多个配置,这些配置随使用的CPU核心数量,不同的基准参数等而变化。为了获得可靠的结果,每个配置的测量值为100次。因此,我最终对所有类型的不同参数进行了大量的测量,我通常对所有这些参数的加速感兴趣,比较VM和VM没有一定的优化。
我目前所做的是选择一系列特定的测量值。让我们说在1核上运行基准测试A的有和没有优化的VM(VM-norm / VM-opt)的测量结果。
由于我想比较不同基准测试和核心数量的结果,我不能使用绝对运行时,但需要以某种方式对其进行标准化。因此,我将针对VM-norm的1个核心上的基准测试A的100个测量与VM-opt的相应100个测量配对,以计算VM-opt / VM-norm比率。
当我按照我得到的顺序进行测量时,我的100个VM-opt / VM-norm比率显然有很大差异。所以,我想,好吧,让我们假设我的测量结果的变化来自非确定性效应,同样的效果会导致VM-opt和VM规范的变化方式相同。所以,天真地,在配对之前对测量进行排序应该没问题。而且,正如预期的那样,这会减少当然的变化。
然而,我的半知识告诉我这不是最好的方式,也许甚至不正确。 由于我最终对这些比率的分布感兴趣,为了用豆图可视化它们,一位同事建议使用笛卡尔积而不是配对分类测量。这听起来好像是为了比较两个任意测量的随机性质。但是,我仍然想知道统计学家会对这样的问题提出什么建议。
最后,我真的很想绘制比例分布与R作为豆或小提琴情节。简单的箱形图,或只是意思+ stddev告诉我关于发生了什么的太少。这些发行版通常指向由这些复杂的计算机上的复杂交互产生的工件,这就是我感兴趣的内容。
任何有关如何使用方法以及如何以正确方式生成此类比率的方法都非常受欢迎。
PS:这是一个转贴,原件发布在https://stats.stackexchange.com/questions/15947/how-to-normalize-benchmark-results-to-obtain-distribution-of-ratios-correctly
答案 0 :(得分:0)
我发现令人费解的是你在“Cross Validated”上获得了如此微小的回应。这似乎不是一个特定的R问题,而是一个如何设计分析的请求。也许那里的观众认为你问的问题太广泛了,但如果是这样的话,那么[R]论坛就更糟了,因为我们通常会解决实际提供数据的问题。我们用我们的语言处理实施构建的请求。我同意小提琴图更适合用于检查分布的箱形图(当有足够的数据并且我不确定每组100个样本在那种情况下得分时),但无论如何这意味着“R答案”是您只需要参考正确的R帮助页面:
library(lattice)
?xyplot
?panel.violin
进一步的评论需要更多细节,最好是用R构建的一些数据示例。您可能需要参考"great question design is outlined"所在的页面。
另一种图形方法:如果您对两个成对变量的比率感兴趣但又不想“提交”到x / y,那么您可以通过绘制然后通过重复使用绘制等比率线来检查它们abline(a = 0,b =)。我认为100个样本对于进行密度估计非常“稀薄”,但如果你可以收集更多数据,则有2d密度方法。