我有一些适合Legendre多项式的数据:
n = 4
coeffs = np.polynomial.legendre.legfit(x, y, deg=n, w=z)
xp = np.linspace(min(x), max(x), 1000)
yp = np.polynomial.legendre.legval(xp, coeffs)
接下来,我计算了残差并获得了chi-squared
统计量,该统计量表明拟合的良好程度,简化过程如下所示:
for i in range(len(x)):
yfit.append(np.polynomial.legendre.legval(x[i],coeffs))
yres.append(yfit[i] - y[i])
SSres = [sum(pow(yres[i],2) for i in range(len(x)))]
SStot = len(y)*np.var(y)
rsq = 1 - SSres/SStot
print('R2 = %f' % rsq)
现在,当然可以提供一个近似为1的值。是否有任何内置公式可以正确知道应保留哪些术语?我在documentation中找不到它。