扩大标准差

数据挖掘 统计数据
2022-02-24 23:58:31

我面临的问题是语言障碍。我有一组包含以下数据的样本:

样品编号 生物计数
1 5
2 8
3 5
4 7
5 13
……

我需要找到准确估计一平方米地面内的有机体所需的样本数量。这是为了学校作业。我不需要这个答案。我需要做的是找到集合之间的标准偏差,如下所示:

(样本 1)= 标准偏差
(样本 1,样本 2)= 标准偏差
(样本 1、样本 2、样本 3)= 标准差

以这样的滚动方式。我能找到的关于滚动标准偏差的唯一信息是特定的样本窗口。我需要的是从第一个开始成长。这个叫什么?我正在用python编写一个程序来计算并在图表中显示它。我想知道这个名字,这样我就可以防止以一种可能不太有效的方式重新发明轮子(如果有这个特定问题的名字)。我正在使用的库很可能已经提供了一种方法来计算我的要求。

所以问题是:我需要找到一个“增长集”的标准偏差,我想知道它是否有一个特定的名称,所以我可以在我正在使用的 python 库的文档中查找它。

随意更改问题的名称以使其更适合,因为我不知道名称我无法在标题中说明它。

2个回答

如果您使用 Python,则可以使用 pandas。它带有一个扩展的标准偏差函数。

import pandas as pd
import numpy as np

# Generate some random data
df = pd.DataFrame(np.random.randn(100))

# Calculate expanding standard deviation
exp_std = pd.expanding_std(df, min_periods=2)

# Print results
print exp_std

您可能正在寻找的词是“滚动标准差”或“运行标准差”。在小规模上,重新计算每个子集的标准差可能是最简单的。但是您可以在不存储所有数字的情况下计算一堆数字的标准偏差,并且还有一些数字高度稳定的版本。如果您对细节感兴趣或自己实现它,请参见例如https://www.johndcook.com/blog/standard_deviation/,但是,如果可能,您应该使用库方法。Java 的 Commons Math 确实做到了这一点。