2013-07-21 36 views
10

Tôi đang sử dụng Scipy CurveFit để vừa với đường cong Gaussian đến dữ liệu và quan tâm đến việc phân tích chất lượng phù hợp. Tôi biết CurveFit trả về ma trận pcov hữu ích, từ đó độ lệch chuẩn của mỗi tham số phù hợp có thể được tính như sqrt (pcov [0,0]) cho tham số popt [0].Định lượng chất lượng đường cong phù hợp bằng cách sử dụng Python SciPy

ví dụ: Đoạn mã cho việc này:

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])) 

này đưa ra một dấu hiệu của sự không chắc chắn trong các thông số phù hợp cho từng hệ số trong phương trình đường cong phù hợp, nhưng tôi tự hỏi cách tốt nhất để có được một tổng thể “chất lượng của tham số phù hợp” để tôi có thể so sánh chất lượng của sự phù hợp giữa các phương trình đường cong khác nhau (ví dụ Gaussian, Super Gaussian, vv)

Ở mức đơn giản, tôi có thể tính toán độ không chắc chắn của từng hệ số và trung bình, mặc dù tôi có cách nào tốt hơn? Từ tìm kiếm trực tuyến, và từ trang Wikipedia đặc biệt hữu ích "tốt đẹp", tôi lưu ý có nhiều biện pháp để mô tả điều này. Tôi tự hỏi nếu có ai biết liệu có bất kỳ được xây dựng vào gói Python/có bất kỳ lời khuyên chung cho những cách tốt để định lượng phù hợp đường cong.

Cảm ơn bạn đã trợ giúp!

+1

Tôi nghĩ bạn có thể muốn [lỗi chuẩn của ước tính] (http://onlinestatbook.com/2/regression/accuracy.html). –

+0

Xem thêm câu trả lời này: Toàn bộ đầu ra từ curve_fit! http://stackoverflow.com/a/16528775/680232 –

Trả lời

4

Bạn có thể sử dụng thư viện ODRPACK thay vì curve_fit. Kết quả của việc lắp đặt bởi ODRPACK chứa các ước tính về sự không chắc chắn cho tất cả các thông số phù hợp theo nhiều cách khác nhau bao gồm các lỗi chuẩn của các tham số ước tính, mà chính xác bạn đang tìm kiếm.

Tôi đã từng làm việc với curve_fit, nhưng tôi đã gặp phải cùng một vấn đề: sự vắng mặt của các ước tính lỗi của các thông số khớp. Vì vậy, bây giờ tôi đang sử dụng ODRPACK.

Các vấn đề liên quan