执行线性回归时,我难以理解变量之间的误差估计。提到How to find error on slope and intercept using numpy.polyfit时,我要用numpy.polyfit
拟合一条直线(下面的代码)。
如链接中的问题所述,协方差矩阵对角线的平方根是每个拟合系数的估计标准偏差,因此np.sqrt(V[0][0]))
是斜率的标准偏差。我的问题是:应该如何表示y
的标准偏差?是否应该将误差求和相加,即y +/- np.sqrt(np.sqrt(V[0][0])**2+np.sqrt(V[1][1])**2)
?还是我只能用残差的标准偏差(将为np.sqrt(S)/(len(y)-1)
)来表示它?最后,是否可以从协方差矩阵中获得残差?
PS:感谢您为问题添加“答案”。
import numpy as np
# Data for testing
x = np.array([0.24580423, 0.59642861, 0.35879163, 0.37891011, 0.02445137,
0.23830957, 0.38793433, 0.68054104, 0.83934083, 0.76073689])
y = np.array([0.61502838, 1.01772738, 1.35351035, 1.32799754, 0.23326104,
0.89275698, 0.689498 , 1.48300835, 2.324673 , 1.52208752])
p, V = np.polyfit(x, y, 1, cov=True)
p2, S, *rest = np.polyfit(x, y, 1, full=True)