Điều này là để thêm vào câu trả lời @chmike.
Phương pháp này có vẻ giống với thuật toán trực tuyến của BP Welford cho độ lệch chuẩn cũng tính toán giá trị trung bình. John Cook đưa ra một lời giải thích tốt ở đây . Tony Finch năm 2009 cung cấp một phương pháp cho trung bình di chuyển theo cấp số nhân và độ lệch chuẩn:
diff := x – mean
incr := alpha * diff
mean := mean + incr
variance := (1 - alpha) * (variance + diff * incr)
Nhìn vào câu trả lời được đăng trước đó và mở rộng dựa trên nó để bao gồm một cửa sổ di chuyển theo cấp số nhân:
init():
meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0,
meanXY = 0, varY = 0, desiredAlpha=0.01 #additional variables for correlation
update(x,y):
n += 1
alpha=max(desiredAlpha,1/n) #to handle initial conditions
dx = x - meanX
dy = y - meanY
dxy = (x*y) - meanXY #needed for cor
varX += ((1-alpha)*dx*dx - varX)*alpha
varY += ((1-alpha)*dy*dy - varY)*alpha #needed for corXY
covXY += ((1-alpha)*dx*dy - covXY)*alpha
#alternate method: varX = (1-alpha)*(varX+dx*dx*alpha)
#alternate method: varY = (1-alpha)*(varY+dy*dy*alpha) #needed for corXY
#alternate method: covXY = (1-alpha)*(covXY+dx*dy*alpha)
meanX += dx * alpha
meanY += dy * alpha
meanXY += dxy * alpha
getA(): return covXY/varX
getB(): return meanY - getA()*meanX
corXY(): return (meanXY - meanX * meanY) / ( sqrt(varX) * sqrt(varY) )
Trong "mã" ở trên, mong muốn có thể được đặt thành 0 và nếu vậy, mã sẽ hoạt động mà không có trọng số theo cấp số nhân. Có thể đề xuất đặt mong muốnAlpha thành 1 / wishWindowSize theo đề xuất của Modified_moving_alusive cho kích thước cửa sổ di chuyển.
Câu hỏi phụ: về các tính toán thay thế ở trên, có nhận xét nào tốt hơn từ quan điểm chính xác không?
Tài liệu tham khảo:
chmike (2013) https://stats.stackexchange.com/a/79845/70282
Cook, John (nd) Tính toán chính xác khi chạy phương sai http://www.johndcook.com/blog/stiteria_deviation/
Finch, Tony. (2009) Tính toán gia tăng của trung bình và phương sai trọng số. https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf
Wikipedia. (nd) Thuật toán trực tuyến của Welford https://en.wikipedia.org/wiki/Alacticms_for_calculating_variance#Online_alerskym