与Math.NET线性拟合:数据错误和拟合参数错误?

问题描述 投票:1回答:1

我正在尝试使用Math.NET通过少量数据点执行简单的线性拟合。使用Fit.Line,我很容易执行线性拟合并获得斜率和截距:

Tuple<double, double> result = Fit.Line(xdata, ydata);
var intercept = result.Item1;
var slope = result.Item2;

这很简单,但是错误呢?

y数据中的错误

我的y数据可能包含错误栏,Math.NET可以考虑这些错误吗? x数据中没有错误,仅y数据中没有错误。

拟合参数错误

结果拟合参数中的错误呢?斜率和截距应该有一个错误,或者至少可以让我知道这些参数的拟合程度。通常,我认为您会使用协方差矩阵,并且其对角线元素会给参数带来误差。我看不到使用它的任何选择。 Math.NET能够给我合适的参数错误吗?

curve-fitting linear-regression math.net
1个回答
2
投票

我想您可以使用此行来测量拟合误差:

GoodnessOfFit.RSquared(xdata.Select(x => a+b*x), ydata); // == 1.0

其中1表示“完美”(完全在线),0表示“差”。

该页面上的Math.NET文档中对此进行了描述:

Math.net - Curve Fitting: Linear Regression

© www.soinside.com 2019 - 2024. All rights reserved.