将loess平滑应用于时间序列

6

我想通过应用loess函数来平滑我绘制的时间曲线,但我无法使其正常工作。

以下是一个示例:

mydat <- runif(50)
day1 <- as.POSIXct("2012-07-13", tz = "UTC")
day2 <- day1 + 49*3600*24
pdays <- seq(day1, day2, by = "days")
lo <- loess(mydat ~ pdays)

我收到了以下信息:
Error: NA/NaN/Inf in foreign function call (arg 2)

是否可以对时间序列应用loess平滑?

非常感谢任何帮助或指导!

1个回答

15

我认为这里的想法是将你的时间序列转换为数字形式(使用 as.numeric),以便进行操作。

mydat <- runif(50)
day1 <- as.POSIXct("2012-07-13", tz = "UTC")
day2 <- day1 + 49*3600*24
pdays <- seq(day1, day2, by = "days")
lo <- loess(mydat ~ as.numeric(pdays))

# And then if you want to plot the result:
plot(pdays,mydat)
lines(pdays, lo$fitted)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接