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

Программы на Python
Anonymous
Расчет ошибки для временного ряда с использованием автокорреляции

Сообщение Anonymous »

Я пытаюсь вычислить время автокорреляции для временного ряда, полученного на основе кадров траектории молекулярной динамики. Я использовал несколько методов для оценки времени автокорреляции, поскольку оно мне нужно для вычисления статистической ошибки наблюдаемой величины. Моей первой попыткой, вдохновленной этой веткой StackOverflow, было усреднение блоков (ссылка ниже). График усреднения блоков для стандартной ошибки среднего (SEM) не показывает четкого плато:
Ссылка: Оценка автокорреляции с использованием Python
Пример вывода (усреднение блоков SEM в зависимости от размера блока):
Изображение
Мой вопрос: если в SEM нет четкого плато усреднения по блокам, имеет ли смысл пытаться оценить статистическую погрешность для этих данных? Если да, то какие методы/меры предосторожности мне следует использовать, чтобы получить надежную оценку ошибки (или консервативную границу) на основе одной длинной траектории кадров MD?
Я пробовал использовать другие методы, такие как statsmodel.tsa.stattools.acf, для расчета времени автокорреляции, и в конечном итоге я получаю ошибку 0,0008712, что, на мой взгляд, немного нереально. Есть ли другой способ более точного расчета ошибки для этих данных?
Я использовал следующий код для расчета ошибки с помощью statsmodel.tsa.stattools.acf,
def tau_cal(acf_out,nums):
positive_acf =np.where(acf_out > 0.0000)[0]

result = [acf_out[x] for x in positive_acf]
tau = 1 + 2 * np.sum(result[1:-1])
Neff = len(nums)/tau
error = (statistics.stdev(nums))/np.sqrt(Neff)
return error
time = statsmodel.tsa.stattools.acf(nums)
error = tau_cal(acf_out,nums)


Подробнее здесь: https://stackoverflow.com/questions/797 ... orrelation

Вернуться в «Python»