提问人:Asher Ross 提问时间:1/13/2022 最后编辑:Dmitry BychenkoAsher Ross 更新时间:1/13/2022 访问量:431
删除值后重新计算总体方差的公式
Formula to recalculate population variance after removing a value
问:
假设我有一个数据集 .我在这里的均值和方差是 和 .如果我要从数据集中删除,是否有公式可以让我计算新的方差值,将其转换为?{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 计算单次方差的方法时删除先前的样本涉及删除样本,但我无法弄清楚如何修改它以处理总体。
答:
4赞
Dmitry Bychenko
1/13/2022
#1
为了计算,我们需要 3 个参数:Mean
Variance
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
上一个:调整 2D 矩阵大小的基本算法
评论