测量时间序列的平滑度

机器算法验证 回归 时间序列 估计 公制
2022-03-26 21:26:51

我正在研究一种方法,可以对阿尔茨海默病患者的脑容量随时间进行(嘈杂的)估计。

正如我们所知,如果在几年的时间范围内观察,进化是平滑的,甚至大部分是线性的,评估算法的一种方法是查看估计的时间序列(随时间变化的脑容量)的平滑度或线性度。

这就是为什么我正在寻找时间序列的平滑度或线性度的良好指标。我现在使用的是患者线性回归的平均 R²。这确实反映了线性,但它在很大程度上取决于采样(它会用更少的数据点提供更好的结果)。谁能提出一个更好的指标?

一些细节,因为显然我的问题并不清楚我有一个算法可以为许多患者提供几个(从一到五个或六个)离散脑容量测量值。我想测量度接近线性的程度,例如。跨越所有患者(所有患者都有不同的系数,但我想要一个线性的整体度量)。V(tn)VV(tn)=atn+b

我还应该提到值不是定期间隔的。tn

另一条评论 显然,只有一两个数据点的患者无法提供信息。但是,我想利用所有其他患者。即使是具有三个数据点的患者也能提供信息:三个对齐的点比三个完全锯齿状的点要好得多。

4个回答

我认为您的问题只是过度拟合-您希望有一个不会在非常小的 N 时膨胀的线性度量。

这里有两个候选人:

  1. 调整后的 r 平方在您的情况下(单个回归器),这将是R21R2N2

  2. 交叉验证的:一次省略一个测量值。估计没有它的线性模型。然后,计算实际保留测量值与其预测值之间的平方差。重复所有时间点,加起来,你会得到预测的残差平方和 (PRESS)。接下来计算 SST(测量值的方差 * N)。从这里你可以得到一个预测的R2R2predicted R2=1PRESSSST

我认为前者倾向于乐观,而后者倾向于悲观。两者自然都需要至少 3 次测量。

虽然如果你用数学方法描述你的问题会更好,但从我读到的内容我理解

a) 你有一个估计器函数来估计脑容量随时间的演变,例如, data b) 你想测量这个估计器函数与简单线性时间趋势的距离V^t=f()
V¯t=a+bt

因此,您似乎应该搜索可用的各种距离度量,例如Hellinger 距离(尽管它被设计用于测量两个分布之间的距离,但它可以更普遍地用于测量任意两组点之间的距离可以成对链接)。

但我不明白的是:你为什么对你写的数据支持的简单线性估计器不满意?您是否本质上试图实现更好的短期预测性能,同时尽可能多地保持“长期线性”?是这样吗?

由于您正在为每个患者并且您需要以下属性:r2i

因此,如果不采取任何措施,拥有更多数据点的患者的指标可能会更差。

  1. 具有更多测量值的系列应具有更高的权重

我担心的是那些 3 和 6 的人应该以一种不偏向于一种或另一种方式的方式对待

  1. 分数较低的系列也应明智地包括在内。

想到一个简单的启发式方法来测量整个数据集的线性度:让每个患者的数据点数为,患者总数为由于您已经在为每个患者,因此如何获得加权平均值: 它的特性是它会更加重视具有更多观察次数的序列。代替作为上述分子和分母中的系数,您可以使用的任何其他函数来解决我在上面引用的问题。niKri2i

i=1Kniri2i=1Kni
nini


另一个想法:为了解决不规则抽样观察的问题,请执行以下操作。维多项式(link1link2 )拟合到您拥有的每个时间序列观察值(作为@Glen_b 划分差异想法的扩展)。给定算法 } ,这只是 然后,在每个患者的固定时间位置评估这些多项式中的每一个。然后拟合线并按上述方法进行。ni1ni{V(tk)}ni{tk}

Vpoly. approx(t)=k=1niV(tk)1jn,jkttktktj.

我建议两种不同的方法:

  • 首先,我读到您受到采样效应的影响。一种建议是使用小波/傅立叶系数来获得线性度。在许多情况下,有一些解决方案可以避免使用此工具产生采样效应。

  • 其次,您应该尝试峰度偏度,以查看信号的可变性和平滑度。

但是,如果您想查看信号的趋势,最好的选择是使用 Wavelet。