Аппроксимация шагов для разброса временных рядов со средним изменением каждые K шагов с использованием BICPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Аппроксимация шагов для разброса временных рядов со средним изменением каждые K шагов с использованием BIC

Сообщение Anonymous »

Во-первых, используемые синтетические данные генерируются следующим образом:

Код: Выделить всё

import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
import random
import math

np.random.seed(2)

n_samples = 180
time = np.arange(n_samples)

mean_value = random.randrange(60, 90)
mean = np.full(n_samples, mean_value)

# The fixed mean segment is generated randomly
K = random.randint(10, 40)

for i in range(K, n_samples, K):
mean[i:] = mean[i - K] - 10

noise = np.random.randn(n_samples) * random.normalvariate(4, 2)
y = mean + noise
Я не понимаю, как аппроксимировать средние значения и обнаруживать изменения в них, учитывая, что присутствует шум и дисперсия постоянна на всех этапах, но, тем не менее, неизвестна, до сих пор у меня есть функция правдоподобия L как обычная функция правдоподобия, но я не понимаю, как ее использовать, зная, что
BIC = -2Log(L)
код, который у меня есть,

Код: Выделить всё

def find_optimal_change_point(data):
min_bic = float('inf')
bics = np.full(len(data),min_bic)
change_points = [0] * K

for i in range(1, len(data)):
segment = data[:i]

mean, var = np.mean(data[:i - 1]), np.var(data[:i - 1])

N = len(segment)
S = var
new_bic = bic(N, S, 4, segment, v, len(segment),index=i)

if bics[i-1] > new_bic:
bics[i] = new_bic
change_points[k] = data[i]

elif bics[i] < bics[i-1] :
break

return change_points
Мне нужно построить график шагов на диаграмме рассеяния, где вертикальные линии шага соответствуют среднему значению каждого шага, а высота шагов соединяет две точки, в которых среднее значение изменилось< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -number-of
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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