我一直认为microbenchmark
输出中的cld
列是速度的统计排名。然而这不是真的:
> microbenchmark(
+ intmap = fintmap(), # slower
+ List = flist(),
+ times = 5
+ )
Unit: microseconds
expr min lq mean median uq max neval cld
intmap 793.984 910.539 1145.8608 911.840 1290.529 1822.412 5 a
List 1.092 1.318 201.3712 1.639 3.660 999.147 5 b
那是什么呢?医生只说这是一个统计排名,但是什么排名呢?
或者也许这是一个速度的多重比较测试,但标准差的不平等会导致这样的问题?在第二个基准测试中显然有一个离群值。
编辑
看来,我的问题是不清楚.我知道字母a
和b
的含义,这是经典的方式来报告一个Tukey测试.但结果是不连贯的在这里:intmap
较慢,但排名第一。
2条答案
按热度按时间hkmswyz61#
cld
是从multcomp
Package 中带来的紧凑型字母显示器。从这个包:“相等的字母表示无显著差异.”
我目前不能确定的是,它是否意味着要排名或只是分类,即
a
意味着通常比b
快,还是只是不同?microbenchmark::summary
中的代码是:因此,它似乎是从原始时间(而不是平均值等)生成线性模型
lm()
,然后为所有对比较设置多重比较对象glht()
,然后使用cld()
将其减少到cld。编辑:测试排名:
这似乎表明,正如所怀疑的那样,表中条目的顺序与提供给
microbenchmark()
的顺序相同,并且cld是基于此顺序而不是总体速度排名顺序分配的。编辑2:使用排序
在我看来,它像是按字母顺序对cld排序,就好像它是一组列一样,所以它先按a(顶部的空白)排序,然后按b(同上)排序,等等...
egmofgnx2#
压缩字母显示-它来自multcomp包,参见 multcomp::cld
GitHub microbenchmark print.R第15行