gpt4 book ai didi

r - R 中令人惊讶的缓慢标准偏差

转载 作者:行者123 更新时间:2023-12-04 22:15:34 25 4
gpt4 key购买 nike

我正在一个扩展窗口上计算标准偏差,在每个点我重新计算标准偏差。这似乎是一件相当简单的事情,应该相对较快。但是,它需要的时间比您想象的要长得多(约 45 秒)。我在这里错过了什么吗?在 Matlab 中,这是相当快的。

t0 <- proc.time()[[3]]
z <- rep(0, 7000)
x <- rnorm(8000)
for(i in 1000:8000){
## print(i)
z[i] <- sd(x[1:i])
}
print(proc.time()[[3]]- t0)

最佳答案

您也可以尝试一种算法,该算法可以随时更新标准偏差(实际上,是平均值的差平方和)。在我的系统上,这将时间从 ~0.8 秒减少到 ~0.002 秒。

n <- length(x)
m <- cumsum(x)/(1:n)
m1 <- c(NA,m[1:(n-1)])
ssd <- (x-m)*(x-m1)
v <- c(0,cumsum(ssd[-1])/(1:(n-1)))
z <- sqrt(v)

有关详细信息,请参阅 http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance

另请参阅此问题的答案: Efficient calculation of matrix cumulative standard deviation in r

关于r - R 中令人惊讶的缓慢标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com