Estamos usando STL (implementação R) para prever dados de séries temporais.
Todos os dias executamos previsões diárias. Gostaríamos de comparar valores de previsão com valores reais e identificar o desvio médio. Por exemplo, executamos a previsão para amanhã e obtivemos pontos de previsão. Gostaríamos de comparar esses pontos de previsão com dados reais que obteremos amanhã. Estou ciente de que os valores das previsões e os dados reais podem não corresponder na maioria das vezes, esse é um dos motivos pelos quais gostaríamos de acompanhar a precisão de cada dia.
Agora estamos tentando identificar qual é a melhor abordagem para resolver esse problema? quaisquer sugestões de ajuda seriam apreciadas.
Eu olhei para a pergunta Medição da precisão da previsão , mas parece que ela está relacionada à comparação de modelos em vez de calcular a precisão com valores reais.
Eu olhei para a implementação da função de precisão em R , mas confundi com duas perguntas:
1) Funcionará com dados reais versus dados de previsão, porque a maioria do tutorial diz como "dados de teste" vs "dados de previsão"
2) Parece que a função de precisão é a matriz de valores em vez de% do desvio.
Respostas:
Existem muitas maneiras diferentes de medir a precisão da previsão, e a
accuracy()
função do pacote de previsão para R gera várias delas. No seu comentário sobre "% de desvio", parece que você deseja usar o Erro médio percentual absoluto, que é uma das medidas fornecidas poraccuracy()
. As medidas mais comuns de precisão da previsão são discutidas aqui . Você pode pensar se o MAPE é a medida mais apropriada para o seu problema ou se uma das outras medidas é melhor.A
accuracy()
função funciona em dados reais. Os "dados de teste" são aqueles que não foram usados para construir as previsões. Às vezes, eles estão disponíveis, mas não são usados quando as previsões são calculadas (a clássica divisão de dados em conjuntos de treinamento e teste). Em outras situações, todos os dados disponíveis são usados para calcular as previsões e, em seguida, é necessário aguardar até que haja algumas observações futuras disponíveis para serem usadas como dados de teste.Então, se
f
é um vetor de previsões ex
um vetor de observações correspondentes aos mesmos horários, entãofará o que você quiser.
fonte
fonte
Eu tenho feito isso em R. Aqui está o meu código para meus dados para dados dentro e fora da amostra:
Espero que isso ajude um pouco. Se você quiser o meu código completo eu costumava executar isso, pergunte, pois isso é muito básico
fonte
A resposta curta: para avaliar a qualidade de suas previsões, use exatamente a mesma medida que você usou no treinamento (ajuste) do seu modelo.
A resposta longa:
Para escolher uma medida para a precisão de suas previsões, sua primeira necessidade é saber como você interpreta suas previsões. Em outras palavras, o que você realmente dá como uma "previsão"? É valor médio? Mediana? Valor mais provável? A resposta a esta pergunta identificará exclusivamente a medida da precisão da previsão. Se você predizer a média, precisará usar o desvio médio quadrático da raiz como a medida da precisão da previsão. Se você prevê mediana, deve usar o desvio médio absoluto como medida de precisão.
Vou elaborar um pouco sobre esse ponto. Vamos supor que você faça uma previsão / previsão para amanhã. Vamos supor também que, para qualquer valor que você possa observar amanhã, você tenha uma probabilidade correspondente a ser observada. Por exemplo, você sabe que pode observar 1 com probabilidade 0,03, 2 com probabilidade 0,07, 3 com probabilidade 0,11 e assim por diante. Portanto, você tem uma distribuição de probabilidades em diferentes valores. Tendo essa distribuição, você pode calcular propriedades diferentes e atribuí-las como suas "previsões". Você pode calcular a média e dar como previsão para amanhã. Como alternativa, você pode usar mediana como sua previsão. Você também pode encontrar o valor mais provável e fornecê-lo como sua previsão para amanhã.
Se você usar o valor médio como previsão, a pergunta "como medir a precisão da minha previsão" deverá ser substituída por "qual é a medida da precisão da média" e a resposta será "desvio médio quadrático entre o valores reais e previsão ". Se você usar mediana como previsões, deverá usar o desvio médio absoluto.
Pode ser que você não saiba se usa mediana, média ou outra coisa. Para descobrir o que você realmente usa como previsões, você precisa saber qual medida você tenta minimizar no treinamento. Se você tentar encontrar parâmetros do modelo que minimizem o desvio do quadrado médio da raiz entre as previsões e os valores-alvo dos dados de treinamento, suas previsões deverão ser tratadas como médias. Se você minimizar os desvios absolutos, treina seu modelo para fornecer medianas e assim por diante.
ADICIONADO
Eu gostaria de enfatizar uma coisa. Como mencionei acima, é importante manter a mesma medida de precisão em "ajuste" e em "previsão". Além disso, gostaria de dizer que você é absolutamente livre na escolha de suas medidas. Não existem medidas "melhores" ou "piores". A medida deve ser determinada pela maneira como você (ou seu cliente) usa suas previsões. Por exemplo, pode ser muito importante (para você ou seu cliente) ter uma correspondência exata e, se você não a tiver, ela não desempenhará nenhum papel se a diferença entre os valores reais e previstos for grande ou pequena. Em outros casos, essa diferença desempenha um papel. A diferença de 1 é melhor que a diferença de 2. Em alguns casos, a diferença de 2 é 2 vezes pior que a diferença de 1. Em outros casos, a diferença igual a 2 é 100 vezes pior que a diferença igual a 1. Você também pode imaginar casos exóticos nos quais você precisa gerar um valor que difere das observações. Portanto, a medida da qualidade dos números que você gera pode ser o que você quiser, dependendo do que você precisa. O que é importante é usar a mesma medida no treinamento (ajuste) e avaliação das previsões.
fonte