R - Análise de Séries Temporais

A série temporal é uma série de pontos de dados em que cada ponto de dados está associado a um carimbo de data / hora. Um exemplo simples é o preço de uma ação no mercado de ações em diferentes pontos do tempo em um determinado dia. Outro exemplo é a quantidade de chuvas em uma região em diferentes meses do ano. A linguagem R usa muitas funções para criar, manipular e plotar os dados da série temporal. Os dados da série temporal são armazenados em um objeto R chamadotime-series object. Também é um objeto de dados R como um vetor ou quadro de dados.

O objeto de série temporal é criado usando o ts() função.

Sintaxe

A sintaxe básica para ts() função na análise de série temporal é -

timeseries.object.name <-  ts(data, start, end, frequency)

A seguir está a descrição dos parâmetros usados ​​-

  • data é um vetor ou matriz que contém os valores usados ​​na série temporal.

  • start especifica a hora de início da primeira observação na série temporal.

  • end especifica a hora de término da última observação na série temporal.

  • frequency especifica o número de observações por unidade de tempo.

Exceto o parâmetro "dados", todos os outros parâmetros são opcionais.

Exemplo

Considere os detalhes da precipitação anual em um local a partir de janeiro de 2012. Criamos um objeto de série temporal R por um período de 12 meses e o plotamos.

# Get the data points in form of a R vector.
rainfall <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)

# Convert it to a time series object.
rainfall.timeseries <- ts(rainfall,start = c(2012,1),frequency = 12)

# Print the timeseries data.
print(rainfall.timeseries)

# Give the chart file a name.
png(file = "rainfall.png")

# Plot a graph of the time series.
plot(rainfall.timeseries)

# Save the file.
dev.off()

Quando executamos o código acima, ele produz o seguinte resultado e gráfico -

Jan    Feb    Mar    Apr    May     Jun    Jul    Aug    Sep
2012  799.0  1174.8  865.1  1334.6  635.4  918.5  685.5  998.6  784.2
        Oct    Nov    Dec
2012  985.0  882.8 1071.0

O gráfico de série temporal -

Diferentes intervalos de tempo

O valor do frequencyparâmetro na função ts () decide os intervalos de tempo nos quais os pontos de dados são medidos. Um valor de 12 indica que a série temporal é de 12 meses. Outros valores e seu significado são os seguintes -

  • frequency = 12 rastreia os pontos de dados para cada mês do ano.

  • frequency = 4 rastreia os pontos de dados para cada trimestre de um ano.

  • frequency = 6 rastreia os pontos de dados a cada 10 minutos de uma hora.

  • frequency = 24*6 rastreia os pontos de dados a cada 10 minutos de um dia.

Várias Séries Temporais

Podemos plotar várias séries temporais em um gráfico, combinando ambas as séries em uma matriz.

# Get the data points in form of a R vector.
rainfall1 <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)
rainfall2 <- 
           c(655,1306.9,1323.4,1172.2,562.2,824,822.4,1265.5,799.6,1105.6,1106.7,1337.8)

# Convert them to a matrix.
combined.rainfall <-  matrix(c(rainfall1,rainfall2),nrow = 12)

# Convert it to a time series object.
rainfall.timeseries <- ts(combined.rainfall,start = c(2012,1),frequency = 12)

# Print the timeseries data.
print(rainfall.timeseries)

# Give the chart file a name.
png(file = "rainfall_combined.png")

# Plot a graph of the time series.
plot(rainfall.timeseries, main = "Multiple Time Series")

# Save the file.
dev.off()

Quando executamos o código acima, ele produz o seguinte resultado e gráfico -

Series 1  Series 2
Jan 2012    799.0    655.0
Feb 2012   1174.8   1306.9
Mar 2012    865.1   1323.4
Apr 2012   1334.6   1172.2
May 2012    635.4    562.2
Jun 2012    918.5    824.0
Jul 2012    685.5    822.4
Aug 2012    998.6   1265.5
Sep 2012    784.2    799.6
Oct 2012    985.0   1105.6
Nov 2012    882.8   1106.7
Dec 2012   1071.0   1337.8

O gráfico de várias séries temporais -