Python 绘制线性回归散点图和置信区间线

Posted 空中旋转篮球

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 绘制线性回归散点图和置信区间线相关的知识,希望对你有一定的参考价值。

使用python绘制线性回归散点图和回归线以及置信区间线,使用的数据直接随机写两个一维数组,作为x、y值。

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

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)
print(slope, intercept, r, p, std_err)
def myfunc(x):
  return slope * x + intercept
mymodel = list(map(myfunc, x))

#y=slope * x + intercept
regression_equation="y="+":.2f".format(slope)+"*x+"+":.2f".format(intercept)+"\\nR:"+":.2f".format(r)+"\\nP:"+":.4f".format(p)

y_pred= mymodel
print(y_pred)
std=np.std(y_pred)
# y_pred, std = model.predict(x, return_std=True)

std_z = 1.96 # from z-table for 95%
confidence_interval = std * std_z

plt.scatter(x, y)
plt.plot(x, mymodel,label=regression_equation)
plt.plot(x, y_pred - confidence_interval)
plt.plot(x, y_pred + confidence_interval)

plt.fill_between(x, y_pred - confidence_interval, y_pred + confidence_interval)
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc="best") # 指定legend的位置,读者可以自己help它的用法
plt.title('polyfitting')
plt.show()

计算效果如下:

修改一下代码,显示置信区间图例标签,效果如下:

plt.plot(x, y_pred - confidence_interval,label="95%-")
plt.plot(x, y_pred + confidence_interval,label="95%+")

 

以上是关于Python 绘制线性回归散点图和置信区间线的主要内容,如果未能解决你的问题,请参考以下文章

Python 绘制线性回归散点图和置信区间线

Python 绘制线性回归散点图和置信区间线2

Python 绘制线性回归散点图和置信区间线2

Python 绘制线性回归散点图和置信区间线2

seaborn 的 lmplot 的输出没有绘制散点图和线性回归

R语言使用car包的scatterplotMatrix函数绘制散点图矩阵并添加线性回归曲线平滑曲线以及对角线核密度图和轴须图rugcor函数计算变量两两相关性