【问题标题】:Weighted linear least square for 2D data point sets二维数据点集的加权线性最小二乘
【发布时间】:2012-07-18 19:55:59
【问题描述】:

我的问题是讨论How to fit the 2D scatter data with a line with C++ 的延伸。现在我想进一步扩展我的问题:在估计适合 2D 散射数据的线时,如果我们可以不同地处理每个 2D 散射数据会更好。也就是说,如果散点离直线较远,我们可以给点低权重,反之亦然。因此,问题就变成了:给定一个二维散点数组以及它们的权重因子,我们如何估计通过它们的线性线?可以在这篇文章 (weighted least regression) 中找到该方法的一个很好的实现。但是,那篇文章中的算法的实现太复杂了,因为它涉及到矩阵计算。因此,我试图找到一种无需矩阵计算的方法。该算法是simple linear regression的扩展,为了说明算法,我写了如下MATLAB代码:

function line = weighted_least_squre_for_line(x,y,weighting);


part1 = sum(weighting.*x.*y)*sum(weighting(:));

part2 = sum((weighting.*x))*sum((weighting.*y));

part3 = sum( x.^2.*weighting)*sum(weighting(:));

part4 = sum(weighting.*x).^2; 

beta = (part1-part2)/(part3-part4);

alpha = (sum(weighting.*y)-beta*sum(weighting.*x))/sum(weighting);

a = beta;
c = alpha;
b = -1;
line = [a b c];

在上述代码中,x,y,weighting分别代表x坐标、y坐标和权重因子。我用几个例子测试了这个算法,但仍然不确定它是否正确,因为这个方法与Polyfit 得到了不同的结果,它依赖于矩阵计算。我现在在这里发布实现并征求您的意见。你认为这是一个正确的实施吗?谢谢!

【问题讨论】:

    标签: c++ algorithm matlab statistics mathematical-optimization


    【解决方案1】:

    如果您认为降低离线较远的点的权重是个好主意,您可能会被http://en.wikipedia.org/wiki/Least_absolute_deviations 所吸引,因为计算此值的一种方法是通过http://en.wikipedia.org/wiki/Iteratively_re-weighted_least_squares,这将减少对远点的权重从线。

    【讨论】:

      【解决方案2】:

      如果您认为您的所有点都是“好数据”,那么根据它们与初始拟合的距离来天真地衡量它们是错误的。但是,丢弃“异常值”是一种相当普遍的做法:如果一些数据点与拟合相去甚远,并且您有理由相信存在可能生成一小部分“坏”数据点的错误机制,您可以只需从数据集中删除不合理的点即可获得更好的拟合。

      就数学而言,我建议硬着头皮尝试找出矩阵数学。也许你可以找到一篇不同的文章,或者一本书有更好的介绍。我不会评论你的 Matlab 代码,只是说从part3 中减去part4 和从part1 中减去part2 时看起来会出现一些精度问题。

      【讨论】:

      • 这是一个很好的评论。我知道学习矩阵数学很重要。不过这里的问题比较简单,不依赖矩阵数学就可以解决这个问题。
      【解决方案3】:

      不完全符合您的要求,但您应该查看robust regression。 MATLAB 有函数robustfit(需要统计工具箱)。

      您甚至可以使用交互式演示来比较常规线性回归与稳健回归:

      >> robustdemo
      

      这表明在存在异常值的情况下,稳健回归往往会产生更好的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-24
        • 2017-08-27
        • 2013-01-21
        • 1970-01-01
        • 1970-01-01
        • 2015-09-16
        相关资源
        最近更新 更多