Сравнение R в квадрате для линии наименьших квадратов и плоскости (Python) - PullRequest
0 голосов
/ 12 мая 2018

У меня есть набор точек данных в трехмерном пространстве, и я хотел бы определить количественно, могу ли я игнорировать компонент y данных. Я вычислил обычные наименьшие квадраты для z = ax + b и обычные наименьшие квадраты для z = ax + b * y + c. Я получаю значение R ^ 2 для моего 2D-графика и остаток (сумма квадратов ошибок) для моего 3D-графика. Как перейти от значения остатка к R ^ 2 для трехмерного графика, и допустимо ли это сравнить с моим значением R ^ 2 для моего 2D-графика?

xs = array of x data

ys = array of y data

zs = array of z data

Для 2D:

slope, intercept, r_value, p_value, std_err = stats.linregress(xs, zs)

Для 3D:

tmp_A = []
tmp_b = []
for i in range(len(xs)):
   tmp_A.append([xs[i], ys[i], 1])
   tmp_b.append(zs[i])
b = np.matrix(tmp_b).T
A = np.matrix(tmp_A)
fit = (A.T * A).I * A.T * b
errors = b - A * fit
residual = np.linalg.norm(errors)

Спасибо!

Jason

Редактировать

Вот ответ:

E = np.squeeze(np.asarray(errors))
Z = np.array(zs)
r2 = 1 - (E.var() / Z.var())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...