一元线性回归(一)----简单线性回归与最小二乘法
一 理论与基础
自变量:样本的特征数值
因变量:需要预测的样本的预测值
1 简单线性回归(simple linear regression)
y:样本的预测值,即回归模型中的应变量
x:样本的特征数值,即回归模型中的自变量
:回归模型中的误差项,误差项说明了包含在y里面,但不能被x与y之间线性关系解释的变异性
2 线性回归方程
,可以看到它是一条直线
: 回归直线y轴的截距
: 回归直线y轴的斜率
对于一个给定的x值,E(y)是y的均值或期望值
3 简单线性回归方程,可以分析两个变量的关系
x值越大,E(y)越大,呈正相关
x值越大,E(y)越小,呈负相关
当回归方程的图为一条直线时,两个变量没有相关性
4 估计的简单线性回归方程
对于一个给定的x值是y的平均值E(y)的一个点估计
5 最小二乘准则
式中,为对第i次观测,应变量的观测值;
为对与第i次观测,应变量的预测值。
6 估计的回归方程的斜率和y轴的截距
式中,为对于第i次观测,自变量的值,
为对于第i次观测,应变量的观测值;
为自变量的样本平均值,
为应变量的样本平均值,n为总观测次数
二 应用与实现
1 一个简单的例子
Armand比萨饼连锁店是经营意大利食品的餐馆,它们分布在美国5个洲的范围内。Armand比萨饼连锁店的最佳位置是在大学校园附近,管理人员确信,这些连锁店的季度销售收入与学生人数是正相关的。
下面是10家armand比萨饼店的季度销售数据,观测次数n=10,数据中给出了应变量为比萨饼店季度销售额,自变量为当前比萨饼店所在的学校的学生人数,现有一家新开的比萨饼店,已知这家店附近的学生人数,求比萨饼店季度销售额
数据如下图:
表中的数据单位为千
2 使用python3.6的实现代码
下面两张图为程序运行后,绘制的数据可视化图,上图为源数据的散点图,下图为回归线的绘制
代码如下:
import numpy as np
import matplotlib.pyplot as pltclass SimpleRegress(object):def __init__(self, x_data, y_data):self.x_data = x_dataself.y_data = y_dataself.b0 = 0self.b1 = 1returndef calculate_work(self): # 回归方程中b0、b1的求解x_mean = np.mean(self.x_data) # x_mean= 14.0y_mean = np.mean(self.y_data) # y_mean= 130.0x1 = self.x_data - x_mean # x1= [-12. -8. -6. -6. -2. 2. 6. 6. 8. 12.]y1 = self.y_data - y_mean # y1= [-72. -25. -42. -12. -13. 7. 27. 39. 19. 72.]s = x1 * y1 # s= [864. 200. 252. 72. 26. 14. 162. 234. 152. 864.]u = x1 * x1 # u= [144. 64. 36. 36. 4. 4. 36. 36. 64. 144.]self.b1 = np.sum(s) / np.sum(u) # b1= 5.0self.b0 = y_mean - self.b1 * x_mean # b0= 60.0returndef test_data_work(self, text_data): # 回归方程的建立与数值预测result = list([])for one_test in text_data:y = self.b0 + self.b1 * one_testresult.append(y)return resultdef root_data_view(self): # 绘制源数据可视化图plt.scatter(x_data, y_data, label='simple regress', color='k', s=5) # s 点的大小plt.xlabel('x')plt.ylabel('y')plt.legend()plt.show()returndef test_data_view(self): # 绘制回归线# 绘制回归线两个点的数据x_min = np.min(self.x_data)x_max = np.max(self.x_data)y_min = np.min(self.y_data)y_max = np.max(self.y_data)x_plot = list([x_min, x_max])y_plot = list([y_min, y_max])# 绘制plt.scatter(x_data, y_data, label='root data', color='k', s=5) # s 点的大小plt.plot(x_plot, y_plot, label='regression line')plt.xlabel('x')plt.ylabel('y')plt.legend()plt.title('simple linear regression')plt.show()returnx_data = list([2, 6, 8, 8, 12, 16, 20, 20, 22, 26])
y_data = list([58, 105, 88, 118, 117, 137, 157, 169, 149, 202])
test_data = list([16])sr = SimpleRegress(x_data, y_data)
sr.calculate_work()
result = sr.test_data_work(test_data) # result= [140.0]
#sr.root_data_view()
sr.test_data_view()
一元线性回归(一)----简单线性回归与最小二乘法相关推荐
- 线性回归原理----简单线性回归、多元线性回归
回归分析是用来评估变量之间关系的统计过程.用来解释自变量X与因变量Y的关系.即当自变量X发生改变时,因变量Y会如何发生改变. 线性回归是回归分析的一种,评估的自变量X与因变量Y之间是一种线性关系,当只 ...
- 【R模型】R语言线性回归之简单线性回归模型 (一)
- 线性回归——简单线性回归、多元线性回归
回归分析是用来评估变量之间关系的统计过程.用来解释自变量X与因变量Y的关系.即当自变量X发生改变时,因变量Y会如何发生改变. 线性回归是回归分析的一种,评估的自变量X与因变量Y之间是一种线性关系.当只 ...
- 机器学习:回归分析—— 一元线性回归、多元线性回归的简单实现
回归分析 回归分析概述 基本概念 可以解决的问题 基本步骤和分类 线性回归 一元线性回归 多元线性回归 回归分析概述 基本概念 回归分析是处理多变量间相关关系的一种数学方法.相关关系不同于函数关系,后 ...
- R语言使用lm函数拟合回归模型(简单线性回归、一元回归、simple regression)、并解读拟合模型
R语言使用lm函数拟合回归模型(简单线性回归.一元回归.simple regression).并解读拟合模型 目录
- python线性回归算法简介_Python实现的简单线性回归算法实例分析
本文实例讲述了Python实现的简单线性回归算法.分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结果: > ...
- python 线性回归函数_Python实现的简单线性回归算法实例分析
本文实例讲述了Python实现的简单线性回归算法.分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结果: > ...
- sklearn学习笔记之简单线性回归
简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项.线性回归的思想其实就是解一组方程,得到回归函数,不过在出现误 ...
- 机器学习——一元线性回归和多元线性回归
一元线性回归:梯度下降法 一元线性回归是线性回归的最简单的一种,即只有一个特征变量.首先是梯度下降法,这是比较经典的求法.一元线性回归通俗易懂地说,就是一元一次方程.只不过这里的斜率和截距要通过最小二 ...
最新文章
- 防火墙产品原理与应用:NAT支持的特殊协议
- linux命令行 正则,在Linux命令行中使用正则表达式
- python图片识别拉框_python目标检测给图画框,bbox画到图上并保存案例
- Python基础教程:json中load和loads区别
- 「offer来了」浅谈前端面试中开发环境常考知识点
- Java EE 8:社区想要什么?
- Android应用开发-onNewIntent()
- 二元置信椭圆r语言_医学统计与R语言:多分类logistic回归HosmerLemeshow拟合优度检验...
- 开发者论坛一周精粹(第十七期) :【漏洞预警】Windows再被爆SMB服务0day漏洞,阿里云提示您关注并修复...
- DOM概述 选取文档元素 1
- .net compact framework下的绘图闪烁解决方案
- 请简述java的异常体系,Java的异常体系 面试题
- 数据库实战案例—————记一次TempDB暴增的问题排查
- php画弧,75、PHP图像处理之画圆、弧线、网站饼状统计图绘制
- 行业案例 | 悬镜DevSecOps智适应威胁管理解决方案获评信通院“2021云安全守卫者计划优秀案例”
- CentOS6.6下配置KMS自动激活服务器
- stat() /root/xxx/index.html failed (13: Permission denied)
- 根据现在的时区,判断其他时区的时间,包含夏令时。
- echart ——正负条形图
- 使用WebSocket实现网页聊天室