带有 Math.NET 约束的线性回归

Ste*_*tge 5 c# math linear-regression math.net

我正在使用 Math.NET 执行简单的线性回归。

我在下面提供了一个通用代码示例。除了此示例之外,还可以使用 Fit 类进行简单的线性回归。

我另外想要的是指定额外的约束,比如固定的 y 截距或强制拟合通过固定点运行,例如 (2, 2)。如何在 Math.NET 中实现这一点?

var xdata = new double[] { 10, 20, 30 };
var ydata = new double[] { 15, 20, 25 };

var X = DenseMatrix.CreateFromColumns(new[] {new DenseVector(xdata.Length, 1), new DenseVector(xdata)});
var y = new DenseVector(ydata);

var p = X.QR().Solve(y);
var a = p[0];
var b = p[1];
Run Code Online (Sandbox Code Playgroud)

Sha*_*ler 1

您可以修改数据集以反映约束,然后使用标准 math.Net 线性回归

\n\n
\n

如果(x0,y0)是回归线必须经过的点,则拟合模型y\xe2\x88\x92y0=\xce\xb2(x\xe2\x88\x92x0)+\xce\xb5,即,在翻译数据集上具有“无截距”的线性回归。

\n
\n\n

请参阅此处:https://stats.stackexchange.com/questions/12484/constrained-linear-regression-through-a-specified-point

\n\n

在这里: http: //en.wikipedia.org/wiki/Linear_least_squares_ (mathematics)#Constrained_linear_least_squares

\n