如何在 r 中创建时间序列(带有示例)


在 R 中创建时间序列对象的最简单方法是使用ts()函数。

该函数使用以下基本语法:

ts(数据、开始、结束、频率)

金子:

  • data :时间序列值的向量或矩阵
  • start : 第一次观察的时间
  • end :最后一次观察的时间
  • 频率:每单位时间的观察次数。

下面的例子展示了如何在实践中使用该函数创建不同的时间序列对象。

示例 1:创建包含每月数据的时间序列

假设我们有以下称为data的向量,其中包含零售商店从 2023 年 10 月 1 日开始连续 20 个月的销售额:

 #create vector of 20 values
data <- c(6, 7, 7, 7, 8, 5, 8, 9, 4, 9, 12, 14, 14, 15, 18, 24, 20, 15, 24, 26)

我们可以使用ts()函数并指定Frequency=12从此向量创建时间序列对象:

 #create time series object from vector
ts_data <- ts(data, start=c(2023, 10), frequency=12)

#view time series object
ts_data

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2023 6 7 7
2024 7 8 5 8 9 4 9 12 14 14 15 18
2025 24 20 15 24 26                            

请注意,值向量已转换为时间序列对象,其中值现在与 2023 年 10 月到 2025 年 5 月的一个月相关联。

我们还可以使用class()函数来确认ts_data确实是一个时间序列对象:

 #display class of ts_data object
class(ts_data)

 [1] “ts”

示例 2:创建包含年度数据的时间序列

假设我们有以下名为data的向量,其中包含零售商店从 2000 年开始连续 20 年的销售额:

 #create vector of 20 values
data <- c(6, 7, 7, 7, 8, 5, 8, 9, 4, 9, 12, 14, 14, 15, 18, 24, 20, 15, 24, 26)

我们可以使用ts()函数并指定Frequency=1从此向量创建时间序列对象:

 #create time series object from vector
ts_data <- ts(data, start=2023, frequency=1)

#view time series object
Time Series:
Start = 2000 
End = 2019 
Frequency = 1 
 [1] 6 7 7 7 8 5 8 9 4 9 12 14 14 15 18 24 20 15 24 26 

请注意,值向量已转换为时间序列对象,其中值现在与 2000 年到 2019 年的年份相关联。

我们还可以使用class()函数来确认ts_data确实是一个时间序列对象:

 #display class of ts_data object
class(ts_data)

 [1] “ts”

如果我们愿意,我们还可以使用plot()函数按年份可视化销售额:

 #create line plot of time series data
plot(ts_data) 

请注意,X 轴显示年份,Y 轴显示销售额。

我们还可以自定义绘图以使其更易于阅读:

 #create line plot with custom x-axis, y-axis, title, line color and line width
plot(ts_data, xlab=' Year ', ylab=' Sales ', main=' Sales by Year ', col=' blue ', lwd= 3 )

您可以随意修改plot()函数的参数来创建您想要的精确时间序列图。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中绘制时间序列
如何在R中将数据帧转换为时间序列
如何在 R 中将字符串转换为日期时间

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注