Как получить p-значение из numpy.linalg.lstsq?

Я хотел бы рассчитать p-значение подгонки, которую я получил из numpy.linalg.lstsq. Вот игрушечный пример:

import numpy as np
x = np.array([[ 58295.62187335],[ 45420.95483714],[  3398.64920064],[   977.22166306],[  5515.32801851],[ 14184.57621022],[ 16027.2803392 ],[ 15313.01865824],[  6443.2448182 ]])
y = np.array([ 143547.79123381,   22996.69597427,    2591.56411049, 661.93115277,    8826.96549102,   17735.13549851, 11629.13003263,   14438.33177173,    6997.89334741])

a, res, rank, s = np.linalg.lstsq(x, y)

из предыдущего вопроса ( получить значение R^2 из scipy.linalg.lstsq) я знаю, что получил R², однако я также хотел бы вычислить значение p.

Заранее спасибо.

1 ответ

Решение

Вы могли бы использовать scipy.stats

import numpy as np
from scipy.stats import pearsonr
x = np.array([ 58295.62187335,  45420.95483714,   3398.64920064,    977.22166306, 5515.32801851,  14184.57621022,  16027.2803392 ,  15313.01865824, 6443.2448182 ])
y = np.array([ 143547.79123381,   22996.69597427,    2591.56411049, 661.93115277,    8826.96549102,   17735.13549851, 11629.13003263,   14438.33177173,    6997.89334741])

r, p = pearsonr(x,y)
Другие вопросы по тегам