您如何判断良好的表现是否连胜?


10

我将Rubik的多维数据集作为爱好解决。我记录了使用某些软件解决多维数据集所花费的时间,因此现在我有了来自数千个解决方案的数据。数据基本上是一长串数字,代表每个顺序求解所花费的时间(例如22.11、20.66、21.00、18.74等)

自然,我求解多维数据集所需的时间因求解的不同而有所不同,因此有好的求解和不好的求解。

我想知道我是否“变热”-好的解决方案是否会出现条纹。例如,如果我连续有几个好的解决方案,那么下一个解决方案是否更有可能变得更好?

哪种分析比较合适?我可以想到一些具体的事情,例如将解决方案视为马尔可夫过程,查看一个解决方案对下一个解决方案的预测程度,并与随机数据进行比较,查看连续解决方案的最长条纹在最后一个解决方案中位数以下的时间100并与随机数据等中的预期值进行比较。我不确定这些测试的洞察力如何,并想知道是否存在一些针对此类问题的完善方法。

Answers:


8

沃尔德沃尔福威茨运行测试似乎是一个可能的候选人,其中“运行”是你叫“连胜”。它需要二元数据,因此您必须根据某个阈值将每个解决方案分别标记为“不良”与“良好”,例如您建议的中位时间。零假设是“好”和“坏”随机交替求解。与您的直觉相对应的单方面替代假设是,“好”可以长期解决结团问题,这意味着运行次数少于随机数据的预期。测试统计信息是运行次数。在R中:

> N      <- 200                          # number of solves
> DV     <- round(runif(N, 15, 30), 1)   # simulate some uniform data
> thresh <- median(DV)                   # threshold for binary classification

# do the binary classification
> DVfac <- cut(DV, breaks=c(-Inf, thresh, Inf), labels=c("good", "bad"))
> Nj    <- table(DVfac)                  # number of "good" and "bad" solves
> n1    <- Nj[1]                         # number of "good" solves
> n2    <- Nj[2]                         # number of "bad" solves
> (runs <- rle(as.character(DVfac)))     # analysis of runs
Run Length Encoding
lengths: int [1:92] 2 1 2 4 1 4 3 4 2 5 ...
values : chr [1:92] "bad" "good" "bad" "good" "bad" "good" "bad" ...

> (nRuns <- length(runs$lengths))        # test statistic: observed number of runs
[1] 92

# theoretical maximum of runs for given n1, n2
> (rMax <- ifelse(n1 == n2, N, 2*min(n1, n2) + 1))
199 

当您只有几个观察值时,您可以在原假设下计算每个运行次数的确切概率。否则,“运行次数”的分布可以通过标准正态分布来近似。

> (muR  <- 1 + ((2*n1*n2) / N))                     # expected value
100.99 

> varR  <- (2*n1*n2*(2*n1*n2 - N)) / (N^2 * (N-1))  # theoretical variance
> rZ    <- (nRuns-muR) / sqrt(varR)                 # z-score
> (pVal <- pnorm(rZ, mean=0, sd=1))                 # one-sided p-value
0.1012055

p值用于“好”解决的单方面假设。


3
好答案。但是,我不愿意将连续变量转换为二进制变量。许多有意义的可变性将丢失。
Jeromy Anglim 2011年

@jeromy-一般而言,这是一个好主意,但是对于这个特定的问题,装仓并不会丢弃太多信息-特别是因为“好”和“坏”仅被定义为问题的二分法,而不是连续体。
概率

@probabilityislogic我了解,@ mark可能根据解决方案时间处于某个阈值的哪一侧而将解决方案时间可操作为“好”或“坏”。但是,无论阈值位于何处,都肯定是任意的。如果阈值为5分钟,那么5分钟零1秒肯定与4分钟零59秒的“良善”相差无几。我认为相对于连续完成时间,“好”和“坏”是模糊类别。
Jeromy Anglim 2011年

但是,“好”和“坏”的任何定义都是任意的-因为这些词的相对性质。无论是让“数据”解决歧义,还是让您自己解决歧义,都不会或多或少地造成歧义。如果您需要5分钟以下的时间才有资格进入比赛的决赛,则可能需要这样的明显区别。我敢肯定,法官不会被那种“但是在排位赛时间只有2秒”之类的论调所左右
概率

5

一些想法:

  • 绘制时间分布图。我的猜测是,它们将出现正偏,因此某些解决方案的时间确实很慢。在这种情况下,您可能需要考虑日志或解决方案时间的其他转换。

  • 在x轴和求解时间(或在y轴上记录求解时间)上创建试验散布图。这应该使您对数据有直观的了解。除了“热条纹”之外,它还可能揭示其他类型的趋势。

  • 考虑一下随着时间的推移是否会有学习效果。使用大多数拼图,您可以更快地进行练习。该图应有助于揭示是否是这种情况。这样的效果不同于“热条纹”效果。这将导致试验之间的相关性,因为当您初次学习时,慢速试验将与其他慢速试验同时发生,并且随着您的经验增加,更快的试验将与更快的试验同时发生。

  • 考虑您对“热条纹”的概念定义。例如,它仅适用于时间紧迫或与命令临近有关的试验。假设您在星期二快速解决了多维数据集,然后休息了一下,在下一个星期五又迅速解决了问题。这是热条纹吗,还是仅在同一天进行才算?

  • 还有其他与热条纹效果不同的效果吗?例如,您一天中解决难题的时间(例如,疲劳),您实际努力的程度?等等

  • 一旦了解了替代的系统效果,您就可以开发一个包含尽可能多的模型的模型。您可以在y轴上绘制残差,并在x轴上试用。然后,您可以看到模型中的残差中是否存在自相关。这种自相关将提供一些热条纹的证据。但是,另一种解释是您还没有排除其他一些系统性影响。


+1为系统部分。我认为在这种情况下,这是对性能变化的最好解释。
mpiktas 2011年

2
可能想看看研究人员如何调查这个问题。经典著作是T. Gilovich,R。Vallone和Tversky,A。篮球热手:对随机序列的误解。Cognitive Psychology 17,295-314(1985)。
dmk38,2011年

2

计算过程的相关图。如果您的过程是高斯的(从样本的外观来看),则可以确定下限/上限(B),并检查给定滞后的相关性是否显着。滞后1处的正自相关将表明存在“运气条纹”。


2
正的自相关也可以由其他系统效应(例如学习过程)产生。我认为在将自相关解释为“热条纹”的证据之前,必须消除此类影响。
Jeromy Anglim 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.