Нахождение доверительного интервала для линейного предсказания: ошибка умножения числа - PullRequest
0 голосов
/ 25 августа 2018

У меня есть матрица данных X, которую я подгоняю к линейной модели, в частности ransac = linear_model.RANSACRegressor().

Я нахожу коэффициенты: coef = ransac.estimator_.coef_

Теперь,Я пытаюсь найти доверительный интервал для моих прогнозов, поэтому мне нужно вычислить: enter image description here

Однако это значение всегда должно быть положительным после расчета:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...