Как оценить ошибку экстраполированного значения только с двумя точками данных? - PullRequest
2 голосов
/ 14 апреля 2019

Я пытаюсь сделать простую линейную регрессию. У меня только две точки данных с ошибками. Как мне оценить y-перехват с ошибками?

В настоящее время у меня есть:

#! /usr/bin/env python

import sys,os
from scipy.optimize import curve_fit
import numpy as np
import matplotlib.pyplot as plt

xdata = [25, 33]
ydata = [-279.430059,-279.450271]
yerr = [0.0021, 0.0019]

def linear(x, a,b):
        y = a*x + b
        return y

## Pol fit
initial=[0.1, min(ydata)]
popt, pcov = curve_fit(linear, xdata, ydata, sigma=yerr,p0=initial)
print("Params", popt, np.sqrt(np.diag(pcov)))

x=np.linspace(xdata[0],xdata[-1],200)

fig, ax = plt.subplots()
plt.plot(xdata, ydata, 'o')
plt.plot(x, linear(x, *popt), '--', lw=1, label="Linear Func")
plt.show()
OptimizeWarning: Covariance of the parameters could not be estimated
  category=OptimizeWarning)
('Params', array([-2.52650000e-03, -2.79366897e+02]), array([inf, inf]))

Желательно искать что-то, что будет обобщено для большего количества точек данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...