我想对数据集(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