Uso Scipy CurveFit per adattare una curva gaussiana ai dati e mi interessa analizzare la qualità della misura. So che CurveFit restituisce una matrice pcov utile, dalla quale la deviazione standard di ogni parametro di adattamento può essere calcolata come sqrt (pcov [0,0]) per il parametro popt [0].Quantificazione della qualità della curva adattata utilizzando Python SciPy
ad es. frammento di codice per questo:
import numpy as np
from scipy.optimize import curve_fit
def gaussian(self, x, *p):
A, sigma, mu, y_offset = p
return A*np.exp(-(x-mu)**2/(2.*sigma**2)) + y_offset
p0 = [1,2,3,4] #Initial guess of parameters
popt, pcov = curve_fit(gaussian, x,y, p0) #Return co-effs for fit and covariance
‘Parameter A is %f (%f uncertainty)’ % (popt[0], np.sqrt(pcov[0, 0]))
Questo dà un'indicazione dell'incertezza parametri di adattamento per ciascun coefficiente nell'equazione curve fitting, ma mi chiedo il modo migliore per ottenere una “qualità di parametro fit” il grado in modo che possa confrontare la qualità di adattamento tra diverse equazioni di curva (ad es. Gaussiana, Super Gaussiana ecc.)
Su un livello semplice, ho potuto calcolare solo l'incertezza percentuale in ciascun coefficiente e quindi la media, anche se mi chiedo se c'è un modo migliore? Dalla ricerca online, e dalla pagina di Wikipedia particolarmente utile di "bontà di adattamento", noto che ci sono molte misure per descriverlo. Mi chiedo se qualcuno sappia se alcuni sono incorporati in pacchetti Python/ha qualche consiglio generale sui buoni modi per quantificare l'adattamento della curva.
Grazie per qualsiasi aiuto!
Penso che potresti volere l'errore [standard della stima] (http://onlinestatbook.com/2/regression/accuracy.html). –
Vedi anche questa risposta: Uscita completa da curve_fit! http://stackoverflow.com/a/16528775/680232 –