一  理论与基础

自变量:样本的特征数值

因变量:需要预测的样本的预测值

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()

一元线性回归(一)----简单线性回归与最小二乘法相关推荐

  1. 线性回归原理----简单线性回归、多元线性回归

    回归分析是用来评估变量之间关系的统计过程.用来解释自变量X与因变量Y的关系.即当自变量X发生改变时,因变量Y会如何发生改变. 线性回归是回归分析的一种,评估的自变量X与因变量Y之间是一种线性关系,当只 ...

  2. 【R模型】R语言线性回归之简单线性回归模型 (一)

  3. 线性回归——简单线性回归、多元线性回归

    回归分析是用来评估变量之间关系的统计过程.用来解释自变量X与因变量Y的关系.即当自变量X发生改变时,因变量Y会如何发生改变. 线性回归是回归分析的一种,评估的自变量X与因变量Y之间是一种线性关系.当只 ...

  4. 机器学习:回归分析—— 一元线性回归、多元线性回归的简单实现

    回归分析 回归分析概述 基本概念 可以解决的问题 基本步骤和分类 线性回归 一元线性回归 多元线性回归 回归分析概述 基本概念 回归分析是处理多变量间相关关系的一种数学方法.相关关系不同于函数关系,后 ...

  5. R语言使用lm函数拟合回归模型(简单线性回归、一元回归、simple regression)、并解读拟合模型

    R语言使用lm函数拟合回归模型(简单线性回归.一元回归.simple regression).并解读拟合模型 目录

  6. python线性回归算法简介_Python实现的简单线性回归算法实例分析

    本文实例讲述了Python实现的简单线性回归算法.分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结果: > ...

  7. python 线性回归函数_Python实现的简单线性回归算法实例分析

    本文实例讲述了Python实现的简单线性回归算法.分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结果: > ...

  8. sklearn学习笔记之简单线性回归

    简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项.线性回归的思想其实就是解一组方程,得到回归函数,不过在出现误 ...

  9. 机器学习——一元线性回归和多元线性回归

    一元线性回归:梯度下降法 一元线性回归是线性回归的最简单的一种,即只有一个特征变量.首先是梯度下降法,这是比较经典的求法.一元线性回归通俗易懂地说,就是一元一次方程.只不过这里的斜率和截距要通过最小二 ...

最新文章

  1. 防火墙产品原理与应用:NAT支持的特殊协议
  2. linux命令行 正则,在Linux命令行中使用正则表达式
  3. python图片识别拉框_python目标检测给图画框,bbox画到图上并保存案例
  4. Python基础教程:json中load和loads区别
  5. 「offer来了」浅谈前端面试中开发环境常考知识点
  6. Java EE 8:社区想要什么?
  7. Android应用开发-onNewIntent()
  8. 二元置信椭圆r语言_医学统计与R语言:多分类logistic回归HosmerLemeshow拟合优度检验...
  9. 开发者论坛一周精粹(第十七期) :【漏洞预警】Windows再被爆SMB服务0day漏洞,阿里云提示您关注并修复...
  10. DOM概述 选取文档元素 1
  11. .net compact framework下的绘图闪烁解决方案
  12. 请简述java的异常体系,Java的异常体系 面试题
  13. 数据库实战案例—————记一次TempDB暴增的问题排查
  14. php画弧,75、PHP图像处理之画圆、弧线、网站饼状统计图绘制
  15. 行业案例 | 悬镜DevSecOps智适应威胁管理解决方案获评信通院“2021云安全守卫者计划优秀案例”
  16. CentOS6.6下配置KMS自动激活服务器
  17. stat() /root/xxx/index.html failed (13: Permission denied)
  18. 根据现在的时区,判断其他时区的时间,包含夏令时。
  19. echart ——正负条形图
  20. 使用WebSocket实现网页聊天室

热门文章

  1. web前端学习第二周(21~45)
  2. 机器学习中必知必会的 8 种降维技术,最后一款超硬核!
  3. 简谈对ES7的async和await的理解
  4. 服装设计爱好者的选择-优定制
  5. 车间生产设备管理有哪些问题?低代码来助力
  6. python怎么删除文件夹?
  7. 铅酸蓄电池正确使用与充电管理
  8. C#练习题答案: 狂暴评价者:CG比。铛【难度:2级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
  9. rk3288上ap6212自定义wifi的mac地址
  10. 十五年老股民炒股15年,总结感悟至深的八十一条炒股笔记