龙空技术网

R语言"数据规整"大全与时间序列的(p)acf分析

甲亥13 86

前言:

此刻朋友们对“r语言没有设定程序包”大致比较重视,同学们都需要分析一些“r语言没有设定程序包”的相关知识。那么小编在网摘上汇集了一些关于“r语言没有设定程序包””的相关资讯,希望兄弟们能喜欢,朋友们一起来学习一下吧!

Tibble的特点和存在意义

在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析;通过数据规整聚,可以实现数据的聚合、合并、重塑及分组

在R语言中进行数据分析处理的二维表格的经典数据结构:

data.frame:最基本,大多函数的设计基于此种结构;读写速度一般

data.table:在data.frame上的改进,读写速度最快;加入了索引操作,结合索引数据处理更方便

tibble:主要在dplyr和tibble包中有效,主要关注于列list,支持整洁格式;数据进行懒加载

涉及到的相关包:

dplyr 数据处理:dplyr包定义了tbl类型,作为实际数据源的包装类型。它封装数据源病提供了一组统一的方法操作数据,该包当前支持的数据源包括:标准数据框(以tibbles的形式)、几个数据库管理系统以及其他数据源。tidyr 数据清理purrr 函数化编程tibble 数据类型定义:tibble包括定义tibble为特定的数据框,它改变了标准数据框的一些行为;两者主要差异主要包括三点:tibble 不会像数据框一样默认改变字符串列为因子类型;tibble 对列的命名要求更宽松;tibble 的打印方法对大数据集特别方便。

tibble对data.frame做了重新的设定:

不关心输入类型,可存储任意类型,包括list类型没有行名设置 row.names支持任意的列名会自动添加列名类型只能回收长度为1的输入会懒加载参数,并按顺序运行是tbl_df类型Tidyverse之dplyr

Tidyverse是R语言的一个程序包;Tidy的意思是干净、整洁,Verse的意思是诗歌、歌曲,Tidyverse的意思就是干净整洁的语句。而dplyr包可以看作是plyr包的一个扩展,主要是针对数据框的数据操作;在使用dplyr包中的函数对数据框进行操作之间,最好将其转换为tbl对象。

dplyr用于数据规整,堪比瑞士军刀;dplyr有许多方便的函数,非常建议将它用于数据分析:

select() 提取列并返回一个tibble。arrange() 更改行的顺序。filter() 根据其值选择行。mutate() 添加作为现有变量函数的新变量。rename() 轻松更改列的名称summarise() 将多个值减少到单个摘要。pull() 提取单个列作为向量。_join()的两个数据帧合并到一起的函数组,包括(inner_join(),left_join(),right_join(),和full_join())。

dplyr提供了很多函数可以很容易处理tbl数据对象;如何查询数据?可以利用select() 和 filter() 函数实现,前者过滤列,后者过滤行。

Tidyverse 之Tidyr

Tidyr的目的是拥有组织良好或整洁的数据,Tidyverse将tidydata其定义为:

每个变量作为一列每个观测作为一行每个值占一个单元格

Tidyr有两个主要函数,gather()和spread()。这些函数允许在长数据格式和宽数据格式之间进行转换。

gather()函数将宽数据格式更改为长数据格式。

spread()函数与gather()函数相反。key列的类别将成为单独的新列,value列中的值将根据关联的key列进行拆分。

「链接」

reshape2也可以实现数据的“长、宽”转换

reshape2包是由Hadley Wickham开发的一个R包,从其命名不难看出,reshape2包可以对数据重塑,就像炼铁一样,先融化数据,再重新整合数据,它的主要功能函数为cast()melt()实现了长数据格式与宽数据格式之间的相互转换

melt.list()函数能够递归地拆分列表元素。

ccc<-c(1:10,c(NA,2,3,4))

ccclist<-as.list(ccc)

melt(ccclist)

cast()函数具有两种形式:

dcast() :输出为数据框acast() :输出为向量、矩阵、数组aggregate()的数据整合功能

#产生一个df#省略四个变量的输入a<-data.frame(name,gender,age,height)b <- aggregate(a[,3:4], by=list(gender=gender), FUN=mean)a;b
acf(自相关系数)和pacf(偏自相关系数)

