[英]Chi square numpy.polyfit (numpy)
有人可以解釋如何使用numpy.polyfit獲取Chi ^ 2 / doF?
假設您有一些數據點
x = numpy.array([0.0, 1.0, 2.0, 3.0])
y = numpy.array([3.6, 1.3, 0.2, 0.9])
要將拋物線擬合到這些點,請使用numpy.polyfit()
:
p = numpy.polyfit(x, y, 2)
要獲得此擬合的卡方值,請在數據點的x
值處計算多項式,減去y
值,平方和求和:
chi_squared = numpy.sum((numpy.polyval(p, x) - y) ** 2)
如果您願意,可以將此數字除以自由度數。
至少自1.3版以來,Numpy的polyfit
支持一個full
參數。 如果將其設置為True
,則polyfit
將返回更多值,包括殘差的平方。 這是卡方(由自由度非標准化)。
所以一個簡單的例子就是
p, residuals, _, _, _ = numpy.polyfit(x, y, 2, full=True)
chisq_dof = residuals / (len(x) - 3)
我沒有嘗試過自己的重量,但我認為polyfit
在這里做的是正確的(因為numpy 1.7, polyfit
接受參數w
來提供適合的重量)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.