簡體   English   中英

Chi square numpy.polyfit(numpy)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM