如何在值中加上负的不确定性来计算斜率

时间:2018-06-26 15:56:39

标签: python matplotlib

以下代码给出了特定的斜率值,但我想以(1.95 + _ 0.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")

1 个答案:

答案 0 :(得分:1)

您可以使用详细描述的公式confidence interval计算坡度的here。从您的代码中(假设您使用的是scipy.stats包),您可以找到(1-α)%置信区间,如下所示:

lifecycle

以问题中所述的形式打印置信区间:

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]  

或者,您可以使用StatsModels程序包,该程序包具有内置方法来查找置信区间。 here找到的问题对此进行了解释。