回归直线方程「建议收藏」

回归直线方程「建议收藏」回归直线方程线性回归方程的公式一个简单实现代码//************************************//函数名称:GetLineEquationDouble0//函数说明

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

回归直线方程

 

线性回归方程的公式

 

clip_image001

 

 

一个简单实现代码

 

           

 

//************************************

 

// 函数名称: GetLineEquationDouble0

 

// 函数说明: 求线性回归方程

//     :

 

//           const SPoint inPoint[MAX_PLATE_HEIGHT]     [in]    数据点

//           const int length                           [in]    点的数量

//           double * k                                 [out]   直线斜率

//           double * b                                 [out]   直线截距

// : byte

 

//************************************

 

byte GetLineParam(const SPoint *inPoint,constint length,double*k,double*b)

{

    int i=0;

    int sumX=0, sumY=0;

    double  xavg=0, yavg=0;

    int   sumXX =0;

    int sumXY =0;

    int tempK1 =0;

    double tempK =0;

    double tempB =0;

 

 

    if(length ==0)

    {

        *k =0;

        *b =0;

        return1;

    }

 

    sumX =0;

    sumY =0;

    sumXX =0;

    sumXY =0;

    for(i=0; i<length; i++)

    {

        sumX += inPoint[i].x;

        sumY += inPoint[i].y;

        sumXX += inPoint[i].x * inPoint[i].x;

        sumXY += inPoint[i].x * inPoint[i].y;

    }

 

    xavg = sumX / length;

    yavg = sumY / length;

 

    tempK1 = sumXX length * xavg * xavg;

   

 

    if(tempK1 ==0)

    {

        *k =0;

        *b =0;

        return1;

 

    }

 

    tempK =(sumXY length * xavg * yavg)/ tempK1;

 

    tempB = yavg tempK *  xavg;

 

    *k = tempK;

    *b = tempB;

 

    return1;

}

 

 

一个网上看的例子

 

某产品广告支出x万元,与销售额y万元之间有如下数据x=2,4,5,6,8y=30,40,60,50,70(1)求回归直线方程

(1)设回归线性方程为:y=bx+a
x的平均值=2+4+5+6+8/5=5
y的平均值=30+40+60+50+70/5=50
xi^2=2^2+4^2+5^2+6^2+8^2=145
xiyi=2*30+4*40+5*60+6*50+8*70=1380
根据公式:b=1380-5*5*50/(145-5*5^2)=6.5
                 a=50-6.5*5=17.5
则回归线性直线方程为:y=6.5x+17.5

 

 

简单的证明

 

用最小二乘法估计参数b ,分别求对a、b的偏导数并令它们等于零,得方程组并求解.

 

假设线性回归方程为: y=ax+b (1) 
a,b为回归系数,要用观测数据(x1,x2,…,xn和y1,y2,…,yn)确定之.
为此构造 Q(a,b)=Σ(i=1->n)[yi-(axi+b)]^2 (2)
使Q(a,b)取最小值的a,b为所求.
令: ∂Q/∂a= 2Σ(i=1->n)[yi-(axi+b)](-xi)= 0 (3)
∂Q/∂b= 2Σ(i=1->n)[yi-(axi+b)] = 0 (4)
根据(3)、(4)解出a ,b就确定了回归方程(1):
a Σ (Xi)² + b Σ Xi = Σ Xi Yi (5)
a Σ Xi + b n = Σ Yi (6)
由(5)(6)解出a,b便是,其中化简过程要用到Σ(i=1->n) (xi)  =  n T (T为X数据的均值)

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168265.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Maven安装教程_vmware安装教程

    Maven安装教程_vmware安装教程一、安装apache官网下载需要的版本,然后解压缩,解压路径尽量不要有空格和中文Maven–DownloadApacheMavenhttps://maven.apache.org/download.cgi二、配置环境变量新建系统变量变量名:MAVEN_HOME值:你解压的路径eg:D:\xxx\apache-maven-3.8.4编辑系统变量Path打开->新建->路径为:解压缩文件的路径到bin目录eg:D:\xxx\apac

  • 大学项目总结(一)——基于Android的智能点餐系统

    大学项目总结(一)——基于Android的智能点餐系统这个项目是在我大一下学期开始进行制作,并一直到大一暑假结束完成。一共由我和另一个同学两个人完成,我主要负责前端功能,他主要负责后台下面是主要的图册:…

  • PyCharm如何设置 “ctrl+滚轮” 实现字体的放大和缩小「建议收藏」

    PyCharm如何设置 “ctrl+滚轮” 实现字体的放大和缩小「建议收藏」一、PyCharm字体放大的设置File–>setting–>Keymap–>在搜索框中输入increase—>IncreaseFontSize(双击)–>在弹出的对话框中选择AddMouseShortcut–>弹出的对话框后按住ctrl键的同时鼠标滚轮向上滑。二、Pycharm字体缩小的设置:File–>setting–>Keymap–>在搜索框中输入decrease—>

  • springBoot+mybatis报错Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required

    springBoot+mybatis报错Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required报错为:Invocationofinitmethodfailed;nestedexceptionisjava.lang.IllegalArgumentException:Property’sqlSessionFactory’or’sqlSessionTemplate’arerequired日志很长,报错在末尾2018-07-1213:56:41.760 I…

  • 传奇私服架设(温故2002,自己制作传奇私服服务器)

    传奇私服架设(温故2002,自己制作传奇私服服务器)在家闲着没事,便想玩点单机游戏,于是想到自己架设个传奇私服,然后自己做GM玩玩,肯定挺爽的。。 准备工作:(网上搜索下载)DBC2000 数据库:http://www.skycn.com/soft/40872.html传奇私服服务端:http://www.rayfile.com/zh-cn/files/bf0e4b00-8550-11e0-bca

  • Swift3创建数组

    Swift3创建数组数组是由一组类型相同的元素构成的有序数据集合。数组中的集合元素是有序的,而且可以重复出现。1 数组创建在Swift语言中,数组的类型格式为:Array或[ElementType]其中Array中的ElementType表示数组的类型,是泛型写法。[ElementType]是一种简写方式。两者表示的功能是一样的,我们更偏向于使用简写形式,本书里所有数组类型都是使用简写形式。下

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号