Учебники

R — Анализ временных рядов

Временной ряд — это ряд точек данных, в которых каждая точка данных связана с временной меткой. Простым примером является цена акции на фондовом рынке в разные моменты времени в данный день. Другим примером является количество осадков в регионе в разные месяцы года. Язык R использует множество функций для создания, манипулирования и отображения данных временных рядов. Данные для временного ряда хранятся в объекте R, который называется объектом временного ряда . Это также объект данных R, такой как вектор или фрейм данных.

Объект временного ряда создается с помощью функции ts () .

Синтаксис

Основной синтаксис функции ts () в анализе временных рядов —

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

Ниже приведено описание используемых параметров:

  • Данные — это вектор или матрица, содержащая значения, используемые во временных рядах.

  • start указывает время начала первого наблюдения во временных рядах.

  • end указывает время окончания последнего наблюдения во временных рядах.

  • частота указывает количество наблюдений за единицу времени.

Данные — это вектор или матрица, содержащая значения, используемые во временных рядах.

start указывает время начала первого наблюдения во временных рядах.

end указывает время окончания последнего наблюдения во временных рядах.

частота указывает количество наблюдений за единицу времени.

Кроме параметра «данные» все остальные параметры являются необязательными.

пример

Рассмотрим данные о годовом количестве осадков в месте, начиная с января 2012 года. Мы создаем объект временного ряда R на период 12 месяцев и наносим его на график.

Live Demo

# 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()

Когда мы выполняем приведенный выше код, он дает следующий результат и диаграмму —

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

Диаграмма временного ряда —

Временной ряд с использованием R

Разные интервалы времени

Значение параметра частоты в функции ts () определяет интервалы времени, в которые измеряются точки данных. Значение 12 указывает, что временной ряд составляет 12 месяцев. Другие значения и их значение, как показано ниже —

  • частота = 12 привязок точек данных за каждый месяц года.

  • частота = 4 привязки точек данных за каждый квартал года.

  • частота = 6 привязок точек данных за каждые 10 минут часа.

  • частота = 24 * 6 привязок точек данных для каждых 10 минут дня.

частота = 12 привязок точек данных за каждый месяц года.

частота = 4 привязки точек данных за каждый квартал года.

частота = 6 привязок точек данных за каждые 10 минут часа.

частота = 24 * 6 привязок точек данных для каждых 10 минут дня.

Несколько временных рядов

Мы можем построить несколько временных рядов на одном графике, объединив оба ряда в матрицу.

Live Demo

# 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()

Когда мы выполняем приведенный выше код, он дает следующий результат и диаграмму —

           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

Диаграмма с несколькими временными рядами —