Python – генерировать массив определенной автокорреляции

Я заинтересован в генерации массива (или numpy Series) длины N, который будет демонстрировать определенную автокорреляцию при лаге 1. В идеале я хочу также указать среднее значение и дисперсию, а также данные, полученные из (мульти) нормального распределения. Но самое главное, я хочу указать автокорреляцию. Как мне это сделать с помощью numpy или scikit-learn?

Чтобы быть явным и точным, это автокорреляция, которую я хочу контролировать:

numpy.corrcoef(x[0:len(x) - 1], x[1:])[0][1] 

One Solution collect form web for “Python – генерировать массив определенной автокорреляции”

Если вас интересует только автокорреляция с запаздыванием, вы можете создать авторегрессивный процесс порядка с параметром, равным требуемой автокорреляции; это свойство упоминается на странице Википедии , но это не сложно доказать.

Вот пример кода:

 import numpy as np def sample_signal(n_samples, corr, mu=0, sigma=1): assert 0 < corr < 1, "Auto-correlation must be between 0 and 1" # Find out the offset `c` and the std of the white noise `sigma_e` # that produce a signal with the desired mean and variance. # See https://en.wikipedia.org/wiki/Autoregressive_model#Example:_An_AR.281.29_process c = mu * (1 - corr) sigma_e = np.sqrt((sigma ** 2) * (1 - corr ** 2)) # Sample the auto-regressive process. signal = [c + np.random.normal(0, sigma_e)] for _ in range(1, n_samples): signal.append(c + corr * signal[-1] + np.random.normal(0, sigma_e)) return np.array(signal) def compute_corr_lag_1(signal): return np.corrcoef(signal[:-1], signal[1:])[0][1] # Examples. print(compute_corr_lag_1(sample_signal(5000, 0.5))) print(np.mean(sample_signal(5000, 0.5, mu=2))) print(np.std(sample_signal(5000, 0.5, sigma=3))) 

Параметр corr позволяет вам установить желаемую автоматическую корреляцию с запаздыванием один и дополнительные параметры, mu и sigma , позволяя вам управлять средним и стандартным отклонением генерируемого сигнала.

Interesting Posts

Замораживание цикла не показывает пути репозитория для файла требований

импортирование элементов модуля в другое без квалифицированного имени

Удалить запятые в строке, в окружении запятой и двойными кавычками / Python

как выводить все строки в консоль python в vim?

DatabaseError: более чем одна строка, возвращаемая подзапросом, используемым как выражение (Django)

Возможно ли (как) добавить цвет пятна в pdf от matplotlib?

Избранные приложения с открытым исходным кодом Google App Engine (Java или Python)

Завершить многопоточную программу python

доступ к нескольким значениям по 1 дублирующему ключу

генерация тегов из текстового содержимого

Предварительное выделение списка None

Несколько выходных файлов для потоковой передачи Hadoop с помощью Python Mapper

Python – механизм для идентификации сжатого типа файла и распаковки

Как проверить связь blas / lapack в numpy / scipy?

Что такое быстрый однострочный шрифт для удаления пустых строк из строки python?

Python - лучший язык программирования в мире.