利用最小二乘法实现图片中多个点的一元线性回归

原创 2004年07月31日 22:03:00

    在日常生活和科学实验中,人们会经常发现因变量y和自变量x之间存在一定线性关系设一组数据为:

   

yx的关系可以用线性方程表示:

   

 

    按最小二乘法可得:

   

 

   

 

        线性关系的程度可以用相关系数r表示

  

 

        所以,如果想在图象框中根据已知的多个存在线性关系的点描出相应的离所有的点最靠近的直线,应该利用以上一元线性回归的方法,代码如下:

 

Private Sub Command1_Click()
Picture1.Scale (0, 20)-(12, 0) '设置坐标范围
Dim p(4, 1) As Double, i As Integer
For i = 0 To 4
p(i, 0) = Choose(i + 1, 1.2, 3.7, 4.1, 5.1, 8.3)
p(i, 1) = Choose(i + 1, 2.2, 6.4, 7.8, 10.1, 15.8)
Next ' 定义五个点
drawline Picture1, p '画出过五个点的直线
End Sub
Sub drawline(ByVal pic As PictureBox, ByRef p() As Double)
Dim sigmax As Double, sigmay As Double, sigmaxx As Double, sigmaxy As Double, n As Integer
Dim i As Long
Dim a As Double, b As Double '截距斜率
Dim x0 As Double, y0 As Double, x1 As Double, y1 As Double '定义两端点
n = UBound(p) - LBound(p) + 1 '点的个数
For i = LBound(p) To UBound(p)
Picture1.Circle (p(i, 0), p(i, 1)), Picture1.ScaleWidth / 200, vbRed '描点
Picture1.CurrentX = p(i, 0)
Picture1.CurrentY = p(i, 1)
Picture1.ForeColor = vbBlue
Picture1.Print "(" & p(i, 0) & ","; p(i, 1) & ")" '数据标志
sigmax = sigmax + p(i, 0) 'Σx
sigmay = sigmay + p(i, 1) 'Σy
sigmaxx = sigmaxx + p(i, 0) ^ 2 'Σx^2
sigmaxy = sigmaxy + p(i, 0) * p(i, 1) 'Σx*y
Next

a = (sigmaxx * sigmay - sigmax * sigmaxy) / (n * sigmaxx - sigmax ^ 2) '截距
b = (n * sigmaxy - sigmax * sigmay) / (n * sigmaxx - sigmax ^ 2) '斜率
x0 = Picture1.ScaleLeft
y0 = a + b * x0 '左端点
x1 = Picture1.ScaleLeft + Picture1.ScaleWidth
y1 = a + b * x1 '右端点
Picture1.Line (x0, y0)-(x1, y1), vbGreen '回归直线
End Sub

 

结果如下图所示:

  

 

多元线性回归模型和最小二乘法

学过的东西往往记不住,上次面试尽然问我最小二乘法。为了加深映像,j
  • sinat_16233463
  • sinat_16233463
  • 2014年07月06日 20:08
  • 3457

最小二乘法多项式拟合的Java实现

背景 由于项目中需要根据磁盘的历史使用情况预测未来一段时间的使用情况,决定采用最小二乘法做多项式拟合,这里简单描述下: 假设给定的数据点和其对应的函数值为 (x1, y1), (x2, y2), ...
  • funnyrand
  • funnyrand
  • 2015年07月03日 15:47
  • 6480

回归算法(最小二乘法拟合)

回归算法简介、最小二乘法简介、算法实现。
  • jiximeng123
  • jiximeng123
  • 2014年08月27日 16:19
  • 8673

一元线性回归模型与最小二乘法及其C++实现

原文:http://blog.csdn.net/qll125596718/article/details/8248249       监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,...
  • u010064842
  • u010064842
  • 2013年10月06日 11:17
  • 1907

一元线性回归模型与最小二乘法及其C++实现

一元线性回归模型与最小二乘法及其C++实现 2012-12-02 14:13 21560人阅读 评论(8) 收藏 举报 http://blog.csdn.net/qll125596718/a...
  • mmbbz
  • mmbbz
  • 2017年02月08日 15:36
  • 210

一元线性回归模型与最小二乘法及其C++实现

转自:http://blog.csdn.net/qll125596718/article/details/8248249 目录(?)[+]         监督学习中,...
  • u012736279
  • u012736279
  • 2015年06月18日 11:34
  • 429

一元线性回归模型与最小二乘法及其C++实现

监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这...
  • qll125596718
  • qll125596718
  • 2012年12月02日 14:13
  • 32453

一元线性回归方程最小二乘法矩阵处理

用矩阵来解最小二乘法,借助MATLAB求解方程。材料的抗剪强度与材料承受的正应力有关。对某种材料试验的数据如下: 假设正应力的数值是精确的。 设一元线性回归方程为y=kx+b。 建立矩阵: ...
  • c11556913
  • c11556913
  • 2017年12月10日 17:08
  • 107

线性回归算法实现(最小二乘法, 梯度下降)

一、最小二乘法import numpy as np; import matplotlib.pyplot as plt;初始化数据,网上随便找的数据, 说是奥运会100用时,以及对应的年份。dataAr...
  • castle_cc
  • castle_cc
  • 2017年11月03日 11:42
  • 684

用最小二乘法求线性回归方程计算器1.1(可显示计算过程)

  • 2011年04月19日 20:37
  • 467KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用最小二乘法实现图片中多个点的一元线性回归
举报原因:
原因补充:

(最多只允许输入30个字)