【R】【纽约人口数量分析】

2023-11-05

1)实验说明

从网址(http://robjhyndman.com/tsdldata/data/nybirths.dat)中下载数据到指定位置(D:\),然后解压到当前文件夹。

导入下载的数据 bank-additional-full.csv 到 R 软件。

通过时间序列分析方法对 1946 年 1 月到 1959 年 12 月的纽约每月出生人口数量进行时间序列分析,预测纽约每月人口数量的影响因素及相关规律。

2)实验环境

R-3.6.0

3)实验目的

① 学会并理解 R 语言中 decompose 函数的使用;

② 理解季节指数预测法分析数据的基本原理过程。

4)实验内容

① 从网站下载数据,read_csv 函数读取数据,并用 ts 函数重采样获得时间序列对象;

② 使用 R 中的 decompose 函数观察分析一个时间序列数据的季节、趋势以及随机变化这三种波动趋势,这三种趋势被存储在变量 ‘seasonal’,‘trend’ 和 ‘random’ 中;

③ 对数据进行季节修正。用原始数据减去 ‘seasonal’ 变量。

5)实验步骤

① 下载并导入数据

births<-read.csv("~bank-additional-full.csv")
birthstimeseries <- ts(births, frequency=12, start=c(1946,1))
#创建时间序列对象,单位时间内观测值的频数为 12,从 1946 年的 1 月份开始。

生成时间序列对象,指定 frequency,以及 start。

② 对生成的时间序列对象可视化

plot(birthstimeseries) #画出生成的时间序列数据的折线图,得到时间序列曲线

在这里插入图片描述
从上图可以看到:
这个时间序列在一定月份存在季节性变动:在每年的夏天都有一个出生峰值,在冬季的时候进入波谷。同样,这样的时间序列也可能是一个相加模型,随着时间推移,季节性波动是大致稳定的而不是依赖于时间序列水平,且对于时间的变化,随机波动看起来也是大致稳定的。

a. 思考

纽约每月出生人口数量是在夏季有峰值、冬季有低谷的时间序列,当季节性和随机变动在整个时间段内看起来基本不变,此模型很有可能是用相加模型来描述。
为了估计时间序列的趋势性、季节性和不规则部分,使用 decompose 函数分解时间序列
的波动趋势。

birthstimeseriescomponents<-decompose(birthstimeseries) #进行时间序列的波动趋势分解。

估计出的季节性、趋势的和不规则部分现在被存储在变量seasonal,trend 和random 中。

b. 由上述三种变量查看各个波动趋势数据

birthstimeseriescomponents$seasonal

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

c. 由上述结果可知:

这里给出了估计出的每年 1-12 月的季节性因素,每年都一样。季节性因素最大值在七月(约 1.46),最小值在二月(约-2.08),标志着每年的峰值在七月,低谷在二月份。

③ 使用 plot()函数

画出时间序列中估计的趋势的、季节性的和不规则的部分,更直观的观察结果。

plot(birthstimeseriescomponents) #对生成时间序列数据的趋势的、季节性和不规则部分可视化。

在这里插入图片描述
上图展现出了原始的时间序列图(顶部),估计出的趋势部分图(第二行),估计出的季节性部分(第三行),估计得不规则部分(底部)。可以看到估计出的趋势部分从 1947年的 24 下降到 1948 年的 22,紧随着是一个稳定的增加,直到 1949 年的 27。

④ 修正数据

对纽约每月出生人口数量进行季节性修正,可以用“decompose()”估计季节性部分,也可以把这个部分从原始时间序列中去除。

birthstimeseriescomponents <- decompose(birthstimeseries)
birthstimeseriesseasonallyadjusted <- birthstimeseries - birthstimeseriescomponents$seasonal
#去除原始时间序列中的季节性
plot(birthstimeseriesseasonallyadjusted) #可视化季节修正后的数据

在这里插入图片描述
上图显示结果是去除掉季节性变动的修正序列,这个季节性修正后的时间序列现在仅包含趋势部分和不规则变动部分。可以看出 1947 年-1949 年是人口的下降区,1950 年开始是稳定的增长,与修正数据前的结论一致。

6)实验分析

一个季节性时间序列包含趋势部分、季节性部分和不规则部分。分解时间序列是要把时间序列分解成这三个部分,并进行估计。若时间序列是相加模型,在 R 语言中使用 decompose()函数,可以达到估计的目的。通过本次实验,得出了纽约人口数量分析的相关规律,随季节性波动,并呈现上升趋势。也可以将本实验在其他的数据集上进行相关的时间序列分析。

本实验主要对时间序列数据进行了季节调整分析,运用 decompose 函数将数据分成趋势、季节、不规则波动三部分观察,并进一步对数据进行修正,剔除季节影响,以便更好地揭示数据本身的基本趋势,发现数据中隐藏的信息。

7)ps

因数据丢失,该实验暂未复现,暂未精读

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【R】【纽约人口数量分析】 的相关文章

