你好,我正在尝试用math.net进行多重回归,我有点困惑。
var xdata = new DenseMatrix(
new double[,]{{1, 36, 66, 45, 32},
{1, 37, 68, 12, 2},
{1, 47, 64, 78, 34},
{1, 32, 53, 56, 32},
{1, 1, 101, 24, 90}});
var ydata = new double[] { 15, 20, 25, 55, 95 };
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];我想我不理解Math.Net,如果能帮上忙就太好了。基本上,我有多个x和一个y,并且需要从它们中获取系数数据。
发布于 2013-03-14 05:04:08
从你准备矩阵的方式(即第一列总是1)来看,在我看来,你实际上有4个自变量,你正在寻找一个简单的回归,将所有自变量的线性组合作为目标函数:
y : (x1, ..., x4) -> p0 + p1*x1 + ... + p4*x4如果是这种情况,只需删除var X = ...行,并将xdata重命名为X,那么所有5个参数都将在p矢量中可用。
根据上面的数据,您最终将得到以下结果:
y : (x1, ..., x4) -> 123.2 - 8.9*x1 + 2.8*x2 + 3.7*x3 - 4.4*x4https://stackoverflow.com/questions/15394328
复制相似问题