如何在matlab或excel中找到包含4个参数的封闭数据集的回归线?

如何在matlab或excel中找到包含4个参数的封闭数据集的回归线?,excel,matlab,dataset,regression,Excel,Matlab,Dataset,Regression,我有一组从模拟中获得的数据。有3个参数进入我的模拟,我得到一个结果 我可以从我拥有的小子集中绘制数据图,并查看每个输入的趋势,但我需要能够外推这些数据,并获得某种形式的回归方程,因为模拟需要很长时间 在matlab或excel中,是否可以列出输入和输出,以获得给定信息集的4参数回归线 在这被标记为重复之前,我知道polyfit会给我一个最佳拟合的方程,并且会精确到我想要的程度,但是我需要方程来对应输入,而不仅仅是回归线 换句话说,如果对输入a、b、c和输出y进行20次模拟,是否有办法获得“最佳拟

我有一组从模拟中获得的数据。有3个参数进入我的模拟,我得到一个结果

我可以从我拥有的小子集中绘制数据图,并查看每个输入的趋势,但我需要能够外推这些数据,并获得某种形式的回归方程,因为模拟需要很长时间

在matlab或excel中,是否可以列出输入和输出,以获得给定信息集的4参数回归线


在这被标记为重复之前,我知道polyfit会给我一个最佳拟合的方程,并且会精确到我想要的程度,但是我需要方程来对应输入,而不仅仅是回归线

换句话说,如果对输入a、b、c和输出y进行20次模拟,是否有办法获得“最佳拟合”:


使用数据?

对于高维曲线拟合,我通常的建议是将问题设为最小化问题(对于您提出的良好线性模型,这可能是不必要的,但我有时是个铁锤钉子)

它首先创建一个相关函数(您认为将输入映射到输出的函数形式),给定拟合参数
p
和输入数据
xData

correl = @(p,xData) p(1) + p(2)*xData(:,1) + p(3)*xData(:2) + p(4)*xData(:,3)
然后您需要定义一个函数来最小化给定的参数向量,我称之为
目标
;这通常是相关性减去输出数据。 此函数的详细信息由您将使用的解算器确定(请参见下文)。 所有方法都需要一个起始向量
pGuess
,这取决于您看到的趋势。 对于非线性相关函数,找到一个好的
pGuess
可能是一个尝试,但对于一个好的解决方案是必要的


fminsearch
若要使用,必须使用某种范数将数据折叠为标量值(
2
此处):

lsqnonlin
要使用(以不同的方式解决上述相同的问题),不需要对目标进行规范:

objective = @(p) correl(p,x) - y ;
p         = lsqnonlin(objective,pGuess);  % you need to define a good pGuess
(您还可以指定参数解决方案的上下限,这很好。)

lsqcurvefit
要使用(它只是
lsqnonlin
的包装器),只需要相关函数和数据:

p = lsqcurvefit(correl,pGuess,x,y);  % you need to define a good pGuess

“我需要与输入相对应的方程式,而不仅仅是一条回归线”请对此展开讨论?当然,这正是回归线的含义?也许我错了,但当我学习回归线时,它们会获取一个输出集,并将其扩展到y=ax+b或y=ax^2+bx+c模型中。我需要如上所述,你错了。您在上面发布的表单是规范多元回归。根据您运行的Matlab版本,可以使用
回归
fitlm
objective = @(p) correl(p,x) - y ;
p         = lsqnonlin(objective,pGuess);  % you need to define a good pGuess
p = lsqcurvefit(correl,pGuess,x,y);  % you need to define a good pGuess