我正在使用 Python 和 Numpy 来计算任意次数的最佳拟合多项式。我传递 x 值、y 值和我想要拟合的多项式次数(线性、二次等)的列表。
这很有效,但我还想计算 r(相关系数)和 r 平方(确定系数)。我将我的结果与 Excel 的最佳拟合趋势线功能及其计算的 r 平方值进行比较。使用这个,我知道我正在正确计算线性最佳拟合的 r 平方(度等于 1)。但是,我的函数不适用于次数大于 1 的多项式。
Excel 可以做到这一点。如何使用 Numpy 计算高阶多项式的 r 平方?
这是我的功能:
import numpy
# Polynomial Regression
def polyfit(x, y, degree):
results = {}
coeffs = numpy.polyfit(x, y, degree)
# Polynomial Coefficients
results['polynomial'] = coeffs.tolist()
correlation = numpy.corrcoef(x, y)[0,1]
# r
results['correlation'] = correlation
# r-squared
results['determination'] = correlation**2
return results
回复很晚了,但以防万一有人需要一个现成的函数:
scipy.stats.linregress
i.e.
slope, intercept, r_value, p_value, std_err = scipy.stats.linregress(x, y)
正如@Adam Marples 的回答。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)