我目前使用Python來比較兩個不同的數據集(xDAT和yDAT),這些數據集由在一定時間內採集的240個距離度量值組成。但是,數據集xDAT被非線性數量抵消。這個非線性的數量等於一個時間依賴的動態媒體的寬度,我稱之爲level-A。更具體地說,xDAT從原點到A級的頂部進行度量,而yDAT則從原點到A級的底部進行度量。見以下圖:Python中的曲線擬合和參數估計
爲了既曲線比較,我必須拳頭應用校正到XDAT,以彌補其偏移量(水平-A的寬度)。
到目前爲止,我玩過不同程度的numpy.polyfit。即:
coefs = np.polynomial.polynomial.polyfit(xDAT, yDAT, 5)
polyEST=[]
for i in range(0,len(x-DAT)):
polyEST.append(coefs[0] + coefs[1]*xDAT[i] + coefs[2]*pow(xDAT[i],2) + coefs[3]*pow(xDAT[i],3) + coefs[4]*pow(xDAT[i],4) + coefs[5]*pow(xDAT[i],5))
使用這種方法的問題是,當我繪製polyEST(這是XDAT的修正版本),劇情依然不匹配yDAT的趨勢並保持偏移。請看下圖,其中XDAT =藍色,糾正XDAT =紅色,yDAT =綠色:
理想的情況下,修正XDAT仍應保持高於yDAT喧鬧,但一般振盪的趨勢曲線應該匹配。
我將非常感謝幫助實施不同的曲線擬合和參數估計技術,以校正由A級引起的非線性偏移。
謝謝。
我不認爲你很清楚你想要做什麼。你稱'polyfit'就好像'xDAT'和'yDAT'是一組樣本點的x和y座標,然而你的問題描述和圖表表明它們並不相關。 – Stelios
按照你的描述,偏移是一個常數。使用度數> 0的多項式看起來是錯誤的方法。另外,從你的繪圖xDat和yDat看起來並不是「排隊」 - 也就是說xDat顯然不是yDat +/-一些常數 - 它似乎也是「翻轉」或相移的。 –
謝謝Stelios。在介紹中,我提到xDAT和yDAT都是240點的數據集。每個點對應於特定時間的測量...兩個數據集均以相同的時間增量進行測量。我使用polyfit來派生描述兩個數據集之間差異的多項式,然後使用該多項式來校正xDAT中看到的偏移量。我相信有一種更合適的方法來糾正在xDAT中觀察到的A級偏移量,而不是np.polyfit。 – LexStJ