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

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

相关推荐

  • Tomcat启动一闪而过就消失的原因和解决方法

    Tomcat启动一闪而过就消失的原因和解决方法Tomcat启动一闪而过怎么办?这成为了许多刚接触tomcat开发环境工作者的一个大问题,许多用户朋友都不知道是因为什么问题导致出现这种情况,下面就一起来了解一下吧。原因一: (1)首先要搞明白启动不起来的原因。方法是在命令行下,运行startup.bat文件,这样程序就不会一闪而过,而会将启动不起来的原因打印到窗口上。(2)在命令行下启动tomcat的方法读者应该都很清楚,大体就是:cmd启动命…

  • navicat 激活码 mac【2021最新】

    (navicat 激活码 mac)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

  • Flutter Mac 安装全教程(Android / iOS)

    Flutter Mac 安装全教程(Android / iOS)本文来自于:https://flutter.io/docs/get-started/install/macos目录下载Flutter设置环境变量Flutter命令安装编辑IDE下载Flutterhttps://flutter.io/docs/development/tools/sdk/archive在这里获取Flutter的安装包,推荐使用stablechanne…

  • SSM整合 运行报Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mcha「建议收藏」

    SSM整合 运行报Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mcha「建议收藏」今天在整合SSM的时候,在运行过程中出现了如下错误:org.springframework.web.util.NestedServletException:Handlerdispatchfailed;nestedexceptionisjava.lang.AbstractMethodError:Methodcom/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Zisabstract org.springframewor.

  • 使用FastJSON 对Map/JSON/String 进行互转[通俗易懂]

    使用FastJSON 对Map/JSON/String 进行互转[通俗易懂]Fastjson是一个Java语言编写的高性能功能完善的JSON库,由阿里巴巴公司团队开发的主要特性主要体现在以下几个方面:1.高性能fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocolbuf。2.功能强大支持各种JDK类型。包括基本类型、JavaBean、Collection、Ma

  • form实现表单提交的各种方法(表单提交源码)

    1、type=”submit”&amp;amp;amp;amp;amp;amp;lt;formname=”form”method=”post”action=”#&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;inputtype=”submit”name=”submit”value=”提交&amp;amp;amp;amp;amp;quo

发表回复

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

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