I would like to know how to calculate the cumulative average for some numbers. I will give a simple example to describe what I am looking for.
I have the following numbers
vec <- c(1, 2, 3, 4, 5)
If I do the average of these numbers I will get 3 as a result.
Now, how to do the cumulative average of these numbers.
In analogy to the cumulative sum of a list I propose this: The cumulative average avg of a vector x would contain the averages from 1st position till position i.
One method is just to compute the the mean for each position by summing over all previous values and dividing by their number.
By rewriting the definition of the arithmetic mean as a recursive formula. One gets
avg(1) = x(1)
and
avg(i) = (i-1)/i*avg(i-1) + x(i)/i; (i > 1)
Evaluating this expression for every element of your vector (or list, one-dimensional array or however you call it) gives you the cumulative average.
This recursive method comes in handy if you have to calculate an average over very large or very many integers and would run into an overflow if you had to store their cumulative sum.
In your example
1, 2, 3, 4, 5
we get
1, 1.5, 2, 2.5, 3