gpt4 book ai didi

python - 具有不确定性的两个数据点的线性拟合的置信区间

转载 作者:行者123 更新时间:2023-12-01 06:55:18 24 4
gpt4 key购买 nike

我有两个点,坐标分别为 x_1,2 和 y_1,2。 y 是测量值,具有与之相关的不确定性。我可以轻松计算出拟合两点的直线。我还可以估计与斜率和截距相关的不确定性。我想计算/绘制置信带。通常我会这样做:

serr = np.sqrt(np.sum(residuals**2)/(n - 2))
t = stats.t.ppf(1-0.05/2, n - 2)
confint = t * serr * np.sqrt(1./n + (x - np.mean(x))**2/np.sum((x-np.mean(x))**2))

使用标准误差和学生分布的标准方法是不可能的,因为自由度数为 0,n=2。是否有其他方法使用与斜率和截距相关的不确定性来估计(和显示)置信区间?谢谢

最佳答案

我想说这应该是“简单”的错误传播。您将 y 误差传播到斜率和截距中,您必须注意这些误差是相关的。利用已知误差和相关性,可以计算 y 与给定 x 的误差

我会这样做:

import matplotlib.pyplot as plt

import numpy as np

"""
y = a + b x
"""
xl = [ 1, 2 ] ### x1 , x2
yl = [ .6, 1.8 ] ### y1 , y2
yerr = [ .5, .3 ] ### s1, s2

b = ( yl[1] - yl[0] ) / ( xl[1] - xl[0] ) ### deltaX / deltaY
a = yl[0] - b * xl[0]

xnp = np.linspace( -.5, 3, 200 )
ynp = np.fromiter( ( a + b * x for x in xnp ), np.float)

"""
Joel Tellinghuisen
J. Phys. Chem. A 2001, 105, 3917-3921

transformation of errors provides
(a) ( s1^2 ( 1 + x1 / delatX )^2 + s2^2 ( x1 / deltaX )^2 , -s1^2 ( 1 + x1 / deltaX ) / deltaX - s2^2 x1 / deltaX^2 )
( ) -> ( )
(b) ( -s1^2 ( 1 + x1 / deltaX ) / deltaX - s2^2 x1 / deltaX^2 , ( s1^2 + s2^2 ) / deltaX^2 )

from this we calculate sy^2 = sa^2+ sb^2 x^2 + 2 sab^2 x:
"""

def sy( x ):
s1, s2 = yerr
x1, x2 = xl
dx = x2 - x1
out = ( s1 * ( 1 + x1 / dx ) )**2
out += ( s2 * x1 / dx )**2
out += ( s1**2 + s2**2 ) / dx**2 * x**2
out -= 2 * ( s2**2 * x1 / dx**2 + s1**2 * ( 1 + x1 / dx ) / dx ) * x
return np.sqrt( out )

ynpbp = np.fromiter( ( a + b * x + sy(x) for x in xnp ), np.float)
ynpbm = np.fromiter( ( a + b * x - sy(x) for x in xnp ), np.float)
ye = np.fromiter( ( sy(x) for x in xnp ), np.float)


fig = plt.figure()
ax = fig.add_subplot( 1, 1, 1 )
ax.errorbar( xl, yl, yerr=yerr, marker='s', ls='' )
ax.plot( xnp, ynp )
ax.plot( xnp, ynpbp )
ax.plot( xnp, ynpbm )
ax.plot( xnp, ye )
ax.grid()
plt.show()

这给了我以下情节

graph with confidence

关于python - 具有不确定性的两个数据点的线性拟合的置信区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58837553/

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