python 中 sm.graphics.plot_regress_exog 绘制图像的解释

导入相关包

import numpy as np
import pandas as pd 
import statsmodels.api as sm
import matplotlib.pyplot as plt

创建数据

X = np.arange(1,20) # 创建X数据
def fun(x,a,b):
    return a*x + b
y = fun(X,3,2)  # 创建 y = 3*x+2
np.random.seed(2) # 控制每次随机误差数据相同
y_noise =np.random.normal(1,0.5,19) #生成正态分布数据(1,0.5,19)数据大小在1左右,sigma = 0.5 ,19个数据
y = fun(X,3,2)+y_noise #加入误差数据

数据准备

data = {
    'X' : X,
    'y' : y
}
data = pd.DataFrame(data)

使用OLS来预测数据

X1 = sm.add_constant(X) #增加常数
est = sm.OLS(y,X).fit()
est.summary()

请添加图片描述

参数解析请参照:
https://blog.csdn.net/weixin_39677419/article/details/110830152

这里就关注:
请添加图片描述

这个x1就相当于y=a*x +b 中的参数 a,const 相当于常数b

绘制图形

fig = plt.figure(figsize=(15,10))
sm.graphics.plot_regress_exog(est,'x1',fig=fig)
意思是针对一个回归模型绘制回归结果。

请添加图片描述

左上图:表示预测值跟真实值之间的差值
右上图:表示x1的残差图。X坐标为x1的值,Y坐标表示x1对应的残差值,也就是左上图中蓝点跟黄点之间的距离差。
点离中间的直线越近表示模型更加有效
左下图:显示的是考虑新增其他自变量时,X与y之间的关系。
右下图:显示的是左下图图像的延申,反映了考虑新增其他自变量后反应两者关系的直线将如何变化。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值