我想對數據集(X,Y,Yerr)進行最小二乘多項式擬合併獲得擬合參數的協方差矩陣。另外,由於我有很多數據集,CPU時間是一個問題,所以我正在尋求一種分析(快速)解決方案。我發現以下(非理想)選項:需要返回協方差的Python多項式擬合函數
numpy.polyfit
是否合適,但沒有考慮錯誤Yerr,也不返回協方差;
numpy.polynomial.polynomial.polyfit
確實接受Yerr作爲輸入(以權重的形式),但不返回協方差;
scipy.optimize.curve_fit
和scipy.optimize.leastsq
可以被定製,以適應多項式和返回的協方差矩陣,但 - 是迭代方法 - 這些是比polyfit
例程(其產生的解析解)慢得多;
Python提供了一個解析多項式擬合程序,它返回擬合參數的協方差(或者我必須自己寫一個:-)?
更新: 看來,與NumPy 1.7.0,numpy.polyfit
現在不僅不接受權,而且還返回係數的協方差矩陣。所以,問題解決了! :-)
查找到mpfit或kmpfit。 http://www.astro.rug.nl/software/kapteyn/kmpfit.html – reptilicus
根據鏈接,這是另一個(通用)迭代求解器。由於速度的原因,我正在尋求一種分析(=非迭代)解決方案 - 這對於多項式來說是完全可能的。 –
statsmodels是什麼? https://groups.google.com/forum/?fromgroups=#!topic/pystatsmodels/paCNa5sXbOo http:// statsmodels。sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLS.html – joris