为什么线性拟合返回的 RMSE 偏离 sqrt(sum(residuals^2)/n)?我对线性拟合平台中“拟合摘要”中报告的均方根误差感到困惑。
x = [1.309, 1.471, 1.49, 1.565, 1.611, 1.68];
y = [2.138, 3.421, 3.597, 4.34, 4.882, 5.66];
{Estimates, Std_Error, Diagnostics} = Linear Regression( y, x, <<PRINTTOLOG></PRINTTOLOG>最后一行的结果:
rmse_lin_reg = 0.111508840972607;
rmse_lin_fit = 0.136569881096024;
这里有什么问题吗?
谢谢
高级统计建模内容组织数据探索和可视化大规模定制分享和交流结果回复:为什么线性拟合返回的 RMSE 偏离 sqrt(sum(residuals^2)/n)?你好@拉格纳尔,
我可以看出这看起来多么矛盾! 所有均方都涉及将偏差平方和除以它们的自由度。 在使用 LinearRegression() 结果的公式中,您似乎除以 n,而不是 df。
rmse_lin_reg=sqrt(sum((z-y)^2)/nrows(y));
简单线性回归中均方误差的自由度为 n-2(估计截距时损失 1 个 df,估计 x 斜率时又损失 1 个)。 如果您按如下方式调整脚本以具有rmse_lin_reg=sqrt(sum((zy)^2)/(nrows(y)-2))您会发现 MSE(以及 RMSE)具有相同的值。
我希望这有帮助!
@朱利安
x = [1.309, 1.471, 1.49, 1.565, 1.611, 1.68];
y = [2.138, 3.421, 3.597, 4.34, 4.882, 5.66];
{Estimates, Std_Error, Diagnostics} = Linear Regression( y, x, <<PRINTTOLOG></PRINTTOLOG>
回报
rmse_lin_reg = 0.13656988109602;
rmse_lin_fit = 0.13656988109602;