Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用季节性周期对时间序列中的缺失值进行插值

用季节性周期对时间序列中的缺失值进行插值
EN

Stack Overflow用户
提问于 2011-02-11 00:12:27
回答 4查看 12.1K关注 0票数 14

我有一个时间序列,我想智能地插入缺失值。特定时间的值受到多天趋势的影响,以及它在每日周期中的位置。

以下是myzoo中缺少第十个观察值的示例

代码语言:javascript
运行
AI代码解释
复制
start <- as.POSIXct("2010-01-01") 
freq <- as.difftime(6, units = "hours") 
dayvals <- (1:4)*10 
timevals <- c(3, 1, 2, 4) 
index <- seq(from = start, by = freq, length.out = 16)
obs <- (rep(dayvals, each = 4) + rep(timevals, times = 4))
myzoo <- zoo(obs, index)
myzoo[10] <- NA

如果我必须实现这一点,我会使用附近几天的某种加权平均收盘时间,或者将当天的值添加到适合更大趋势的函数线,但我希望已经存在一些适用于这种情况的包或函数?

编辑:稍微修改了代码,以澄清我的问题。有一些na.*方法可以从最近的邻居处进行插值,但在这种情况下,它们不会识别缺失值位于当天的最低值的时间。也许解决方案是将数据重塑为宽格式,然后进行插值,但我不想完全忽略同一天的邻接值。值得注意的是,diff(myzoo, lag = 4)返回一个10的向量。解决方案可能在于reshapena.splinediff.inv的某种组合,但我就是想不出来。

以下是三种不起作用的方法:

EDIT2。使用以下代码生成的图像。

代码语言:javascript
运行
AI代码解释
复制
myzoo <- zoo(obs, index)
myzoo[10] <- NA # knock out the missing point
plot(myzoo, type="o", pch=16) # plot solid line
points(na.approx(myzoo)[10], col = "red")
points(na.locf(myzoo)[10], col = "blue")
points(na.spline(myzoo)[10], col = "green")
myzoo[10] <- 31 # replace the missing point
lines(myzoo, type = "o", lty=3, pch=16) # dashed line over the gap
legend(x = "topleft", 
       legend = c("na.spline", "na.locf", "na.approx"), 
       col=c("green","blue","red"), pch = 1)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-11 11:45:23

试试这个:

代码语言:javascript
运行
AI代码解释
复制
x <- ts(myzoo,f=4)
fit <- ts(rowSums(tsSmooth(StructTS(x))[,-2]))
tsp(fit) <- tsp(x)
plot(x)
lines(fit,col=2)

其思想是使用时间序列的基本结构模型,该模型使用卡尔曼滤波器精细地处理缺失值。然后使用卡尔曼平滑法估计时间序列中的每个点,包括任何省略的点。

为了使用StructTS,我不得不将你的zoo对象转换为频率为4的ts对象。您可能希望再次将拟合值更改回zoo。

票数 17
EN

Stack Overflow用户

发布于 2011-02-11 02:52:27

在这种情况下,我认为您需要在ARIMA模型中进行季节性校正。这里没有足够的日期来适应季节模型,但这应该可以让你开始。

代码语言:javascript
运行
AI代码解释
复制
library(zoo)
start <- as.POSIXct("2010-01-01") 
freq <- as.difftime(6, units = "hours") 
dayvals <- (1:4)*10 
timevals <- c(3, 1, 2, 4) 
index <- seq(from = start, by = freq, length.out = 16)
obs <- (rep(dayvals, each = 4) + rep(timevals, times = 4))
myzoo <- myzoo.orig <- zoo(obs, index)
myzoo[10] <- NA

myzoo.fixed <- na.locf(myzoo)

myarima.resid <- arima(myzoo.fixed, order = c(3, 0, 3), seasonal = list(order = c(0, 0, 0), period = 4))$residuals
myzoo.reallyfixed <- myzoo.fixed
myzoo.reallyfixed[10] <- myzoo.fixed[10] + myarima.resid[10]

plot(myzoo.reallyfixed)
points(myzoo.orig)

在我的测试中,ARMA(3,3)非常接近,但这只是运气。对于较长的时间序列,您应该能够校准季节性校正,以提供良好的预测。对信号和季节校正的潜在机制有一个很好的先验,以获得更好的样本性能,这将是有帮助的。

票数 2
EN

Stack Overflow用户

发布于 2016-03-22 00:57:23

forecast::na.interp是一个很好的方法。从documentation

