【问题标题】:Matlab: how to use mean square error and standard deviation in this exampleMatlab:如何在这个例子中使用均方误差和标准差
【发布时间】:2018-04-07 05:24:51
【问题描述】:

我想比较yyhat 之间的错误。 y 是使用已知值生成的,这些值是移动平均模型的系数。 yhat 是使用系数的估计值生成的。显示输出接近程度的统计数据是什么?在机器学习论文中,我将标准差和均方误差视为性能指标。但我不明白如何在这个例子中应用这些。任何指导都会非常有帮助。谢谢。

N = 100;
a1=0.2;
b1=0.5;
h = [1 a1 b1]; %channel coefficients
h_hat  = [1 0.23 0.45];
data = rand(1,N);
y = filter(h,1,data); %transmitted signal through MA channel
yhat = filter(h_hat,1,data);

【问题讨论】:

    标签: matlab standard-deviation mse


    【解决方案1】:

    如何计算 MSE:

    MES= mean((y - yhat).^2)
    

    这里是平均值的标准误:

    err=y - yhat;
    SE = std(err)/sqrt(length(err));
    

    但是,您使用的指标应该解决您的研究问题/假设。 SE 或 MSE 可能不是正确的选择。在不知道您正在调查什么的情况下,很难给出任何建议。

    【讨论】:

    • 为什么要除以sqrt(N)std 已经计算出标准差。
    • SE in Matlab: 要计算样本中均值的标准误,用户需要在 Matlab 中运行一行命令 "stderror = std( data ) / sqrt( length( data ) )"
    • 在这种情况下,您应该将答案更新为“平均值的标准误差”而不是“误差的标准差”。
    • 感谢您的回答。我有一些疑问,能否请您澄清一下?(1)如果y 噪声为10 dB,例如y=filter(h,1,data);' noisy_y = awgn(y,10,'measured)h_hat 是使用基于noisy_y 的估计算法获得的。那么 MSE = noisy_y - y_hat?另外,均值的标准误越小,性能越好吗?
    • @Irreducible:我在 cmets 下提出了一些疑问。你能澄清一下吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2014-02-27
    • 2017-01-31
    • 2013-04-24
    • 1970-01-01
    相关资源
    最近更新 更多