корреляция временных рядов с использованием динамического искажения времени c (DTW) в python - PullRequest
1 голос
/ 03 февраля 2020

вот мои три временных ряда:

t1  t2  t3
3   8   17
1   8   18
0   8   17
0   8   18
2   8   17
3   8   17
0   8   18
0   8   17
2   8   17
3   8   18
1   8   17
0   8   17
0   8   17
1   8   17
2   8   16
2   8   16
3   8   16
0   8   16
2   8   16
2   8   16
3   8   16
1   8   17
1   8   16
2   8   16
3   8   16
1   8   17
2   8   16
4   8   17
0   8   16
1   8   17
3   8   16
0   8   16
3   8   16
2   8   16
2   8   17
0   8   16
2   8   16
2   8   17
3   8   16
3   8   16
3   8   16
2   8   16
4   8   16
1   8   16
0   8   17
0   8   17
2   8   17
1   8   17
2   8   17
2   8   18
0   8   18
1   8   18
0   8   17
0   8   17
2   8   17
1   8   17
2   8   17
0   8   17
0   8   17
0   8   17

Как я уже видел, DTW может дать нам вывод, который может сказать нам сходство между временными рядами

, но я не не знаю, как мы можем это сделать?

как мы можем сказать, что с выходом DTW?

какое расстояние хорошее ?? высокий или низкий?

помогите мне решить эту проблему

Спасибо

1 Ответ

1 голос
/ 03 февраля 2020

С использованием DTW :

import pandas as pd
from io import StringIO
from dtaidistance import dtw

data = StringIO("""
t1   t2   t3
3   8   17
1   8   18
.   .   .
.   .   .
0   8   17
0   8   17
""")

# load data into data frame
df = pd.read_csv(data, sep='   ', engine='python', dtype=float)
# transpose data
transposed_matrix = df.values.transpose()
# calculate series cost
results = dtw.distance_matrix_fast(transposed_matrix, compact=True)

Выход:

Результаты расчета стоимости для сравнения 3 временных рядов. Чем дешевле, тем лучше.

[ 51.4392846  118.73078792  67.71262807]
...