时间序列平台中互相关的输出不正确?嗨,JMP社区,
(W10,64位,JMP Pro 15.2.1)
我希望找出我做错了什么,或者我误解了JMP如何在时间序列平台中执行互相关计算。 简而言之,当我将Sin(x)与Cos(x)函数的互相关进行比较时,我没有得到pi / 2(或90度)的答案,我得到了79度反而。
我正在尝试对“时间序列”>“互相关”输出对某些同事的含义进行简化的说明和描述。 为此,我制作了一个简单的表,其中包含361行(值0-360,每行是一个度数,或0.01745弧度),还有其他几列用于计算Sin(x),Sin(x-5),Sin( x-45),Cos(x)和随机均匀分布(请参见附表Periodic_series.jmp)。 目的是演示使用简单的触发函数的互相关性,与SeriesJ数据集之类的复杂的时间相关函数相比,人们可以更容易地理解它们。
如果您在数据表中运行第一个脚本,则会得到触发函数的图形(故意保留了随机统一性)。 一切看起来都应该如此。

然后,您可以运行时间序列脚本,其中Sin(x)是Y输入,其他函数是Input List列,以便您可以进行互相关分析。 将互相关输出转换为数据表(请参见cross-correlation.jmp数据表),您可以绘制相关值与滞后的关系图(在此数据表中运行第一个脚本)。

乍一看,这看起来应该是这样:Sin(x)与Sin(x-5)的互相关的峰值在-5附近,Sin(x)与Sin(x-45)的峰值似乎在-45附近,对于Sin(x)与Cos(x)接近90。 但是,如果使用十字准线,则会看到Sin(x)和Cos(x)之间的互相关更接近80。

实际上,如果您运行脚本:在数据表中获取滞后,它将在“日志”窗口中打印出滞后:
“ Corr与Sin(x-5)的度数滞后= [-5]”
“ Corr对Sin(x-45)的度数延迟= [-40]”
“ Corr与Cos(x)的度数滞后= [79]”
“ Corr与Rondom的均匀滞后度数= [18]”
唯一可以正确计算的是滞后时间-5。 将Sin(x)滞后-45度会导致-40滞后,而不是预期的-45。 类似地,对于Sin(x)和Cos(x),当我希望该值为90时,延迟为79。 我已经尝试了多种不同的方法,并用更多的行来查看这是否是“分辨率”问题,但我一直滞后于80。
计算要么没有返回正确的滞后,要么我丢失了一些东西。我想我缺少了一些东西,但是我不确定它是什么。 我遵循了其他帖子中的一些建议,并尝试在JMP帮助中对其进行阅读这里,但是我找不到用于互相关计算的任何细节,这可以解释为什么Sin(x)的trig函数与Cos(x)的滞后时间不超过90。
任何想法/反馈对此表示赞赏。
谢谢!,
DS
分析工具数据表其他回复:时间序列平台中互相关的输出不正确?我相信这是由于样本量有限。 对于CCF上的连续点,样本大小相差1。 我又添加了3600行,再次进行了绘制,并且峰值更接近90,峰值处的幅度也更接近1。

回复:时间序列平台中互相关的输出不正确?你好@peng_liu ,
感谢您的反馈。 我尝试了更多的行,但没有尝试太多。 尽管我了解有限的样本量可能会如何影响计算,但是我对它会产生如此大的影响感到有些惊讶。 我可以想象会有一个很小的差异,有限集较小的情况可能是88或89,但是要减去12似乎是很大的。 我想我担心的是现实世界中可能只有有限的时间序列数据集的情况。
顺便说一句,我还注意到了我的Deg列中的一个错误,该错误未正确说明添加更多行。 公式应为:

