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

回归直线方程「建议收藏」回归直线方程线性回归方程的公式一个简单实现代码//************************************//函数名称: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数据的均值)

 

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 教你如何免费使用云服务器「建议收藏」

    教你如何免费使用云服务器「建议收藏」深度学习没有GPU?!!教你如何白嫖服务器一、声明二、引言二、如何获取三、操作步骤3.1文件传输软件的安装3.3远程操控软件的安装四、资料软件分享五、总结教你如何白嫖服务器)一、声明本文章没有广告用意,只是觉得好用分享给大家。同时做个简单的记录。二、引言因为电脑只有CPU,算力不够,以及很多深度学习教程以及模型都是在GPU环境下进行,所以一直想着怎么样才能白嫖到服务器,毕竟云服务器不便宜,要是经常用的话,对学生党来说是一笔不小的支出。有一天经过群友推荐终于找到了一个可以免费试用200元的云服

    2022年9月26日
    2
  • android declare-styleable 和style,Android 关于declare-styleable属性的写法….

    android declare-styleable 和style,Android 关于declare-styleable属性的写法….我想问自定义View的时候,以下这段代码,为何要写两次一样的名称呢?我看了一些资料,说写在declare-styleable系统会自动生成数组…..我不太明白这实际应用是什么?如果说自动帮你生成了数组,方便使用,那写在外面的三个又有什么作用?能从实际应用中讲一讲吗?<?xmlversion=”1.0″encoding=”utf-8″?><resources><at…

    2022年7月13日
    16
  • 2021国产LINUX深度操作系统20.2.4安装安免免评测软件[通俗易懂]

    2021国产LINUX深度操作系统20.2.4安装安免免评测软件[通俗易懂]2021年9月,国产深度操作系统增加了安免免评测软件,下面安装试用:一,在应用商店里面搜索安装。二,安装完成后桌面生成图标。三,主界面四,测试中五,结果得分…

    2022年5月17日
    76
  • 时间控件(选择时间范围的插件)「建议收藏」

    时间控件(选择时间范围的插件)「建议收藏」后台开发,一般都是有筛选条件的查询,那么问题就来了,根据日期范围搜索的情况下,插件要怎么选????Laydate时间控件这个是最开始,我采用的是两个时间插件,其他也没啥,就是运营部门使用起来可能感觉太麻烦,为啥不能一次让我选了,还有说老是忘记选择结束时间,然后就有了我接下来的工作。。。在此,给大家推荐一款很好使用的日期与时间组件…

    2022年5月10日
    41
  • 爬动漫“上瘾”之后,放弃午休,迫不及待的用Python薅了腾Xun动漫的数据,啧啧啧

    爬动漫“上瘾”之后,放弃午休,迫不及待的用Python薅了腾Xun动漫的数据,啧啧啧爬虫120例的第10篇,小阶段,要个一键三连不过分吧

    2022年5月6日
    63
  • python中if的用法例子_python中while的意思是

    python中if的用法例子_python中while的意思是一、if判断语句if语句是用来进行判断的,其使用格式如下:if要判断的条件:条件成立时,要做的事情else这里写代码片否者要做的事情二、框图三、参考代码:chePiao=1ifchePiao==1:print("hell")else:print("hell…

    2022年9月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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