应用回归分析第五版 例2.2 一元线性回归

预测2012年数据

数据:链接:https://pan.baidu.com/s/1OIOaq3sqYPU-THuAl0QTVA 
提取码:szp9

一元线性回归步骤:画散点图、正态检验、参数估计(最小二乘法)、回归方程的显著性检验(t检验、F检验)

基本假定:

1、设计矩阵X的自变量列之间不相关,样本量的个数大于解释变量的个数

2、随机误差项具有零均值的等方差。要进行方差齐性检验。

3、随机向量y服从正态分布

一、导包,导数据,画散点图

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from scipy import stats
plt.style.use('ggplot')
## 解决中文字符显示不全
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
#导入数据
data=pd.read_csv('li2.2.csv')
y=data['人均支出']
x=data['人均收入']
#散点图
plt.scatter(x, y)
plt.xlabel('人均收入',fontproperties = font)
plt.ylabel("人均支出",fontproperties = font)
plt.title('收支表',fontproperties = font)
plt.show()

散点图有直线趋势,用一元线性回归模型

 二、正态性检验

#P-P图检验正态性
plt.rcParams["figure.figsize"]=[12,4]
plt.subplot(1,2,1)
stats.probplot(x,dist='norm',plot=plt)
plt.subplot(1,2,2)
stats.probplot(y,dist='norm',plot=plt)
plt.show()

 和直线基本吻合,服从正态分布。

三、线性回归

#普通最小二乘估计
model_1 = sm.formula.ols('y ~ x', data = data).fit()  #OLS普通最小二乘法
model_1.summary()

 

一元线性回归方程为y = 542.2517+0.6837x

原假设:β1=0,备择假设:β1≠0 n=22

t检验t=104.249,t>t(α/2),自由度为n-2,α为0.05,p值=0<α,拒绝原假设,显著

F检验F=10870,F>Fα(1,n-2),α为0.05,P值=7.67e-29<α,拒绝原假设,显著

β1置信区间为 [0.670 ,0.697]不包含0

决定系数R²=0.998,接近于1,拟合效果好

四、基本假定的检验

#方差齐性检验
from scipy.stats import levene
e = model_1.resid
e1 = e[1:]
stat,p = levene(e,e1)
print(e.mean())
print(stat,p)
1.787983902349052e-12
0.09105922542140168 0.7643602272810235

均值为0,p=0.764>0.05,表明残差具有方差齐性

四、预测

#预测2012年
y = 542.2517+0.6837*x
x = 24564.7
print(y)

结果为17337.13709

菜鸡一枚,欢迎交流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值