R -- 时序分析

news2024/12/24 20:23:57

brief

横截面数据对应着某个时间点的数据。
纵向的数据对应着一系列时间点的数据,某个变量随着时间的变动被反复测量。
研究纵向数据,也许会得到“时间”的答案。

在这里插入图片描述
在这里插入图片描述

描述时间序列

在这里插入图片描述

生成时序对象

x <- runif(20)

ts(x)
ts(x,frequency = 12)
ts(x,frequency = 7)

y <- ts(x,start =2,frequency = 7)
plot(y)

# 时序的起止点,频率等
start(y)
end(y)
frequency(y)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • frequence = 7 对应 daily data
  • frequence = 0.2 对应每五个时间单位抽样一次

平滑时序对象

在这里插入图片描述

# install.packages("forecast")
library(forecast)
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2))
ylim <- c(min(Nile), max(Nile))
plot(Nile, main="Raw time series")
plot(ma(Nile, 3), main="Simple Moving Averages (k=3)", ylim=ylim)
plot(ma(Nile, 7), main="Simple Moving Averages (k=7)", ylim=ylim)
plot(ma(Nile, 15), main="Simple Moving Averages (k=15)", ylim=ylim)
par(opar)

在这里插入图片描述

分解时序对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 实例
plot(AirPassengers)

可以看到趋势很明显,但是季节性波动越来越大,可能是个相乘性的模型
在这里插入图片描述

lAirPassengers <- log(AirPassengers)
plot(lAirPassengers, ylab="log(AirPassengers)")

可以看到做log转化后,方差稳定了,变成了趋势性季节性相加模型了
在这里插入图片描述

fit <- stl(lAirPassengers, s.window="period")
plot(fit)

log transform 的data
季节项随时间的变化
趋势项随时间的变化
随机误差项在时间点上的表现等
在这里插入图片描述

fit$time.series # log转化后的结果
exp(fit$time.series) # 原始尺度上的数值

季节项,趋势项,随机项的具体数值
在这里插入图片描述

其他的季节性分解可视化函数:

par(mfrow=c(2,1))
library(forecast)
monthplot(AirPassengers, xlab="", ylab="")
seasonplot(AirPassengers, year.labels="TRUE", main="")

在这里插入图片描述

预测时间序列

指数预测模型

在这里插入图片描述
在这里插入图片描述

单指数预测模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 平均误差和平均百分比误差,误差值的和平均数,用处不大,正负误差会相互抵消
  • RMSE:平均误差平方和的 平方根
  • 平均绝对百分误差:误差在真实值中的占比,没有单位,可以用于比较不同模型的预测准确性
  • 平均绝对标准化误差:也可以用来比较不同模型的预测准确性

holt指数预测测模型

在这里插入图片描述

library(forecast)
fit <- ets(log(AirPassengers), model="AAN")
fit # 返回 alpha beta 值
#评估模型
accuracy(fit)
# 进行预测
pred <- forecast(fit, 5)
pred

holt-winters指数预测模型

在这里插入图片描述

library(forecast)
fit <- ets(log(AirPassengers), model="AAA")
fit # 返回 alpha beta  gamma值
#评估模型
accuracy(fit)
# 进行预测
pred <- forecast(fit, 5)
pred

ets()函数的其他能力

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ARIMA预测模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

概念介绍部分

  • 滞后阶数
    在这里插入图片描述

  • 时序的自相关
    ACk即一些列观察测值(Yt)和K时期之前的观测值(Yt-k)之间的相关性
    比如,AC1就是1阶滞后序列与0阶滞后序列之间的相关性

    AC1,AC2,AC3…ACk构成的图即为自相关图(ACF图)

    stats包中的acf()函数或者forecast包中的Acf()函数可以生成ACF图

  • 时序的偏相关
    在这里插入图片描述

  • 差分
    就是将序列中的观测值Yt 变为 Yt-1 - Yt
    在这里插入图片描述
    在这里插入图片描述

  • 自回归项
    AutoRegressive, AR项

  • 移动平均项
    Moving Averages, MA项

模型简介

在这里插入图片描述
在这里插入图片描述

  • 验证序列的平稳性
    可以先做差分图看看,在做ADF统计检验看看
library(forecast)
plot(Nile)
ndiffs(Nile) # 自动检测最佳的差分数d等于几
dNile <- diff(Nile)
plot(dNile)

