假設我有一個資料集{10, 20, 30}。我這里的均值和方差是mean = 20和variance = 66.667。如果我要從資料集中洗掉 10,是否有一個公式可以讓我計算新的方差值{20, 30}?
這是與處理此案的https://math.stackexchange.com/questions/3112650/formula-to-recalculate-variance-after-removing-a-value-and-adding-another-one-gi類似的問題有更換的時候。https://math.stackexchange.com/questions/775391/can-i-calculate-the-new-standard-deviation-when-adding-a-value-without-knowing-t也是一個類似的問題,除了處理添加一個值而不是洗掉一個值。在使用 Welford 計算單程方差的方法時洗掉先前的樣本涉及洗掉樣本,但我不知道如何修改它以處理總體。
uj5u.com熱心網友回復:
要計算Mean,Variance我們需要3 個引數:
N - number of items
Sx - sum of items
Sxx - sum of items squared
有了所有這些值,我們可以找到均值和方差
Mean = Sx / N
Variance = Sxx / N - Sx * Sx / N / N
在你的情況下
items = {10, 20, 30}
N = 3
Sx = 60 = 10 20 30
Sxx = 1400 = 100 400 900 = 10 * 10 20 * 20 30 * 30
Mean = 60 / 3 = 20
Variance = 1400 / 3 - 60 * 60 / 3 / 3 = 66.666667
如果要洗掉item,只需更新 N, Sx, Sxx值并計算新的方差:
item = 10
N' = N - 1 = 3 - 1 = 2
Sx' = Sx - item = 60 - 10 = 50
Sxx' = Sxx - item * item = 1400 - 10 * 10 = 1300
Mean' = Sx' / N' = 50 / 2 = 25
Variance' = Sxx' / N' - Sx' * Sx' / N' / N' = 1300 / 2 - 50 * 50 / 2 / 2 = 25
因此,如果您洗掉item = 10新的均值和方差將是
Mean' = 25
Variance' = 25
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/409366.html
標籤:
