Numpy polyfit — ковариационная матрица

При подгонке прямой линии к набору данных, взвешенных с ошибками, я ожидал, что polyfit вернет ковариационную матрицу 2x2, из которой я мог бы извлечь квадратный корень из диагональных элементов, чтобы найти неопределенность в коэффициентах, но я этого не сделал.

Вот минимальный рабочий пример:

from numpy import polyfit

x=[1.,2.,3.,4.,5.,6.,7.,8.,9.]
y=[1.,3.,2.,4.,5.,6.,6.,8.,9.]

yerr=[10.,5.,3.,2.,10.,10.,10.,10.,10.]

linear = polyfit(x,y, 1, w=yerr, full=True)

print(linear)

С выходом:

(array([ 0.95730623,  0.11546722]), array([ 114.79556527]), 2, array([ 1.38182992,  0.30090875]), 1.9984014443252818e-15)

Спасибо!


person Thomas Hopkins    schedule 22.03.2014    source источник
comment
попробуйте установить аргументы: cov=True, full=False.   -  person HYRY    schedule 22.03.2014
comment
@HYRY, вы можете опубликовать свои комментарии в качестве ответа   -  person Saullo G. P. Castro    schedule 22.03.2014


Ответы (1)


В документе говорится:

  • cov : логическое значение, необязательный

    Возвращает оценку и ковариационную матрицу оценки. Если full равно True, то cov не возвращается.

Таким образом, набор cov=True и full=False (настройка по умолчанию) вернет матрицу конвариантности.

person HYRY    schedule 22.03.2014