Я хочу разработать код python для выравнивания наборов данных, полученных разными инструментами, записывающих одно и то же событие.Выравнивание двух наборов данных в 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) к первому (данные1). то есть для этого:
Второй набор данных должен быть сдвинут в соответствии с первым, вычитая константу (которая будет определена) из всех ее значений. Все, что я знаю, это то, что наборы данных коррелируют, поскольку два инструмента измеряют одно и то же событие, но с разными частотами выборки.
На этом этапе я не хочу делать какие-либо предположения о том, какая функция лучше всего описывает данные (установка будет выполнена после выравнивания).
Я с осторожностью отношусь к использованию средств для выполнения сдвигов, так как это может привести к плохим результатам в зависимости от того, как производится выборка данных. Я рассматривал возможность ввода данных2 [TIME_i] и разработки кратчайшего расстояния до data1 [~ TIME_i]. Тогда минимизируем их сумму. Но я не уверен, что это тоже сработает.
Есть ли у кого-нибудь предложения по хорошему методу использования? Я посмотрел на mlpy, но, похоже, работает только на 1D массивах.
Спасибо.
Должно быть перенесено на http: // stats. stackexchange.com/ Это не место для итерации всеми возможными способами согласования двух наборов данных. Когда вы знаете, что хотите, вернитесь сюда, чтобы реализовать его. – tom10