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 , позволяя вам управлять средним и стандартным отклонением генерируемого сигнала.

  • Обработка неизвестных значений для кодировки меток
  • Python Scikit-learn Перцептронные возможности вывода
  • Подпрограмма, которая принимает все предопределенные переменные из «основной программы»,
  • Как решить переобучение в случайном лесу Python sklearn?
  • Использование проверки (предопределенной) проверки подлинности для поиска по сетке с помощью sklearn
  • ValueError: неизвестно, не поддерживается в sklearn.RFECV
  • Используя scikit-learn, как узнать SVM над небольшим набором данных?
  • Как сохранить заголовки столбцов кадра данных после предварительной обработки в scikit-learn
  •  
    Interesting Posts for Van-Lav

    Что такое обратная сила регуляризации в логистической регрессии? Как это повлияет на мой код?

    Найти самый старый / самый молодой объект datetime в списке

    Ошибка памяти Python при повторении большого диапазона

    Как передать несколько переменных из php в скрипт python

    Можно ли параллельно просматривать рамки веб-камеры?

    XML: удалить дочерний узел узла

    Найти имена полей полей формы ввода в PDF-документе?

    В чем разница между наборами и списками в Python?

    Как установить DMG-файл из командной строки?

    Python: как проверить, существуют ли ключи и получить значение из словаря по убыванию приоритета

    Лексическая ошибка: Обнаружен: "" (0), после: ""

    Отправка «User-agent» с помощью библиотеки запросов в Python

    симпатичные упрощающие дробные степени мнимого числа

    scrape html, сгенерированный javascript с помощью python

    Потеря данных в полученной последовательной строке

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