在数据中寻找“肘部”

机器算法验证 线性模型 对比
2022-04-07 12:35:07

Subitization 是对低数量显示的快速、准确枚举,通过响应时间图中的尖锐非线性与计数区别开来。下面是一个有代表性的情节,来自 Watson, DG, Maylor, EA, & Bruce, LAM (2007)。请注意,显示 1-3 的平均枚举时间大致呈线性增加,但 4 的平均枚举时间不遵循线性趋势。一些研究表明,子化“限制”取决于任务条件和参与者的工作记忆。

在此处输入图像描述

我正在寻找一种方法来测试肘部的位置,最终目标是确定参与者的 subitization 限制是多少。目前,我最好的想法是做一些重复多项式对比之类的事情。基本上,我会在数字 1-3 中测试二次趋势,然后在数字 1-4 中测试,等等。我想说,当二次趋势变得显着时(调整重复测试),我已经通过了子化限制。

不过,这大约是我统计知识的极限,所以我不能很好地评估这个想法。想法?

提前致谢。

2个回答

根据您对“肘部”的定义,您可以使用许多统计测试。有一个专门用于这个主题的整个R 包。

我个人倾向于避免使用它们,因为您永远不会事先知道他们将什么视为“肘部”以及您和他们的意见是否一致。(但这可能被认为是一个极端的位置)这也取决于您是否想知道特定位置是否有“肘部”,或者您是否想询问一般情况下是否存在。

对于特定位置的情况,您当然可以拟合局部回归,比较系数并根据您自己关于斜率差异的规则声明一个肘部。

真正的问题出现在后一种情况下。无论如何,如果您只有几个点,您可以全部尝试。否则我会拟合一些非参数的东西,比如黄土,定期计算线的梯度(有足够的密度),比如这里所示: https ://stackoverflow.com/questions/12183137/calculate-min-max-带 r 的黄土斜率拟合曲线

并再次使用一些您认为方便的规则来声明“肘部”。我将“肘部”视为在足够短的时间间隔内发生足够大的函数梯度变化的情况。当然,上述规则的阈值是个人喜好问题,这就是为什么没有测试。

一般来说,我认为如果数据摇摆不定(因为梯度会有很多变化),这将毫无用处。

对于提供的示例,一种简单的方法是应用平滑算法,然后进行二阶导数,如我对另一个问题的回答中所示。