sam*_*asa -4 visualization r time-series
我有以下时间序列数据.它有60个数据点如下所示.请参阅下面这个数据的简单图表.我用R来绘制这个.我认为如果我在图中的点上绘制移动平均曲线,那么我们可以更好地理解数据中的模式.我不知道如何在R中做到这一点.有人可以帮助我做到这一点.此外,我不确定这是否是识别模式的好方法.如果有更好的方法,也请建议我.谢谢.
x <- c(18,21,18,14,8,14,10,14,14,12,12,14,10,10,12,6,10,8,
14,10,10,6,6,4,6,2,8,6,2,6,4,4,2,8,6,6,8,12,8,8,6,6,2,2,4,
4,4,8,14,8,6,6,2,6,6,4,4,8,6,6)
Run Code Online (Sandbox Code Playgroud)
要回答你的问题moving averages
,你可以rollmean
在包装的帮助下完成它zoo
.
From Joshua's comment:
你也可以查看TTR
依赖于xts
它的包zoo
.此外,包中还有其他移动平均线TTR
:检查?MA
.
require(TTR)
# assuming your vector is loaded in dat
# sliding window / moving average of size 5
dat.k5 <- rollmean(dat, k=5)
Run Code Online (Sandbox Code Playgroud)
合理的可能性:
d <- data.frame(x=scan("tmp.dat"))
qplot(x=seq(nrow(d)),x,data=d)+geom_smooth(method="loess")
Run Code Online (Sandbox Code Playgroud)
编辑:根据https://meta.stackexchange.com/questions/164783/why-was-a-seemingly-relevant-non-offensive-comment-removed从评论移至答案
关于"这是识别模式的好方法"(对于StackOverflow而言,这是一个偏离主题的东西,但无论如何); 我认为滚动方法是完全可敬的,尽管存在更复杂的方法(例如此处所示的局部加权回归[loess/lowess]).但是,我并不认为这里有很多复杂的模式需要检测:数据似乎最初随着时间的推移而下降,然后趋于平稳.滚动手段和更复杂的方法可能看起来更漂亮,但我不认为他们会在这个数据集中找出任何更深层次的模式......
如果您想同时为多个数据集执行此类操作(如注释中所示),您可能希望ggplot
能够自动生成同一绘图的多行或多面版本.