Python 如何计算具有正负不确定性的斜率

Python 如何计算具有正负不确定性的斜率,python,matplotlib,Python,Matplotlib,下面的代码给出了斜率的具体值,但我想用一些不确定性来计算它,比如(1.95+u0.03)。我该怎么做 import numpy as np import matplotlib.pyplot as plt from scipy import stats x= np.arange(10) y = np.array([2,4,25,8,10,30,14,16,28,20]) z = stats.linregress(x,y) print (z) slope = z[0] intercept = z[

下面的代码给出了斜率的具体值,但我想用一些不确定性来计算它,比如(1.95+u0.03)。我该怎么做

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

x= np.arange(10)
y = np.array([2,4,25,8,10,30,14,16,28,20])
z = stats.linregress(x,y)
print (z)
slope = z[0]
intercept = z[1]
line = slope*x + intercept    

plt.plot(x,y,'o', label='original data')
plt.plot(x,line,color='green', label='fitted line')

plt.xlabel("independent _variable")
plt.ylabel("dependentt_variable")
plt.savefig("./linear regression")
可以使用详细描述的公式计算坡度的坡度。从您的代码(假设您使用的是scipy.stats包),您可以找到(1-α)%置信区间,如下所示:

alpha = 0.05
CI = [z.slope+z.stderr*t for t in stats.t.interval(alpha/2, len(x)-2)]
print(CI)

# [1.9276895391491087, 1.9874619760024068]  
要以问题中所述的形式打印置信区间:

halfwidth = z.stderr*stats.t.interval(alpha/2, len(x)-2)[1]
print('({} +/- {})'.format(z.slope, halfwidth))

# (1.9575757575757577 +/- 0.02988621842664903)

或者,您可以使用StatsModels包,它有一个内置的方法来查找置信区间。这在所发现的问题中得到了解释。

是否有类似np.polyfit(x,y,1)这样的内置函数可以做到这一点?如果你能用一小段代码来解释这一点,那对我真的很有帮助。我想要这个形式的斜率(-1.03+-0.06)我已经附加了我的评论。实际上我想问一下如何在线性回归中找到斜率的最大值和最小值。如果你不是指我在回答中给出的置信区间,我不确定斜率的最大值和最小值是什么意思。在给定数据集上使用最小二乘回归总是会产生一个单一的斜率估计值。具体值是什么?你现在得到了什么?帮助理解您的代码。。