我是 R 新手,正在尝试在 30 个观察滚动窗口内计算自举标准偏差 (sd) 和相关标准误差。如果我只想要 sd,下面的函数会适当地执行滚动窗口。但是当我使用引导包添加引导功能时,我得到了下面指定的错误。我收集到我正在尝试将引导结果存储在一个大小不正确的向量中。有没有人对如何在新矩阵的行中存储每个窗口的引导 sd 和相关的 stderror 有任何建议?然后,目标是沿时间序列绘制每个窗口的 sd 和相关的 95% 置信区间。提前感谢您的帮助。
> head(data.srs)
LOGFISH
1 0.8274083
2 1.0853433
3 0.8049845
4 0.8912097
5 1.3514569
6 0.8694499
###Function to apply rolling window
rollWin <- function(timeSeries, windowLength)
{
data<-timeSeries
nOut <- length(data[, 1]) - windowLength + 1
out <- numeric(nOut)
if (length(data[,1]) >= windowLength)
{
for (i in 1:nOut)
{
sd.fun <- function(data,d)sd(data[d], na.rm = TRUE)
out[i] <- boot(data[i:(i + windowLength - 1), ], sd.fun, R=1000)
}
}
return (list(result=out))
}
###run rolling window function. ex. rollWin(data, windowlength)
a.temp<-rollWin(data.srs,30)
> warnings()
Warning messages:
1: In out[i] <- boot(data[i:(i + windowLength - 1), ], sd.fun, ... :
number of items to replace is not a multiple of replacement length