时间序列分析day01-前置内容

本文回顾了R语言的基本操作,包括向量和矩阵的创建与运算。介绍了如何利用matrix()函数生成矩阵,并展示了通过ts()函数转换向量为时间序列对象的过程。此外,还探讨了使用plot()函数进行数据可视化,包括绘制普通图像和时间序列图像。最后,应用par()函数实现多图并排展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


心得体会

本次主要学习了时间序列分析所需要的前置内容,复习了R语言的基础操作。

在这里感谢datawhale开源社区的小伙伴们给予的学习帮助,今后的学习也要一样加油呀


提示:以下是本篇文章正文内容

R语言基础

向量与矩阵

R 语言中可以通过 c(...) 来声明一个向量,例如 x = ( 1 , 2 , 3 , 4 , 5 ) \boldsymbol{x} = (1, 2, 3, 4, 5) x=(1,2,3,4,5) 可以通过 x <- c(1, 2, 3, 4, 5) 来声明。

对两个长度相等的向量进行四则运算的效果是向量中的每一个元素都与另一个向量中的每一个元素进行四则运算。而一个向量与一个数进行四则运算的效果是该向量中的所有元素都与这个数进行四则运算。如:

> x <- c(1, 2, 3, 4, 5)
> y <- c(1, 2, 3, 4, 5)
> x+y
[1]  2  4  6  8 10
> x+1
[1] 2 3 4 5 6
> x
[1] 1 2 3 4 5

矩阵

R 语言中可以通过 matrix() 函数来创建矩阵。matrix() 的原型为 matrix(data=NA, nrow=1, ncol=1, byrow=FALSE, dinames=NULL) 其中:

  • data : 矩阵的元素,通常为向量。
  • nrowncol : 设定矩阵的行数和列数,一般只需设定其一,另一个会根据数据长度算出。
  • byrow : 设定矩阵的填充方式,值为 TRUE 时按行填充。默认为 FALSE ,即按列填充。

通过 matrix() 创建矩阵的例子如下:

> mat1 <- matrix(1:6, nrow=2) # 元素为1到6, 两行,按列填充
> mat1
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

> mat2 <- matrix(1:6, nrow=2, byrow=TRUE)
> mat2
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6

此外还可以使用 dim() 通过向量来创建矩阵,例如:

> mat3 <- 1:6
> dim(mat3) <- c(3, 2) # 将元素为1到6变为3行2列的矩阵
> mat3
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6

生成时间序列

通过 ts() 函数可以将一个向量或矩阵转成一个一元或多元的时间序列(ts)对象,ts() 函数的原型为:ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class, names)。其中:

  • data 要生成时间序列的向量或矩阵。
  • start 第一个观测值的时间。
  • end 最后一个观测值的时间。
  • frequency 单位时间内观测值的频数。
  • deltat 两个观测值之间的时间间隔。
  • ts.eps 序列之间的误差限。若序列之间的频率差异小于 ts.eps 则认为这些序列的频率相等。
  • class 对象的类型。一元序列默认为 ts,多元序列默认为 c("mts", "ts")
  • names 给出多元序列中每个一元序列的名称,默认为 Series 1, Series 2, ...

下面是一个例子:

> ts(1:26, start = 1986)
Time Series:
Start = 1986 
End = 2011 
Frequency = 1 
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17
[18] 18 19 20 21 22 23 24 25 26

画图

R 语言中可以直接使用 plot() 函数来绘制图像,例如:

> x <- rnorm(10)
> x
 [1] -1.1297214 -0.1540311  1.9312926  0.2565608  0.1138023 -0.1129219
 [7]  0.2522398 -0.4107701 -0.3514792  0.4254152
> plot(x)

在这里插入图片描述
还可以直接绘制时间序列的图像:

> plot(ts(x))

在这里插入图片描述
为了将多幅图画在一起,可以使用 par() 函数:

> op <- par(mfrow=c(2, 1), mar=c(5, 4, 2, 2) + .1) # mfrow 指定了图像矩阵为两行一列,即画两幅图,每行一幅;mar 指定了图像的边界,分别是下、左、上、右,可以根据喜好指定
> plot(ts(x))
> acf(x, main = "") # 计算 acf 函数

在这里插入图片描述


参考资料:

开源仓库:https://github.com/datawhalechina/team-learning-data-mining/tree/master/TimeSeries

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值