ComeçarComece de graça

Avaliando a acurácia de previsões com métodos não sazonais

Em ciência de dados, um conjunto de treinamento é um conjunto de dados usado para descobrir possíveis relações. Um conjunto de teste é um conjunto de dados usado para verificar a força dessas relações potenciais. Ao separar um conjunto de dados nessas partes, você geralmente destina mais dados para treinamento e menos para teste.

Uma função que pode ser usada para criar conjuntos de treinamento e teste é subset(), que retorna um subconjunto de uma série temporal em que os argumentos opcionais start e end são especificados usando valores de índice.

> # x é um vetor numérico ou série temporal
> # Para obter as observações de 101 a 500
> train <- subset(x, start = 101, end = 500, ...)

> # Para obter as primeiras 500 observações
> train <- subset(x, end = 500, ...)

Como você viu no vídeo, outra função, accuracy(), calcula várias estatísticas de acurácia de previsão dadas as previsões e as observações reais correspondentes. Ela é inteligente o suficiente para encontrar as observações relevantes se você fornecer mais do que aquelas que está prevendo.

> # f é um objeto da classe "forecast"
> # x é um vetor numérico ou série temporal
> accuracy(f, x, ...)

As medidas de acurácia fornecidas incluem o root mean squared error (RMSE), que é a raiz quadrada do mean squared error (MSE). Minimizar o RMSE, o que corresponde a aumentar a acurácia, é o mesmo que minimizar o MSE.

A série temporal pré-carregada gold contém preços diários do ouro por 1108 dias. Aqui, você usará os primeiros 1000 dias como conjunto de treinamento e calculará previsões para os 108 dias restantes. Elas serão comparadas aos valores reais desses dias usando as funções simples de previsão naive(), que você usou anteriormente neste capítulo, e meanf(), que fornece previsões iguais à média de todas as observações. Você precisará especificar a palavra-chave h (que define o número de valores que você quer prever) para ambas.

Este exercício faz parte do curso

Previsão em R

Ver curso

Instruções do exercício

  • Use subset() para criar um conjunto de treinamento de gold com as primeiras 1000 observações. Chame-o de train.
  • Calcule previsões do conjunto de teste, contendo os dados restantes, usando naive() e atribua a naive_fc. Defina h de forma apropriada.
  • Agora, calcule previsões do mesmo conjunto de teste usando meanf() e atribua a mean_fc. Defina h de forma apropriada.
  • Compare as estatísticas de acurácia de previsão dos dois métodos usando a função accuracy().
  • Com base nos resultados acima, armazene as previsões com maior acurácia em bestforecasts.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Create the training data as train
train <- subset(___, end = ___)

# Compute naive forecasts and save to naive_fc
naive_fc <- naive(___, h = ___)

# Compute mean forecasts and save to mean_fc
mean_fc <- meanf(___, h = ___)

# Use accuracy() to compute RMSE statistics
accuracy(___, gold)
___(___, gold)

# Assign one of the two forecasts as bestforecasts
bestforecasts <- ___
Editar e executar o código