如何画回归线?

解决方案 »

  1.   

    这太空洞了吧,要有数据才能画,我看你还是用Matlab画吧,delphi我不会
      

  2.   

    其实回归只是统计学上检验线性是否明显的一种方法,就是说,回归后得出一个
    值,如果这个值达到一定程度就说明你的问题线性明显
    你的问题既然已经是直线,我们只要拟合出直线来,至于检验线性是否明显,好像
    只要一个公式,或现在已经没有必要
    方法如下:(要一点微分的知识),如下三个点及其坐标(已知)
    用直线拟合A,B,C三点(当然可以更多)
      .A(x1,y1)                             .B(x2,y2)                           
     ----------------------------------------------------直线 y-b=s(x-a)  s待定
     
                                 .P(x,y)----->(a,b)           
                 
                       .C(x3,y3)  
    步骤如下:先找一点P,使它到A,B,C三点的距离之和最小,这样,近似认为P是你要拟合的
    这些点群的中心,
    距离d= (x-x1)^2 +(y-y1)^2 + (x-x2)^2 +(y-y2)^2 + (x-x2)^2 +(y-y2)^2
    距离的定义不用太严格只要不出现负数,这里不开方是为了求导方便
    然后分别对x,和y求导,使其=0,就是说下面
    (x-x1)^2 +(y-y1)^2 + (x-x2)^2 +(y-y2)^2 + (x-x2)^2 +(y-y2)^2 对于x的导数=0 ;
    (x-x1)^2 +(y-y1)^2 + (x-x2)^2 +(y-y2)^2 + (x-x2)^2 +(y-y2)^2 对于y的导数=0 ;
    只有两个未知数x,y,求出他们(确定他们是最小值点),就是P(x,y).
    为了叙述方便,现在我们把P坐标标记为(a,b),我们还要直线拟合,这条直线经过P,
    待定的斜率记为s,这样方程写为y-b=s(x-a)
    于是再定义一种点群到直线的距离(你自己根据情况定义,垂直与水平距离的加权平均比较好)
    ,同样得出:
    距离d = 一个关于s的二次式   记为f(s)  
    f(s) 对s求导 = 0 (这是关于s的一次式)
    这样求出了s,就是斜率
    OVER!!!!
    详细情况,你可以找一本微积分书,回归最好是参考统计学书注:--转自大富翁!在审核时发现未解决,故找文一篇!