随机推荐

  • 学习第一天const

    constant 指针与const const char a 指向const对象的指针或者说指向常量的指针 char const a 同上 char const a 指向类型对象的const指针 或者说常指针 const指针 const c
  • ORACLE集群管理-19c RAC ipv6+IPV4双栈配置实战

    关于IPV6支持问题 单实例环境要支持IPV6 数据库版本至少11 2 0 4版本 其实从linux7开始系统默认开启ipv6 怎么确认ipv6是否开启呢 下面介绍两种常见的方法 1 通过查看网卡属性确定 ifconfig a 命令输出有
  • Vue计算两个datetime共多少天

    假如starttime和endtime都是YYYY MM DD HH mm ss类型 将选择器的默认时间格式 object 转换成时间戳 开始时间减去结束时间 时间戳的形式进行运算 s然后转换成天数 通过toFixed函数保留两位小数 th
  • c语言中swap的意思,C语言中swap的作用和用法?

    慕村225694 swap函数一般是一个程序员自定义函数 通常是实现两个变量数值的交换 比如123int a 2 int b 3 swap a b 一般用到变量数值交换 交换后a 3 b 2 实现的方法多种多样 比如下面几种写法 1 通过使
  • Python——类的方法重写、property、运算符重载

    1 super 函数 主要是用来调用父类的方法 在子类中调用父类的方法时进行使用 2 私有方法 私有属性 1 定义方法 在类的内部 使用def关键字可以为类定义一个方法 与一般函数定义不同 类方法必须包含参数self 且为第一个参数 2 私
  • ubuntu搭建vpn步骤

    1 搭建环境 系统 Ubuntu 18 04 4 LTS Bionic Beaver 位置 轻量应用云服务器 2 安装软件 Sudo apt get update Sudo apt get install pptpd Sudo apt ge
  • 【ESP8266】关于调试fatal exception/自动重启的一些经验分享

    本人小白一枚 最近在捣鼓ESP8266的NONOS SDK开发 本来已经写好了一个工程测试基本功能也没什么问题了 但是发现了一个很严重的问题 就是每次一跑上40来分钟的时候 就会宕机重启 自动重启 真是奇了个怪了 本来这也没啥 但出于对稳定
  • 关闭 Ubuntu 中的关机/重启确认的小技巧

    导读 对于 Ubuntu 新手来说 有很多新东西要学 但是网上很多教程不是针对新手的 在这里 我们不走寻常路 不能说全部的教程都是为初学者准备 但至少大部分是 关闭 Ubuntu 中的关机 重启确认 这篇文章也是一篇新手教程 并且展示如何在
  • Android常用控件之悬浮窗

    悬浮窗可以显示在所有应用程序之上 不管在PC机还是Android设备上都有这个 最常见的是360的 加速球 来看下在Android设备上的效果 程序的目录结构如下图 创建Activity后启动Service就关闭 java view pla
  • 基于cordova打包RPGMAKERMV 安卓app

    基于cordova打包RPGMAKERMV 安卓app 1 RPGMakerMV部分 部署出网页项目 2 node部分 https nodejs org en 上下载node左边稳定版 右边是包含最新特性的版本 这是目前的版本可能不一样 设
  • 刷题之图像渲染

    有一幅以二维整数数组表示的图画 每一个整数表示该图画的像素值大小 数值在 0 到 65535 之间 给你一个坐标 sr sc 表示图像渲染开始的像素值 行 列 和一个新的颜色值 newColor 让你重新上色这幅图像 为了完成上色工作 从初
  • Verilog基本语法之循环语句(六)

    循环语句分为以下4种 for语句 通过三个步骤来决定语句的循环执行 1 给控制循环次数的变量赋初值 2 判定循环执行条件 若为假则跳出循环 若为真 则执行指定语句后 转到第三步 3 修改循环变量的值 返回第二步 repeat 连续执行一条语
  • qt 调节win声音版本大小

    QT4 情况下 运行的 会出错 目前暂时没有办法解决在 win下调节音量大小问题 在这里插入代码片 参考资料 QT 对window系统下音量的设置和获取 还有个很好贴子 没有找到
  • vim入门了

    自从上次搞定代码折叠之后 仿佛vim真的入门了 今天又看了一些内容 会复制 粘贴 查找了 更加的感觉入门了 值得庆贺 2012 5 3
  • JZOJ 幽幽子与森林

    题目大意 迷途竹林可以看成是一个n个点的森林 幽幽子定义dis u v 为u到v路径上的边的数量 若u和v不连通则为m 她定义整个森林的危险度为 为了去拜访永琳师匠 幽幽子需要提前知道迷途竹林的危险度 但迷途竹林的形态是时刻变化着的 所以幽
  • 栈系列之 最小栈的实现

    算法专题导航页面 算法专题 栈 栈系列之 栈排序 栈系列之 最小栈的实现 栈系列之 用栈实现队列 栈系列之 递归实现一个栈的逆序 题目 设计一个栈 其拥有常规的入栈 出栈操作外 需要额外具备获取最小元素的功能 其他限制 获取最小元素功能的时
  • 25. TCP协议之TCP中MSS与MTU

    MSS MSS英文全称为Maximum Segment Size 表示最大TCP报文段数据长度 并且MSS只会出现在对端发送SYN段时才会夹带的信息 在三次握手的过程中可以看到这个对端期望能够收到最大的数据段长度 如下 可以看到现在对端的M
  • 阿里云服务器部署node服务(一)

    万事开头难 尝试通过阿里云服务器部署node服务 中间踩了一些坑 借此给自己一个总结 1 远程服务器安装node 1 安装node wget https npmmirror com mirrors node v16 16 0 node v1
  • kafka介绍,安装以及简单的java调用kafka代码

    Producer 消息生产者 向broker发消息的客户端 Consumer 消息消费者 向broker取消息的客户端 Topic 一个队列 主题 Message 消息是kafka处理的对象 在kafka中 消息是被发布到broker的to
  • 【R】【纽约人口数量分析】

    文章目录 1 实验说明 2 实验环境 3 实验目的 4 实验内容 5 实验步骤 下载并导入数据 对生成的时间序列对象可视化 a 思考 b 由上述三种变量查看各个波动趋势数据 c 由上述结果可知 使用 plot 函数 修正数据 6 实验分析