对非季节性序列使用线性插值,并使用季节性序列的周期性stl分解来替换缺失值。

代码语言:javascript
运行
AI代码解释
复制
library(forecast)
fit <- na.interp(myzoo)
fit[10]  # 32.5, vs. 31.0 actual and 32.0 from Rob Hyndman's answer

This paper针对实时序列评估了几种插值方法,并发现na.interp既准确又高效:

本文测试的R实现中的

、预测包中的na.interp和zoo包中的na.StructTS显示了最佳的总体结果。

na.interp函数也不会比最快的方法na.approx慢太多,因此在计算时间方面,loess分解似乎不是很苛刻。

同样值得注意的是,Rob Hyndman编写了forecast包,并在提供了对此问题的答案后包含了na.interpna.interp很可能是对这种方法的改进,尽管它在这种情况下表现较差(可能是因为在StructTS中指定了句点,na.interp会找出答案)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4964255

复制
相关文章
从零开始制作一款打卡类小程序
这个小程序的上线成本比较高,需要营业执照,还有因为论坛的存在,上线之后还需要工信部的备案资质,否则不予更新代码,所以我已经停止对它的维护了。开源这个项目的代码: github地址,欢迎star、fork!!!
月小水长
2019/07/31
2K0
从零开始制作一款打卡类小程序
如何搭建商城小程序?
自小程序推出以后,其市场规模、参与的服务企业数量一直保持快速增长。商城小程序的发展速度也非常迅猛,商城小程序的平台影响力越来越大,也将越来越重要。那么商城小程序是怎么被开发的呢?该如何搭建?
z757433191
2022/01/19
4.4K0
如何搭建微信小程序?
微信小程序是腾讯于2017年1月9日推出的一种不需要下载安装即可在微信平台上使用的应用,主要提供给企业、政府、媒体、其他组织或个人的开发者在微信平台上提供服务。截止2018年3月,微信小程序用户规模突破4亿,小游戏类微信小程序占比达28%。
用户6535265
2019/10/23
9.2K0
如何搭建微信小程序?
如何搭建微信小程序?
微信小程序是腾讯于2017年1月9日推出的一种不需要下载安装即可在微信平台上使用的应用,主要提供给企业、政府、媒体、其他组织或个人的开发者在微信平台上提供服务。截止2018年3月,微信小程序用户规模突破4亿,小游戏类微信小程序占比达28%。
用户2416682
2019/10/23
8.3K0
如何搭建微信小程序?
如何快速搭建自己的小程序
一、选择一个合适的微信小程序模板 模板地址:https://www.it120.cc/?referrer=10024 二、本文选取甜果果小铺作为演示 三、基本照着官方的教程就可以部署一个属于自己的小程
两只橙
2018/10/27
3.5K0
如何快速搭建自己的小程序
如何快速搭建微信小程序
微信小程序是腾讯于2017年1月9日推出的一种不需要下载安装即可在微信平台上使用的应用,主要提供给企业、政府、媒体、其他组织或个人的开发者在微信平台上提供服务。截止2018年3月,微信小程序用户规模突破4亿,小游戏类微信小程序占比达28%。
隨心之所願
2018/10/30
17.5K2
如何快速搭建微信小程序
开放银行如何搭建小程序生态平台?
“开放银行是金融发展的一个非常重要的领域。”央行科技司司长李伟表示,开放银行也已经逐渐成为我国商业银行提升获客能力,增强用户粘性的新途径,对促进银行业转型升级更好的服务实体具有重要的作用。
二山山记
2022/09/07
1.6K0
微信小程序从零开始开发步骤(一)搭建开发环境小程序初始化目录介绍:
从零到有写一个小程序系列专题,很早以前就想写来分享,但由于项目一直在进展,没有过多的时间研究技术,现在可以继续分享了。 1:注册 用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,网
王小婷
2018/06/01
2.3K0
如何开发一款 H5 小程序直播?
大前端这几年算是一个热词,对于前段来说如果不是大前端,技术相对来说就已经算是落后了。如果还停留在对ES6,Vue这些基本技能的学习只能说处于一个及格线。
Nealyang
2021/01/14
3.7K0
如何开发一款 H5 小程序直播?
开发 | 如何在小程序里搭建客服系统?
知晓程序(微信号 zxcx0101)今天带来的,是基于「药顾问」微信小程序项目的 socket 客服模块搭建过程。
知晓君
2018/08/01
1.5K0
开发 | 如何在小程序里搭建客服系统?
如何用小程序搭建智能家居平台
智能家居(Smart Home)是以住宅为平台,通过物联网技术将家中的各种设备连接到一起,实现智能化的居住环境。智能家居是在互联网影响之下物联化的体现。智能家居是以家庭住宅为平台,综合利用布线技术、网络通信技术、 智能家居-系统设计方案安全防范技术、音视频技术将家居生活有关的设施、功能实现集成,构建更加完善的家居环境与家 庭日程事务的管理系统,提升家居安全性、便利性、舒适性,并实现环保节能的目的。
二山山记
2022/08/04
1.5K0
上架了一款小程序
开发了一款工具小程序 - 胖子鱼小工具,目前主要有两个功能: 可以将自己的手机的图片、微信聊天的图片上传到自己的七牛空间,相当于多了一个照片的存储空间,目前只对接了七牛,后续还可以对接其他平台。 头像合成,比如国旗头像
zz_jesse
2023/01/30
1960
上架了一款小程序
从微信小程序原理来看app如何搭建自己的小程序环境
还记得当初小程序刚出来爆火的场景,依附于微信确实是给我们带来了极大的便利,有着微信的流量,用完即走,无需下载,随时使用,从17年到23年,小程序已经深入人心,吃喝玩乐你都可以找到小程序的身影,疫情期间各种码的场景也给小程序带来了巨大的流量
FE情报局
2023/03/01
2.5K0
从微信小程序原理来看app如何搭建自己的小程序环境
如何全栈开发一款团购小程序应用
目前Taro已经进入了3.x时代,可以让开发者使用完整的React、Vue等框架进行开发。笔者作为一个重度React使用者自然会在众多框架中选用Taro(之后会尝试Kbone)。
用户1172164
2021/01/20
1K0
大漠穷秋:如何快速构建一款SCRM小程序?
导语 | 9月21日,云+社区技术沙龙“小程序·云开发”北京站圆满落幕。本期沙龙腾讯云联合猫眼、即速应用、白鹭引擎等企业,将从小程序·云开发后台技术、云开发实时数据推送实践、云开发AI智能客服实践等方面揭秘云开发应用实践,带来更多技术实战分享。本文是大漠穷秋老师带来的Workshop环节,讲解了SCRM的相关技术发展和原理以及如何实现,然后带领大家进行上手编码实操。
腾讯云开发者社区技术沙龙
2019/10/10
3.6K3
大漠穷秋:如何快速构建一款SCRM小程序?
如何从零开始,做一个跑步小程序?| 实战案例
知晓程序注: 我们往期发布的实战指南,大多针对线上业务,如「手把手教你做电商小程序」系列。 关注知晓程序(微信号 zxcx0101),回复「电商」,查看电商小程序开发教程系列文章。 我们相信,小程序的
知晓君
2018/06/28
1.1K0
小程序_开发环境搭建
     这个微信从零开始不是大神为初学者的教学,而是一个初学者对于微信小程序的摸索,写博文的目的一方面是为了自己加深记忆,另一方面是和一块学习的朋友讨论分享小程序的知识。本人做了3年iOS,一段时间的java web。小程序出来,看了介绍他就吸引了我,小程序的成功是由于微信这个大平台几乎人人手机都会有的App。以前做app一部分客户的需求对于小程序完美符合,简单、高效、不占内存,召之即来挥之即去。像之前做的点餐APP,开发微信小程序优于app。废话不多少了,开始小程序之旅。
星宇大前端
2019/01/15
3.2K0
搭建typecho小程序版
这里的微信小程序账号有说法,我看别的博主写到需要成年绑银行卡 不过我17同样绑有银行卡也可以用
Gujiu
2022/03/29
2.3K0
搭建typecho小程序版
mpvue搭建小程序框架
由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler) 运行时框架 runtime 和代码编译器 compiler 实现
达达前端
2019/07/15
2.4K0
mpvue搭建小程序框架
如何快速搭建自己的微信小程序商城?
以下我们选择酒店小程序开发制作的服务商平台为例,来具体说明如何快速搭建自己的微信小程序商城?
Winna
2021/11/09
13.3K3
如何快速搭建自己的微信小程序商城?

相似问题

小程序搭建?

1225

小程序搭建的话?

2205

如何快速搭建小程序呢?

1307

如何搭建小程序音视频?

61.7K

小程序如何搭建本地开发环境?

1326
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档