автокорреляционная матрица с порядком в Python - PullRequest
2 голосов
/ 29 января 2020

У меня есть уравнение автокорреляционной матрицы с лагом, необходимым для анализа lp c:

(click to download image): r_{l}(m) =\sum_{n=0}^{N-1-m}{\overline{x}_{l}(n)\overline{x}_{l}(n+m)}, m=0,1,...p

Я написал методы:

def autocorr_matrix(x,order):
    R = numpy.zeros((order, order))
    for i in range(0,order):
        for j in range(0,order):
            R[i,j] = autocorrelate(x, abs(i-j))
    return R
def autocorrelate(x,lag):
    return numpy.correlate(x[0:len(x)-lag],x[lag:len(x)])

это так правильное решение? Кто-нибудь есть идеи, как я могу проверить результаты этих методов?

1 Ответ

0 голосов
/ 29 января 2020

Для проверки ваших результатов вы можете использовать два метода:

1- Создать два синусоидальных сигнала с фазовым сдвигом и посмотреть, может ли ваш код измерить корреляцию.

2- Использовать некоторые надежные библиотеки для корреляции и проверки ваших результатов. библиотека, которую я использую: statsmodel: statsmodel.org

from statsmodels.tsa.stattools import acf,ccf

acf для автокорреляции, а ccf для взаимной корреляции.

...