我怎样才能使用曲线优度?

时间:2018-01-20 15:11:21

标签: matlab signal-processing

我想使用曲线拟合优度(GOF)来比较Matlab中的原始信号和滤波信号之间的相似率

1 个答案:

答案 0 :(得分:1)

通常情况下,拟合优度检验假定经验数据和理论数据之间的比较......换句话说,在实际观察与由近似它们的函数产生的值之间进行比较。由于您正在使用曲线,fit function已经提供了执行测试所需的全部内容:

[fitobject,gof] = fit(x,y,fitType)

  gof — Goodness-of-fit statistics, returned as the gof structure including the fields in this table:

    sse - Sum of squares due to error
    rsquare - R-squared (coefficient of determination)
    dfe - Degrees of freedom in the error
    adjrsquare - Degree-of-freedom adjusted coefficient of determination
    rmse - Root mean squared error (standard error)

我们举个例子:

x = (0:0.2:5).';
y = 2 .* exp(-0.2 .* x);

[f1,gof1] = fit(x,y,'exp1');
figure(),plot(f1,x,y);

[f2,gof2] = fit(x,y,'poly1');
figure(),plot(f2,x,y);

y的声明中,由于没有添加噪声,我们知道与a = 2b = -0.2的指数拟合会产生完美的结果,而多项式拟合会产生一个好的(但不是完美的)结果。

R2统计信息可以取01之间的任意值,其值更接近1,表示更合适。由于我们没有使用额外的系数,因此评估我们的拟合绰绰有余,并且代表了在许多系数之间选择模型的良好标准。查看gof1gof2结构(rsquare字段)中包含的R2值,我们可以看到我们的小说已得到确认:在gof1中,R2统计信息具有值1(完美契合),而在gof2中,相同统计量的值非常接近1但不等于1(非常合适)。