mewMean {mewAvg} | R Documentation |
Update the moving expanding window average
Description
When desired, the x_mean
slot in an S4 object
of class mewTyp
may be updated to contain the correct moving
expanding window (MEW) average (it is not updated by the function
mewAccum
to save computation). If the slot know_mean
is unity, the slot x_mean
is up-to-date; otherwise; it is
not.
Usage
mewMean(av)
Arguments
av |
(class mewTyp) the current state of the MEW average |
Value
the updated instance of the argument av
Examples
n_iter <- 100
i_to_print <- 10
results <- matrix(data = double(2*n_iter/i_to_print),
nrow = n_iter/i_to_print,
ncol = 2)
av <- mewInit(n_bin = 4, n_xx = 2, ff = 0.5)
for (i in 1:n_iter) {
value <- runif(n=2)
value[1] <- ((cos(value[1]*2*pi))^2)*(1 - exp(-0.01*i))
value[2] <- (-((sin(value[2]*2*pi))^2))*(1 - exp(-0.01*i))
av <- mewAccum(xx = value, av = av)
if (i%%i_to_print == 0) {
av <- mewMean(av)
show(av)
results[i/i_to_print, ] <- mewGetMean(av)
}
}
## plot the results
plot(c(1, (n_iter/i_to_print)),
c(min(results), max(results)),
type = "n")
points(1:(n_iter/i_to_print), results[, 1])
points(1:(n_iter/i_to_print), results[, 2])
## Now, a larger example, and we pause part way through to assess
## convergence
n_iter <- 1000
av <- mewInit(n_bin = 4, n_xx = 5000, ff = 0.5)
for (i in 1:n_iter) {
new_samp <- runif(n = 5000)
av <- mewAccum(xx = new_samp, av = av)
}
av <- mewMean(av = av)
## of course each element of the mean sould converge to 0.5. After
## 1000 iterations, the first six elements of the mean vector are
show(av)
## run another 1000 iterations
for (i in 1:1000) {
new_samp <- runif(n = 5000)
av <- mewAccum(xx = new_samp, av = av)
}
av <- mewMean(av)
## check the mean of the first six elements again
show(av)
[Package mewAvg version 0.3.1 Index]