acf的全称是AutoCorrelation Function,即自相关函数。但这个函数不仅可以计算自相关,也可以计算自协方差。

1、画图,acf(ts)、pacf(ts)

举例:

2、数值,acf(ts)$acf、pacf(ts)$acf

#举例> acf(1:13,type = c("correlation"))$acf, , 1             [,1] [1,]  1.00000000 [2,]  0.76923077 [3,]  0.54395604 [4,]  0.32967033 [5,]  0.13186813 [6,] -0.04395604 [7,] -0.19230769 [8,] -0.30769231 [9,] -0.38461538[10,] -0.41758242[11,] -0.40109890[12,] -0.32967033> summary(acf(1:13,type = c("covariance")))       Length Class  Mode     acf    12     -none- numeric  type    1     -none- charactern.used  1     -none- numeric  lag    12     -none- numeric  series  1     -none- charactersnames  0     -none- NULL     > > summary(pacf(1:13,type = c("correlation")))       Length Class  Mode     acf    11     -none- numeric  type    1     -none- charactern.used  1     -none- numeric  lag    11     -none- numeric  series  1     -none- charactersnames  0     -none- NULL     

3、自相关含义解释:

自己 与 自己的过去 是否具有线性相关?

范围是-1~1;绝对值越靠近1越相关,绝对值越靠近0越不相关。

当纵线落入虚线以内,则认为该数值与0无显著差异,即可认为不相关。

4、深层次用法:

在时间序列分析过程中,一种分析手段是:根据 自相关系数图 和 偏自相关系数图 来猜测时间序列可能属于哪一种时间序列模型。

故需要分析人员大量浏览各种可能的已知时间序列模型,并熟悉他们的自相关系数图(acf函数)、偏自相关图(pacf函数);并结合扩展的自相关函数(eacf函数,Tsay,Tia0,1984 W.S.Chan.1999 )实现模型定阶,注意——eacf的使用,必须先library(TSA)。

AR(p)

MA(q)

ARMA(p,q)

ACF

拖尾

q阶截尾

拖尾

PACF

p阶截尾

拖尾

拖尾

拖尾的话,ar模型或者arma模型;

截尾的话,ma模型;根据超出两倍标准差的阶数,确定移动平均模型的阶数。

或者,可以用auto.arima函数,或者TSA包的eacf函数,确定阶数。

5、关于eacf的补充

计算存储在 z 中的时间序列的样本扩展 acf (ESACF)。ESACF 的矩阵,其 AR 阶最高为 ar.max,MA 阶最高为 ma.max,存储在矩阵 EACFM 中。

eacf(z, ar.max = 7, ma.max = 13)

z

时间序列数据

ar.max

最大 AR 订单;默认=7

ma.max

最大 MA 订单;默认=13

#简单> data(arma11.s)> arma11.sTime Series:Start = 1 End = 100 Frequency = 1   [1] -0.764596332  1.297195966  0.668426838 -1.607385082 -0.626004808  [6]  1.484327417  1.885497663 -0.009316681 -0.339675938 -0.972070263 [11] -1.867989789  0.894912243  2.638806318  2.946696256  2.877056296 [16]  1.162570774  0.930328598  1.722330050  1.985158627  2.427853650 [21]  1.465286143  3.264971869  3.673337069  4.362467628  3.849652801 [26]  2.203451041  1.766208327  2.045552176  0.510890846 -0.837718447 [31]  1.127791121  0.850939383 -0.587615131  0.040573137 -0.274500005......> eacf(arma11.s)AR/MA  0 1 2 3 4 5 6 7 8 9 10 11 12 130 x x x x o o o o o o o  o  o  o 1 x o o o o o o o o o o  o  o  o 2 x o o o o o o o o o o  o  o  o 3 x x o o o o o o o o o  o  o  o 4 x o x o o o o o o o o  o  o  o 5 x o o o o o o o o o o  o  o  o 6 x o o o x o o o o o o  o  o  o 7 x o o o x o o o o o o  o  o  o 

左上角为0的模型,为最适合的模型;

EACF在适度大的样本容量,似乎有优良的样本性质;

EACF统计误差,左上0值附近的均可尝试对比。

标签: #r语言没有设定程序包