我必须分析数据并找到具有更高值重复相同间隔的实例。例子:
我正在尝试使用频谱功能,但它给了我奇怪的结果。
这是我的示例数据,我每 1 小时插入一次异常值。
library(dplyr)
library(lubridate)
library(ggplot2)
set.seed(900)
data1 <-
data.frame(
datetime = seq.POSIXt(as.POSIXct("2020-12-26 10:00:00"), as.POSIXct("2020-12-26 10:00:00") + 15*50001, "15 sec"),
Value = sample(1:10, 50002, replace = T),
Instance = "A"
)
data1.1 <- data.frame(
datetime= seq.POSIXt(as.POSIXct("2020-12-26 10:00:00"), as.POSIXct("2020-12-26 10:00:00") + 15*50001, "hour"),
Value = sample(10:100, 209, replace = T),
Instance = "A"
)
data1 <- rbind(data1, data1.1) %>% group_by(datetime, Instance) %>% summarise(Value = max(Value)) %>% ungroup()
ggplot(data1, aes(x=datetime, y=Value, color = Instance)) +
geom_point()
spect <- spectrum(data1$Value, log="no", spans=c(5,5), plot=FALSE)
delta <- 1/4
specx <- spect$freq/delta
specy <- 2*spect$spec
plot(specx, specy, xlab="Period (minutes)", ylab="Spectral Density", type="l")
我希望得到光谱图,其中光谱密度将显示 60 分钟。但这就是我得到的:
如何找到重复间隔的峰值(在我的示例中为 60 分钟)?