这样,度数据将始终在-180到180之间运行(嗯,由于增量大小,一端或另一端的差异很小)。
例如,现实世界中有限的数据集,也许您有一台仅在十五分钟的时间内每秒收集一次数据的设备。 只有900个数据点。 根据这种情况,可以得出结论,两个信号的滞后时间为78,而实际上为90。 得出信号延迟为78的结论是不正确的,并可能导致某人开始对数据进行错误的分析。 无论
在这种情况下,我们知道真正的滞后是先验的,但是在实际情况下,这并不总是已知的。 我可以想象数据集,其中在不同位置测量同一事件,并且需要确定信号的滞后,但是数据集相当有限。 根据互相关函数的工作方式,这可能会导致错误的结论。
有没有办法对此进行补偿或考虑有限数据集的计算? 您是否可以换出其他功能列并对滞后量进行模拟,以便获得一定的滞后置信区间? 那是什么样的功能栏?
如果我使用正确的公式重新进行评估以允许任意数量的行,那么即使从滞后值转换为度值,我仍然没有得到正确的答案。 例如,对于3601行(值从0到3600),我得到的滞后图如下:

然后,当我运行Get lags脚本时,但现在查看将滞后转换回度数的列(基于原始表中的3601行,下面的公式),我得到:

“ Corr与Sin(x-5)的度数滞后= [-4.89863926687031]”
“ Corr对Sin(x-5)的滞后滞后= [-49]”
“ Corr与Sin(x-45)的度数延迟= [-40.2888086642599]”
“ Corr与Sin(x-45)的延迟= [-403]的延迟”
“ Corr与Cos(x)的度数滞后= [78.4782004998612]”
“ Corr vs. Cos(x)滞后滞后= [785]”
下面是Sin(x)与Cos(x)的图,该图被900行和785行滞后。 可以看出,785未处于正确的滞后值,该滞后值出现在第900行(红色曲线)上。

因此,我仍然没有获得正确的价值观。 附加了新的数据表。 我仍然有预感,我做的事情不正确–也许某个地方的公式错误? 我不知道为什么我没有得到正确的价值观。
谢谢您的帮助!,
DS
回复:时间序列平台中互相关的输出不正确?第二组数据中有问题。 第二个数据中的Sin(x)如下所示:

这是我的3601行的样子:

这就解释了为什么您的SinX和CosX CCF不会更改。
这里重要的样本数量不是这里的观察数,而是周期数。 在原始数据中,只有一个周期。 要计算CCF,需要移位序列,这将在一个序列中创建缺失值,这将导致样本均值大幅波动。 如果有很多周期,则平均值将保持接近零,即真实值。
如果在实际情况下只有一个数据周期,我相信CCF会产生误导,但这是一个数据问题,无法解决。
回复:时间序列平台中互相关的输出不正确?你好@peng_liu ,
感谢您的进一步解释。 我现在知道问题是什么,这是有道理的。 如果在“窗口”内包含更多周期,则可以确认获得了正确的值。
现在为真正的难题:
我的生产同事希望找到他们的生产历史系统(记录炉温,传送带速度,流速等信息)与对材料进行质量控制测量之间的时间差。 可以按任何给定的时间间隔,15分钟,30分钟,4小时等从系统导出生产数据。 我们每4小时就有一个相当定期的质量控制测试时间表。 据信,如果可以找到正确的时间滞后,则可以将生产历史数据与QC数据相关。 例如,据信生产中的干燥机温度与QC测试相关,但QC测试可能需要120分钟才能完成后物料已经通过干燥机。 从实验室规模的研究中我们知道,某些处理步骤(如烤箱温度等值)与某些测试结果相关,但是事实证明,在生产数据中发现这一点比在实验室中更具挑战性。
我尝试使用时间序列中的互相关来查看它是否可以在数据中找到任何类型的滞后,并手动创建多个滞后列,并使用多变量平台来查找滞后列和QC数据之间的相关性,但我什么也没看到。 自然地,过程中的任何相关性都可能从噪声中消失,但是另一种选择是,时间序列和多元平台都不是试图确定正确时间滞后的正确平台。
非常感谢您的反馈和想法/输入,它非常有帮助。
谢谢!,
DS