【发布时间】:2014-10-09 14:51:43
【问题描述】:
我想开发一些python代码来对齐记录同一事件的不同仪器获得的数据集。
例如,假设我有两组测量值:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# Define some data
data1 = pd.DataFrame({'TIME':[1.1, 2.4, 3.2, 4.1, 5.3],\
'VALUE':[10.3, 10.5, 11.0, 10.9, 10.7],\
'ERROR':[0.2, 0.1, 0.4, 0.3, 0.2]})
data2 = pd.DataFrame({'TIME':[0.9, 2.1, 2.9, 4.2],\
'VALUE':[18.4, 18.7, 18.9, 18.8],\
'ERROR':[0.3, 0.2, 0.5, 0.4]})
# Plot the data
plt.errorbar(data1.TIME, data1.VALUE, yerr=data1.ERROR, fmt='ro')
plt.errorbar(data2.TIME, data2.VALUE, yerr=data2.ERROR, fmt='bo')
plt.show()
结果绘制在这里:
我现在想做的是将第二个数据集(data2)与第一个(data1)对齐。即得到这个:
必须通过从其所有值中减去一个常数(待确定)来移动第二个数据集以匹配第一个数据集。我所知道的是数据集是相关的,因为这两种仪器测量的是相同的事件,但采样率不同。
在这个阶段,我不想对哪个函数最能描述数据做出任何假设(拟合将在对齐后完成)。
我对使用方法执行轮班持谨慎态度,因为它可能会产生不好的结果,具体取决于数据的采样方式。我正在考虑获取每个 data2[TIME_i] 并计算出到 data1[~TIME_i] 的最短距离。然后最小化这些的总和。但我也不确定这是否会奏效。
有人对使用的好方法有任何建议吗?我查看了mlpy,但它似乎只适用于一维数组。
谢谢。
【问题讨论】:
-
应该迁移到stats.stackexchange.com 这不是迭代所有可能的方式来对齐两个数据集的地方。一旦你知道你想要什么,就回到这里寻找实现它的方法。