貌似差分后数据在均值附近波动了
在这里插入图片描述

library(tseries)
adf.test(Nile)
adf.test(dNile)

前面说过ADF检验P值显著性说明方差稳定
在这里插入图片描述

  • 模型选择
    可以根据ACF 和PACF图选择模型参数
# 针对的都是差分后的数据
Acf(dNile) # 自相关
Pacf(dNile) #偏自相关

在这里插入图片描述
在这里插入图片描述

  • 拟合模型
library(forecast)
fit <- arima(Nile, order=c(0,1,1)) #ts=时序,order=c(p,d,q)
fit

在这里插入图片描述

  • 模型评价
    在这里插入图片描述
qqnorm(fit$residuals)
qqline(fit$residuals)

残差项或者说误差项满足正态性则会分布在直线上
在这里插入图片描述
检验残差值的相关性系数是否显著不为0
在这里插入图片描述

  • 预测
    用forecast进行预测,forecast(model,k)
forecast(fit, 3)

自动预测

library(forecast)
fit <- auto.arima(sunspots)
fit  #返回比较合适的模型参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python整合Django框架初试

1.安装 以下是安装Django的步骤&#xff1a; 确认Python已经安装&#xff1a;在终端&#xff08;Mac/Linux&#xff09;或命令提示符&#xff08;Windows&#xff09;中输入python -V&#xff0c;如果出现Python版本号&#xff0c;则已经安装Python&#xff1b;如果未安装&…

Nginx配置与应用

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动&#xff0c;还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量&#xf…

PCL源码剖析 -- 欧式聚类

PCL源码剖析 – 欧式聚类 参考&#xff1a; 1. pcl Euclidean Cluster Extraction教程 2. 欧式聚类分析 3. pcl-api源码 4. 点云欧式聚类 5. 本文完整工程地址 可视化结果 一. 理论 聚类方法需要将无组织的点云模型P划分为更小的部分&#xff0c;以便显著减少P的总体处理时间…

centos7.6部署ELK集群(三)之logstash7.7.0部署

32.5. 部署logstash7.7.0&#xff08;在主节点上操作&#xff09; 32.6.1. 下载logstash7.7.0 Logstash 官方下载地址&#xff1a;https://www.elastic.co/cn/downloads/logstash 32.6.2. 解压至安装目录 tar –xvf logstash-7.7.0.tar.gz -C /vmdata/ 32.6.3. 修改logstas…

逍遥自在学C语言 位运算符 “|“ 的5种高级用法

前言 在上一篇文章中&#xff0c;我们介绍了&运算符的高级用法&#xff0c;本篇文章&#xff0c;我们将介绍| 运算符的一些高级用法。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —…

JAVA入坑之异常处理

目录 一、程序错误 二、异常 2.1概述 2.2产生原因 2.3Java 异常层次结构 Error Exception 2.3.1非受检异常 2.3.2受检异常 三、异常处理机制 3.1概述 ​编辑 调用栈Call Stack 3.2异常类型的实现 3.3异常处理的关键字&#xff1a; 3.3.1try-catch Block ​编辑 …

推荐系统概述

1.推荐系统的意义 随着移动互联网的飞速发展&#xff0c;人们已经处于一个信息过载的时代。在这个时代中&#xff0c;信息的生产者很难将信息呈现在对它们感兴趣的信息消费者面前&#xff0c;而对于信息消费者也很难从海量的信息中找到自己感兴趣的信息。推荐系统就是一个将信息…

git使用常见问题(提交代码,合并冲突)

文章目录Git提交代码步骤git pullgit statusgit addgit commitgit pushgit代码冲突合并问题方法一&#xff1a;放弃本地代码方法二&#xff1a;合并代码常用命令以及参数git add 将文件添加到仓库&#xff1a;git diff 比较文件异同git log 查看历史记录git reset 代码回滚版本…

Matlab-神经网络43个案例

神经网络简介 人工神经网络是在现代神经科学的基础上提出和发展起来的&#xff0c;旨在反映人脑结构及 功能的一种抽象数学模型。自 1943 年美国心理学家 W. McCulloch 和数学家 W. Pitts 提 出形式神经元的抽象数学模型—MP 模型以来&#xff0c;人工神经网络理论技术经过了 …

Java企业级开发学习笔记(2.1)MyBatis实现简单查询

