저는 Scipy CurveFit을 사용하여 Gaussian 곡선을 데이터에 맞추기 위해 적합성 분석에 관심이 있습니다. 나는 CurveFit이 유용한 pcov 행렬을 반환한다는 것을 알고 있습니다. 각 피팅 매개 변수의 표준 편차는 매개 변수 popt [0]에 대해 sqrt (pcov [0,0])로 계산 될 수 있습니다.Python SciPy를 사용하여 곡선 적합성 정량화
예컨대 이에 대한 코드는 :
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]))
이는 커브 피팅 방정식의 각 계수를 피팅 파라미터의 불확실성에 대한 표시를 부여하지만 최고의 전반적인 "적합 파라미터의 품질"을 얻는 방법을 생각해 I 수 있도록 서로 다른 곡선 방정식 (예 : Gaussian, Super Gaussian 등) 간의 적합성을 비교하십시오.
간단한 수준에서 더 나은 방법이 있을지 모르지만 각 계수의 불확도 백분율을 계산 한 다음 평균을 구할 수 있습니까? 위키 피 디아 페이지에서 특히 유용한 "적합성"이라는 온라인 검색을 통해이 점을 설명 할 수있는 많은 방법이 있음을 알 수 있습니다. 누구든지 파이썬 패키지에 내장되어 있는지/커브 피팅을 수량화하는 좋은 방법에 대한 일반적인 조언이 있는지 궁금합니다.
도움 주셔서 감사합니다.
[표준 예상 오차] (http://onlinestatbook.com/2/regression/accuracy.html)를 원할 수도 있습니다. –
이 답변을보십시오 : 전체 출력 from curve_fit! http://stackoverflow.com/a/16528775/680232 –