R 当输出具有随机行为时,如何执行多元多项式回归?
我有一个正在模拟的实验。这个实验有3个参数a、b、c(变量?),但结果r不能“预测”,因为它有一个随机分量。为了最小化随机分量,我已经做了几次这个实验(n)。所以在简历中我有n个4元组a,b,c,r,其中a,b,c是相同的,但r是不同的。每一批实验用不同的a、b、c值(k批)进行,使得完整的数据集具有k乘以n组4元组 我想找出最适合该数据的多项式,以及如何比较它们,如: fit1:与 fit2:与 fit3:一类三次多项式函数及其误差 fit4:另一个三次(更简单)多项式函数及其误差 等等 这可以通过R或Matlab®实现。我搜索并找到了许多示例,但没有一个示例处理相同的输入值和不同的输出 我考虑过做n次多元多项式回归,给每个参数加上一些小的增量,但在那之前我宁愿采取更清晰的解决方案 任何帮助都将不胜感激 提前感谢,,R 当输出具有随机行为时,如何执行多元多项式回归?,r,matlab,R,Matlab,我有一个正在模拟的实验。这个实验有3个参数a、b、c(变量?),但结果r不能“预测”,因为它有一个随机分量。为了最小化随机分量,我已经做了几次这个实验(n)。所以在简历中我有n个4元组a,b,c,r,其中a,b,c是相同的,但r是不同的。每一批实验用不同的a、b、c值(k批)进行,使得完整的数据集具有k乘以n组4元组 我想找出最适合该数据的多项式,以及如何比较它们,如: fit1:与 fit2:与 fit3:一类三次多项式函数及其误差 fit4:另一个三次(更简单)多项式函数及其误差 等等 这可
雅克多项式回归应该能够很好地处理随机模拟。只需模拟
r
,n
次,然后对所有模拟点执行多元多项式回归(我推荐)
对于相同的[a,b,c]
您将有多个r
值,但拟合良好的曲线应该能够估计真实分布
在polyfitn中,它看起来像这样
n = 1000;
a = rand(500,1);
b = rand(500,1);
c = rand(500,1);
for n = 1:1000
for i = 1:length(a)
r(n,i) = foo(a,b,c);
end
end
my_functions = {'a^2 b^2 c^2 a b c',...};
for fun_id = 1:length(my_functions)
p{f_id} = polyfitn(repmat([a,b,c],[n,1]),r(:),myfunctions{fun_id})
end
从基函数迭代/递归地生成一组多项式方程并不困难;但对于三个变量来说,可能没有必要这样做。除非你有特定的理由去拟合高阶多项式(行星物理、粒子物理等物理),否则你不应该有太多的函数去拟合。使用高阶多项式解释数据通常不是一种好的做法,除非您有这样做的具体原因(过度拟合的风险、稀疏数据变量间噪声、更精确的非线性方法)