python-线性回归NumPy和Matplotlib库

import matplotlib.pyplot as plt
from scipy import stats

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

slope, intercept, r, p, std_err = stats.linregress(x, y)

def myfunc(x):
  return slope * x + intercept

mymodel = list(map(myfunc, x))

plt.scatter(x, y)
plt.plot(x, mymodel)
plt.show()

这段代码使用了Matplotlib和SciPy库来进行简单的线性回归分析,并绘制出数据点和回归线的散点图。下面是对每行代码的解释:

  1. import matplotlib.pyplot as plt:导入Matplotlib库中的pyplot模块,并将其命名为plt,以便在代码中使用。

  2. from scipy import stats:从SciPy库中导入stats模块,用于进行统计分析。

  3. x = [5,7,8,7,2,17,2,9,4,11,12,9,6]:定义一个一维数组x,表示自变量的取值。

  4. y = [99,86,87,88,111,86,103,87,94,78,77,85,86]:定义一个一维数组y,表示因变量的取值。

  5. slope, intercept, r, p, std_err = stats.linregress(x, y):使用stats模块中的linregress函数进行线性回归分析,得到回归方程的斜率(slope)、截距(intercept)、相关系数(r)、p值(p)和标准误差(std_err)。

  6. def myfunc(x)::定义一个名为myfunc的函数,接受一个参数x,用于计算回归线上的y值。

  7. return slope * x + intercept:在myfunc函数中,返回根据回归方程计算的y值。

  8. mymodel = list(map(myfunc, x)):使用map函数将自变量数组x中的每个元素传入myfunc函数,并将结果存储在mymodel中,得到回归线上的所有y值。

  9. plt.scatter(x, y):使用Matplotlib的scatter函数绘制数据点的散点图。

  10. plt.plot(x, mymodel):使用Matplotlib的plot函数绘制回归线。

  11. plt.show():显示绘制的散点图和回归线。

通过这段代码,我们可以对给定的x和y数据进行线性回归分析,并绘制出数据点和回归线的散点图,从而观察数据的线性趋势和相关性。

你可能感兴趣的:(matplotlib,scipy,python)