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 -