【发布时间】:2015-07-05 15:07:39
【问题描述】:
我有一系列数据 x,y,我正在尝试找到移动平均线。 x 数据数字是从 1 到 100 的整数,而 y 数据是从 0.01 到 1 的数字,它们也有一个标准偏差 y_dev(我们推导出这个是因为实验重复了几次)。 我正在尝试使用 20 个最近的邻居(使用 Matlab)找到移动平均线:
num_data=length(x)
mov_average=y
for i=11,num_data-10 % we leave the data in the edges the same
ind1(i)=i-10
ind2(i)=i+10
mov_average(i)=mean(y(ind1(i):ind2(i)));
end
上述方法得出移动平均值,但我不知道如何使用每个 y 数据点的标准差,因为某些数据点的标准差比其他数据点大得多,这意味着它们不如其他数据点可靠(所以它们的重量可能更轻)。如何在上述计算中包含每个数据点的标准差?
谢谢。
【问题讨论】:
-
移动平均还是移动中位数?关于“我如何在上述计算中包含每个数据点的标准偏差”这个问题,这取决于您想要做什么。您应该首先决定(这不是编程问题)。一个建议:你不能为每个
x使用整个数据集(而不仅仅是平均值和标准差)并从中计算平均值/中位数吗? -
@LuisMendo 我想做移动平均线(我编辑了代码以反映这一点)。数据集是一个时间序列实验,它已经重复了几次(这就是我对每个点都有标准偏差的方式)。我想在计算移动平均值时使用每个点的标准差,因为我希望标准差较小的点比标准差较大的点权重。