在cftool

时间:2018-05-24 06:45:50

标签: matlab regression curve-fitting interactive outliers

我有一些数据需要执行简单的线性回归。问题是我需要消除异常值,因此我使用cftool并将其从回归中删除。我有以下代码

cftool(avg_strain_values,avg_stress_values);

cftool加载时,标准公式是一个多项式,我必须手动更改为y=ax+b。我的问题是:有没有办法调用cftool并自动更改等式?或者每次都必须手动完成?在文档和网络上提到了fit并且可以做到,但是当我尝试它时,我无法消除异常值。

1 个答案:

答案 0 :(得分:1)

没有

没有简单的方法来以编程方式控制cftool,但也没有理由这样做,因为使用各种拟合/回归函数可以实现相同的目的。

  • 如果在拟合时,您有一个标准,您可以评估哪些点是异常值,您可以使用

    为拟合算法指定它们(或标准本身,参见文档)
    fit(..., 'Exclude', [1,3,7])
    

    documentation中查看Exclude的其他选项。

  • 如果您事先不知道哪些点是异常值,您可以使用某种形式的稳健回归(如评论中所述:robustfitfit(..., 'Robust', 'Bisquare')),权重明显异常值更弱。

另请参阅:Robust Regression — Reduce Outlier EffectsRemove Outliers Programmatically