Python 寻找线性预测的置信区间:Numpy乘法误差

Python 寻找线性预测的置信区间:Numpy乘法误差,python,linear-regression,confidence-interval,Python,Linear Regression,Confidence Interval,我有数据矩阵X,我适合线性模型,特别是ransac=linear\u model.ransacregrator() 我发现系数为: coef=ransac.estimator\uu.coef\uu 现在,我试图找到我的预测的置信区间,所以我需要计算: 但是,在计算以下各项后,该值应始终为正值: c = np.ones(X.shape[2]) # a vector of ones XTX = np.matmul(np.transpose(np.matrix(X)), np.matrix(X))

我有数据矩阵
X
,我适合线性模型,特别是
ransac=linear\u model.ransacregrator()

我发现系数为:
coef=ransac.estimator\uu.coef\uu

现在,我试图找到我的预测的置信区间,所以我需要计算:

但是,在计算以下各项后,该值应始终为正值:

c = np.ones(X.shape[2]) # a vector of ones
XTX = np.matmul(np.transpose(np.matrix(X)), np.matrix(X))
# find the bit inside square root
np.matmul( np.matmul(np.transpose(c),np.linalg.inv(XTX) ) ,  c.reshape((c.shape[0],1)) )
然而,这是一个负值,甚至不可能。。。我该如何解决这个问题

逐步细分:

c = X[0]
c = np.reshape(c , (c.shape[0],1))
ct = np.reshape(c , (1, c.shape[0]))
XTX = np.matmul(np.transpose(np.matrix(X)), np.matrix(X))
XTXinv = np.linalg.inv(XTX)
XTXinvc = np.matmul(XTXinv, c)
ctXTXinvc = np.matmul(ct, XTXinvc)
# ctXTXinvc is negative

我意识到
c
实际上不是系数,应该用
np.ones
来代替,例如
c=np.ones(X.shape[1])
如果我想包括所有的预测值,但它仍然给我一个负值。你的代码看起来有点乱。将计算分离成有意义的变量始终是一个很好的实践,这有助于调试。试试看@mctrjalloh我必须说,重塑是特别恼人的,因为在匹配矩阵pxp和px1之后,我希望产品是px1,而不是1xp