gpt4 book ai didi

python - 如何在 numpy.polyfit 中包含测量误差

转载 作者:行者123 更新时间:2023-12-01 04:58:35 24 4
gpt4 key购买 nike

文档 HERE for numpy.polyfit 将可选输入向量 w 定义为“应用于 y 坐标的权重”。该定义不清楚,并且似乎不是最小二乘拟合中权重的标准定义(参见例如 HERE )。

在输入测量值存在 1σ 误差(标准差)的常见情况下,如何计算 numpy.polyfit 中使用的权重?

最佳答案

简短回答

w与numpy.polyfit中1σ误差之间的关系为

w = 1/sigma

这与每个人的期望不同。

编辑:根据我在 Github 上的评论,numpy.polyfit 1.16 文档现在明确指出“使用 1/sigma(而不是 1/sigma**2)”以避免人们认为公式中存在拼写错误。

说明

在最小二乘拟合中,通常以一种使拟合最小化平方误差的方式定义权重向量(参见例如WikipediaNIST)

chi2 = np.sum(权重*(p(x) - y)**2)

在 1σ 误差(标准差)“sigma”已知的常见情况下,具有熟悉的教科书关系,其中权重是方差的倒数

权重 = 1/sigma**2

但是 numpy.polyfit 文档将权重定义为“应用于 y 坐标的权重”。这个定义不太正确。权重适用于拟合残差,而不仅仅是 y 坐标。

更重要的是,看看 Numpy (v1.9.1) 代码中的数学,Numpy 代码似乎解决了下面最后平方意义上的线性问题,其中 w 向量确实解决了乘以 y 坐标

(vander*w[:, np.newaxis]).dot(x) == y*w

但是在最小二乘意义上求解上面的数组表达式相当于最小化下面括号内的 w 表达式

chi2 = np.sum((w*(vander.dot(x) - y))**2)

或者,使用 Numpy 文档的表示法

chi2 = np.sum((w*(p(x) - y))**2)

这样w与1σ误差之间的关系为

w = 1/sigma

这与每个人的期望不同。

关于python - 如何在 numpy.polyfit 中包含测量误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26799467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com