📅  最后修改于: 2020-12-01 08:46:20             🧑  作者: Mango
时间序列是一种图形表示,表示特定时间顺序的数据点序列。时间序列是一个序列,该序列是在连续等间隔的时间点处使用序列获得的。时间序列可以视为离散时间数据。我们将在本章中使用的数据集是“经济学”数据集,其中包括美国经济时间序列的所有详细信息。
该数据帧包括以下属性,如下所述-
Date | Month of data collection |
Psavert | Personal savings rate |
Pce | Personal consumption expenditure |
Unemploy | Number of unemployed in thousands |
Unempmed | Median duration of unemployment |
Pop | Total population in thousands |
加载所需的程序包并设置默认主题以创建时间序列。
> library(ggplot2)
> theme_set(theme_minimal())
> # Demo dataset
> head(economics)
# A tibble: 6 x 6
date pce pop psavert uempmed unemploy
1 1967-07-01 507. 198712 12.6 4.5 2944
2 1967-08-01 510. 198911 12.6 4.7 2945
3 1967-09-01 516. 199113 11.9 4.6 2958
4 1967-10-01 512. 199311 12.9 4.9 3143
5 1967-11-01 517. 199498 12.8 4.7 3066
6 1967-12-01 525. 199657 11.8 4.8 3018
创建一个基本的线图,以创建一个时间序列结构。
> # Basic line plot
> ggplot(data = economics, aes(x = date, y = pop))+
+ geom_line(color = "#00AFBB", size = 2)
我们可以使用以下命令来绘制数据子集-
> # Plot a subset of the data
> ss as.Date("2006-1-1"))
> ggplot(data = ss, aes(x = date, y = pop)) +
+ geom_line(color = "#FC4E07", size = 2)
在这里,我们将按日期绘制变量psavert和uempmed。在这里,我们必须使用tidyr包来重塑数据。这可以通过折叠同一列(新列)中的psavert和uempmed值来实现。 R函数:collect()[tidyr]。下一步涉及创建一个级别为psavert和uempmed的分组变量。
> library(tidyr)
> library(dplyr)
Attaching package: ‘dplyr’
The following object is masked from ‘package:ggplot2’: vars
The following objects are masked from ‘package:stats’: filter, lag
The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union
> df %
+ select(date, psavert, uempmed) %>%
+ gather(key = "variable", value = "value", -date)
> head(df, 3)
# A tibble: 3 x 3
date variable value
1 1967-07-01 psavert 12.6
2 1967-08-01 psavert 12.6
3 1967-09-01 psavert 11.9
使用以下命令创建多条线图,以了解“ psavert”和“ unempmed”之间的关系-
> ggplot(df, aes(x = date, y = value)) +
+ geom_line(aes(color = variable), size = 1) +
+ scale_color_manual(values = c("#00AFBB", "#E7B800")) +
+ theme_minimal()