zoukankan      html  css  js  c++  java
  • 直线矩阵数学之路(2)四大神器R(18)

    最近研究直线矩阵,稍微总结一下,以后继续补充:

        目标是这些点到这条直线的距离的平方和最小,可运用最小二乘法,最小二乘法拟合的进程就是回归,这条直线就是回归线。

        Lsfit()函数实现最小二乘法拟合,其主要参数为:

        X:一个矩阵的行对应的情况和其列对应为变量。

        Y:结果,可所以一个矩阵,如果你想,以适应多种左手侧。

        Wt:可选参数,加权最小二乘法的执行权重向量。

        Intercept:是否应使用截距项。

        Tolerance:公差将用于在矩阵分解

        Yname:用于响应变量的名称。

        我们以x=(1,2,3,4),y=(2,4,6,8),可得到回归线方程为

        Y=2x

        > y<-c(2,4,6,8)

        > x<-c(1,2,3,4)

        > lsfit(x,y)

        $coefficients

        Intercept         X 

            0         2 

        ........

        ........

        上述结果中,Intercept项表现截距,x项表现方程的x的常数项。

        我们先假设回归线为

        Y=2x+3

        然后,根据回归线结构x和y值。

        > y<-c(5,7,9,11)

        > x<-c(1,2,3,4)

        执行lsfit()函数

        > lsfit(x,y)

        $coefficients

        Intercept         X 

            3         2 

        要正确得出方程的截距为3,x的常数项为2。现实生活中,很难有如此精确的模型,我们再多结构一些点:

        > y<-c(5,7,9,11,16,20)

        > x<-c(1,2,3,4,7,9)

        > lsfit(x,y)

        > x<-c(1,2,3,4,7,9)

        > y<-c(5,7,9,11,16,20)

        我们通过plot(x,y)来绘制这些点在直角坐标系中的位置,这个图也被称为散点图。

        > plot(x,y)

        直线和矩阵

        > lsfit(x,y)

        $coefficients

        Intercept         X 

     3.338028  1.845070 

        $residuals

        每日一道理
    只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获。只有追求,才会品味堂堂正正的人。

        [1] -0.18309859 -0.02816901  0.12676056  0.28169014 -0.25352113  0.05633803

        Coefficients为系数,包含截距和x的系数,residuals表现残差,残差分别反响了这些点与直线的差异,残差越小越好,我们将回归线也画上

        > abline(lsfit(x,y))

        直线和矩阵

        可以看到拟合效果还是不错的,我们也可以使用lm()函数,来建立线性模型停止回归分析:

        画x,y的散点图: plot(x,y)

        做相关回归分析,结果存放在xy中: lm(y~x)->xy

        显示xy的相关回归分析结果:summary(xy)

        画回归线:>  abline( lm(y~x))

        

    本博客全部内容是原创,未经书面许可,严禁任何情势的转载。

        

    http://blog.csdn.net/u010255642

    文章结束给大家分享下程序员的一些笑话语录: 打赌
    飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。  程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。  现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。

  • 相关阅读:
    EF 简单的 CRUD、分页 代码笔记
    C#中的正则 Regex类
    动态字符串 Stringbuilder类
    C# 字符串操作
    集合简单总结 ArrayList、List、Hashtable、Dictionary
    C#面向对象2 静态类、静态成员的理解
    C#面向对象1 类 以及 类的继承(new、ovverride)
    无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
    WebClient上传音频文件
    发布网站详细步骤(.Net)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3074153.html
Copyright © 2011-2022 走看看