Я использую numpy.polyfit для получения линейной регрессии: coeffs = np.polyfit (x, y, 1).Ошибка наклона линейной регрессии в numpy
Каков наилучший способ расчета ошибки наклона подгонки с помощью numpy?
Я использую numpy.polyfit для получения линейной регрессии: coeffs = np.polyfit (x, y, 1).Ошибка наклона линейной регрессии в numpy
Каков наилучший способ расчета ошибки наклона подгонки с помощью numpy?
Как уже упоминалось @ebarr в комментариях, вы можете использовать np.polyfit для возврата остатков с помощью аргумента ключевого слова full=True
.
Пример:
x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
z, residuals, rank, singular_values, rcond = np.polyfit(x, y, 3, full=True)
residuals
, то есть сумма наименьших квадратов.
В качестве альтернативы вы можете использовать ключевое слово аргумент cov=True
, чтобы получить матрицу ковариации.
Пример:
x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
z, cov = np.polyfit(x, y, 3, cov=True)
Тогда диагональные элементы cov
являются дисперсии коэффициентов в г, т.е. np.sqrt(np.diag(cov))
дает стандартные отклонения коэффициентов. Вы можете использовать стандартные отклонения для оценки вероятности того, что абсолютная ошибка превысит определенное значение, например. путем вставки стандартных отклонений в uncertainty propagation calculation. Если вы используете, например, 3 * стандартные отклонения в распространении неопределенности, вы вычисляете ошибку, которая не будет превышена в 99,7% случаев.
Последний совет: вам нужно выбрать, хотите ли вы: full=True
или cov=True
. cov=True
работает только тогда, когда full=False
(по умолчанию) или наоборот.
Когда я пытаюсь реализовать это решение, я получаю отрицательные значения по диагонали ковариационной матрицы. –
Когда вы используете 'polyfit', он возвращает остатки подгонки. Вы можете сделать Chi2 на этом, чтобы получить доброту, которую я предполагаю, это то, что вы ищете. – ebarr
Я ищу абсолютную ошибку, а не доброту. – Mixel
Остатки являются абсолютной ошибкой для каждой точки пригонки. – ebarr