Корреляция между временными рядами - PullRequest
0 голосов
/ 20 июня 2019

У меня есть набор данных, в котором процесс описывается как временной ряд, состоящий из ~ 2000 точек и 1500 измерений.

Я хотел бы определить, насколько каждое измерение соотносится с другим временным рядом, измеренным другим методом..

Каков подходящий способ сделать это (в конечном итоге это делается в python)?Я слышал, что Пирсон не подходит для этой задачи, по крайней мере, без подготовки данных.Что вы думаете об этом?

Большое спасибо!

1 Ответ

1 голос
/ 25 июня 2019

Общее хорошее правило в науке о данных - сначала попробовать легкую вещь.Только когда что-то не получается, вы можете перейти к чему-то более сложному.Имея это в виду, вот как вы бы вычислили корреляцию Пирсона между каждым измерением и некоторыми другими временными рядами.Здесь ключевой функцией является pearsonr:

import numpy as np
from scipy.stats import pearsonr

# Generate a random dataset using 2000 points and 1500 dimensions
n_times = 2000
n_dimensions = 1500
data = np.random.rand(n_times, n_dimensions)

# Generate another time series, also using 2000 points
other_time_series = np.random.rand(n_times)

# Compute correlation between each dimension and the other time series
correlations = np.zeros(n_dimensions)
for dimension in range(n_dimensions):
    # The Pearson correlation function gives us both the correlation
    # coefficient (r) and a p-value (p). Here, we only use the coefficient.
    r, p = pearsonr(data[:, dimension], other_time_series)
    correlations[dimension] = r

# Now we have, for each dimension, the Pearson correlation with the other time
# series!
len(correlations)

# Print the first 5 correlation coefficients
print(correlations[:5])

Если корреляция Пирсона не работает для вас, вы можете попробовать заменить функцию pearsonr на что-то другое, например:

  • spearmanr Ранговый коэффициент корреляции Спирмена.
  • kendalltau Тау Кендалла, мера корреляции для порядковых данных.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...