【发布时间】:2012-09-14 01:32:05
【问题描述】:
我有两个向量 x 和 w。向量w 是与 x 长度相同的权重数值向量。
我们如何获得向量x 中第一对元素的加权平均值,它们的差异很小(例如 tol= 1e-2),然后在下一次迭代中对下一对元素做同样的事情,直到没有对它们的差异小于 tol?例如,这些向量如下:
x = c(0.0001560653, 0.0001591889, 0.0001599698, 0.0001607507, 0.0001623125,
0.0001685597, 0.0002793819, 0.0006336307, 0.0092017241, 0.0092079042,
0.0266525118, 0.0266889564, 0.0454923285, 0.0455676525, 0.0457005450)
w = c(2.886814e+03, 1.565955e+04, 9.255762e-02, 7.353589e+02, 1.568933e+03,
5.108046e+05, 6.942338e+05, 4.912165e+04, 9.257674e+00, 3.609918e+02,
8.090436e-01, 1.072975e+00, 1.359145e+00, 9.828314e+00, 9.455688e+01)
我想找出x 的哪些对元素的差异最小,找到这对元素后,得到加权平均平均值。我尝试了这段代码,但这个代码没有给我结果。如何找到min(diff(x)) 的索引并检查它是否小于 tol?
> min(diff(x))
> which(min(diff(x)) < 1e-2)
【问题讨论】:
-
你想要一对加权平均值的差异的细节让我不知道。您能否举例说明第一对的计算方式?
-
目前,当用自然语言表达时,这在数学上是不连贯的。如果存在语言障碍(我承认英语是国际交流中最不明智的选择),那么克服问题的方法就是使用适当的数学符号组合。
-
在每次迭代中,我都在寻找它们差异很小的第一对 x (1e-2)。如果我们能找到这对,然后得到这对的加权平均值。
-
好的,但是......在每次暂停之间应该发生什么来决定选择哪些新值?
标签: r weighted-average