我很抱歉有些令人困惑的標題,但我不確定如何總結這個更清晰。如何內插兩個不規則數據集之間的點?
我有兩組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