该文章主要为完成实训任务&#xff0c;详细实现过程及结果见【http://t.csdn.cn/zi0wB】 文章目录零、创建数据库与表一、基于配置文件方式使用MyBatis基本使用1.1 创建Maven项目 - MyBatisDemo1.2 在pom文件里添加相应的依赖1.3 创建与用户表对应的用户实体类 - User1.4 创建用…

数据库系统工程师——第四章 操作系统基础

文章目录&#x1f4c2; 第四章、操作系统基础 &#x1f4c1; 4.1 操作系统概述 &#x1f4d6; 4.1.1 基本概念 &#x1f4d6; 4.1.2 操作系统分类 &#x1f4d6; 4.1.3 操作系统的发展 &#x1f4c1; 4.2 进程管理 &#x1f4d6; 4.2.1 基本概念 &#x1f4d6; 4.2.2 进程的控…

电动滑板车出口欧洲CE认证EN17128标准

电动滑板车物美价廉、十分节省能源&#xff0c;充6小时电能骑20多公里&#xff0c;时速最高可达32迈&#xff0c;这对于任何年龄阶段(>12岁)的朋友来说绝对是非常适合的一种选择&#xff1b;与电动自行车相比&#xff0c;它造型美观、操作方便&#xff0c;而且因为座位重心低…

MaxHub智能电视使用123

开机和关机电视正下方&#xff0c;中央有一个圆形按钮。开机时&#xff0c;轻按此按钮1下&#xff0c;智能电视开始启动。启动后会显示MAXHUB。 如果使用中想让智能电视进入休眠状态&#xff0c;轻按此按钮1下即可。此时按钮变为红色。唤醒时&#xff0c;轻按此按钮1下&#x…

智慧物流仓储人员定位系统解决方案,提升物流仓储安全管理效率

随着近年我国制造业的崛起&#xff0c;物流业也得到了迅猛的发展&#xff0c;仓储越来越得到人们的重视。然而&#xff0c;传统仓储业存在着效率低、利用率不高、作业条件差等问题&#xff0c;以及部分仓储企业的业务模式较为基础和单一&#xff0c;导致仓储行业整体盈利水平较…

加密市场喜忧参半 DeFi与CeFi、监管之间有矛盾吗?

目前&#xff0c;身处其中的加密从业者大多喜忧参半。一方面&#xff0c;美国监管机构对中心化交易所的持续打压冲击着市场信心&#xff1b;另一方面&#xff0c;以BTC、ETH为代表的加密资产在二级市场表现相当不俗。 除价格因素外&#xff0c;加密领域内的多个信号正在显现出强…

详细介绍性能测试的方法(含文档)

性能测试是软件测试中的一个重要环节&#xff0c;其目的是评估系统在不同负荷下的性能表现&#xff0c;包括响应时间、吞吐量、并发数等指标。通常可以通过以下几种方法进行性能测试&#xff1a; 1、负载测试 负载测试是模拟多用户同时访问系统&#xff0c;测试系统在高并发、…

SaaS电子病历系统源码

SaaS电子病历系统&#xff1a;现代医疗的新趋势 SaaS电子病历系统是一种基于云计算技术的电子病历服务平台&#xff0c;它将传统的病历记录存储在云端&#xff0c;使用者可以通过互联网随时随地访问和查询病历信息。 相比于传统的医疗信息系统&#xff0c;SaaS电子病历系统具…

每日学术速递4.15

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Zip-NeRF: Anti-Aliased Grid-Based Neural Radiance Fields 标题&#xff1a;Zip-NeRF&#xff1a;基于网格的抗锯齿神经辐射场 作者&#xff1a;Xueyan Zou, Jianwei Yang, Hao …

在 Ubuntu 使用SQL Server创建 Go 应用程序

在 Ubuntu 使用SQL Server创建 Go 应用程序一、设置环境1.1、安装 SQL Server1.2、安装 GoLang1.3、安装 ODBC 驱动程序和 SQL 命令行实用工具 SQL 服务器二、使用 SQL 服务器创建 Go 应用程序2.1、创建连接到 SQL Server 并执行查询的 Go 应用2.2、创建一个使用 GORM 连接到 S…

macOS 13.4Beta 2(22F5037d)发布

系统介绍 4 月 12 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.4 开发者预览版 Beta 2 更新&#xff08;内部版本号&#xff1a;22F5037d&#xff09;&#xff0c;本次更新距离上次发布隔了 14 天。 macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通…