Atualmente, estou trabalhando em alguns dados de séries temporais, sei que posso usar o modelo LOESS / ARIMA.
Os dados são gravados em um vetor cujo comprimento é 1000, que é uma fila, sendo atualizado a cada 15 minutos,
Assim, os dados antigos serão exibidos enquanto os novos dados forem inseridos no vetor.
Eu posso executar novamente o modelo inteiro em um planejador, por exemplo, treinar novamente o modelo a cada 15 minutos, ou seja, usar todo o valor 1000 para treinar o modelo LOESS. No entanto, é muito ineficiente, pois toda vez que apenas um valor é inserido, enquanto outros 999 vlaues ainda o mesmo da última vez.
Então, como posso obter um melhor desempenho?
Muito Obrigado
time-series
model-evaluation
zhang
fonte
fonte
Respostas:
Deixe-me reformular isso em algo mais familiar para mim. O ARIMA é um análogo à aproximação PID. Eu sou integral. MA é P. o AR pode ser expresso como equações de diferença que são o termo D. LOESS é um análogo aos mínimos quadrados (big brother de alta tecnologia).
Então, se eu quisesse melhorar um modelo de segunda ordem (PID), o que poderia ser feito?
Uma das perguntas que não consegui fazer é "o que significa desempenho?". Se não temos uma medida de bondade claramente declarada, não há como saber se um método candidato "melhora". Parece que você deseja uma melhor modelagem, menor tempo de computação e uso mais eficiente das informações. Ter efemérides sobre os dados reais também pode informar isso. Se você estiver modelando o vento, poderá saber onde procurar modelos de aumento ou encontrar transformações úteis para seus dados.
fonte
Essa é uma pergunta diferente, dependendo de você estar usando um modelo loess ou ARIMA. Por enquanto, responderei apenas à pergunta mais insana, pois suspeito que haja poucas eficiências possíveis no caso ARIMA, além de talvez ter um bom conjunto de valores iniciais.
Um modelo loess funciona ajustando uma regressão ponderada a diferentes subconjuntos dos dados. Apenas uma proporção dos dados é usada para cada ajuste. Portanto, toda vez que você reequipar o modelo, deixando cair um ponto de dados em uma extremidade e adicionar outro na extremidade oposta, tecnicamente você só precisará ajustar as regressões locais que usam o primeiro e o último ponto. Todas as regressões locais intermediárias serão as mesmas. Exatamente quantas dessas regressões locais sem impacto dependerão do seu parâmetro de suavização no loess.
Você pode hackear qualquer pacote que esteja usando para ajustar-se ao seu modelo, para que ele possa tirar a maior parte das regressões locais de um ajuste anterior e ajustar-se apenas àquelas necessárias no início e no final dos dados.
No entanto, parece-me que isso só valeria a pena se o custo em tempo de programação extra fosse substancialmente menor que o custo em tempo de computador de apenas ajustar o modelo do zero a cada 15 minutos. Com apenas 1000 pontos de dados, certamente não é algo tão grande caber no modelo a partir do zero a cada vez.
fonte