我很抱歉有些令人困惑的标题,但我不确定如何总结这个更清晰。如何内插两个不规则数据集之间的点?
我有两组X,Y数据,每组对应一个总的总体值。他们从原始数据中进行相当密集的抽样。我正在寻找的是一种为任何给定的Y找到插值X的方法,以获得我已拥有的集合之间的值。
图表使这更清楚:
在这种情况下,红色线是从对应于100的一组,黄线是从对应于50
一组我想能够说,假设这些集合对应于值的梯度(尽管它们明显由离散的X,Y测量值组成),那么我如何找到,比如说,如果Y为500对于一个相当于75的值的集合?
在这里的例子我希望我所希望的点是什么地方在这里:
我不需要这个功能过于花哨 - 它可以是数据点的简单线性插值。我只是无法思考。
请注意,两组的X和Y都没有完全重叠。然而,“这些集合最接近的X点在哪里”或“这些集合共享的最接近的Y点在哪里”的说法相当简单。我已经在已知值之间使用了简单的插值(例如找到设置为“50”和“100”的相应Ys的X值,然后平均值得到“75”),最后我看到类似这样的东西:
所以很明显,我在这里做了什么。很明显,在这种情况下,对于Y高于“最低”集合的最大值Y的所有情况,X(正确)返回0。事情从一开始就很好,但是当某个人开始接近最低值Y时,它开始出现故障。
很容易明白为什么我的错误。这里是另一种方式来看待这个问题:
在“正确”的版本,X应该是约250相反,我在做什么基本上是平均400和0,X是200。在这种情况下我如何解决X?我认为双线性插值可能会有答案,但是我一直没能找到答案,这就清楚地说明了我将如何去做这类事情,因为它们似乎都是针对不同的问题构建的。
谢谢您的帮助。请注意,尽管我已经明确地绘制了R中的上述数据,以便轻松查看我在说什么,但最终的工作是使用Javascript和PHP。我不是在寻找一些重任;简单就好。
这听起来更像是一个数学问题,而不是编程问题,所以可能更适合http://math.stackexchange.com或http://stats.stackexchange.com。 –
我正在寻找一种实用的解决方案,而不是理论上的解决方案。我对这类论坛的经验是他们想回答一个优雅的等式,我不知道如何实现代码。 (另外,我从字面上理解目前在数学或统计数据首页上没有任何问题,这不是令人鼓舞的......)(我的意思是一个例子:http://math.stackexchange.com/questions/177491/如何执行简单线性插值的数据集) – nucleon
问题是您可能在红线和/或黄线上没有重点?如果是这样,你可以分别插入红线和黄线的值,然后取平均值..? – thebjorn