如何找到连续变量之间的变化关系?

数据挖掘 机器学习 matlab
2021-10-11 20:28:59

我有一个包含 8 个连续变量的数据集,用于描述机器的行为:
- 左右输入 a、b、c:a_leftb_leftc_lefta_rightb_rightc_right
- 输出o,与输入非线性相关(几乎可以肯定也受其他因素)
-时间戳t
我也有一些环境数据(例如温度),但这些数据相当恒定,我怀疑影响不大。

理论
我的理论是,由于结垢导致机器性能下降,o对于相同的输入值,值会更低。

有时,会清理机器以再次恢复性能。我不知道何时以及有多好(即“完美”状态与“完美”和先前状态之间的某个中间状态)。降解速率也是未知的,很可能不是恒定的。

此外,变化是输入变量之一由于惯性而对输出产生延迟影响。

我尝试过的操作:
- 为输入和输出之间的一些不同关系绘制数据 - 针对输入和输出之间的一些不同关系的
k-means 聚类(没有时间戳)

问题:
- 是否有可能用这些数据验证我的理论?
- 如果是这样,哪些技术最适合应用?我更喜欢 Matlab 中的任何东西。

2个回答

除了进行初始 EDA 和绘制因变量与自变量之外,尝试首先确定“维护”点似乎是谨慎的。根据您对问题的描述,我们可以预期会看到输出下降或被单个尖峰步骤打断,表明性能有所提高。换句话说,您通常应该看到一个负斜率穿插非常高的正斜率。我们在 EEG 信号中看到类似类型的尖峰行为,其中“光点”或“尖峰”对应于不需要的伪影(例如,眨眼)。这些可以通过在数据上运行一个滑动窗口并寻找斜率的大变化来相对容易地识别。通过监测斜率的变化,下面标为绿色的时间段被识别为伪影。和基于 Matlab 的ERPlab以了解有关此方法的更多信息。

脑电图伪影

对于特征工程,由于输入到响应的滞后,您最初需要包括可变滞后。例如,对于变量a_left和输出 o 的相应变化,您可能希望添加作为特征 a_left_1、a_left_2、... a_left_n,其中每个特征指的是在观察到的行为变化之前某个滞后时间的输入值。

可以通过 Matlab 对随机过程中是否存在异方差性进行检验,例如 Engle 的 ARCH 检验。这是我用过的唯一测试,可能还有其他可以通过 Matlab 获得的测试。