我正在模拟实验。该实验具有3个参数a,b,c(变量?)但是结果r不能被“预测”,因为它具有随机分量。为了最小化随机分量,我已经多次运行这个实验(n)。所以在简历中我有n个4元组a,b,c,r,其中a,b,c是相同的,但r是变化的。每批实验都运行a,b,c(k批次)的不同值,使得完整的数据集具有k次n组4元组。
我想找出适合这些数据的最佳多项式,以及如何比较它们:
fit3:一些三次多项式函数和相应的误差
fit4:另一个3度(更简单)的多项式函数和相应的误差
依旧......
这可以用R或Matlab ®完成。我搜索并找到了很多例子,但是没有一个处理不同输出的相同输入值。
我考虑过进行多元多项式回归n次,为每个参数增加一些小的delta,但在此之前我宁愿采用更清洁的溶剂。
任何帮助都将不胜感激。
提前致谢, 雅克
答案 0 :(得分:0)
多项式回归应该能够很好地处理随机模拟。只需模拟r
,n
次,并对您模拟的所有点执行多元多项式回归(我建议polyfitn())。
对于相同的r
,您有多个[a,b,c]
值,但合适的曲线应该能够估计真实的分布。
在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
从基函数迭代地/递归地生成一组多项式方程并不困难。但对于三个变量,可能没有必要。除非你有一个特定的理由来拟合高阶多项式(行星物理学,粒子物理学等物理学),否则你不应该有太多的函数来拟合。除非您有特定的理由这样做(过度拟合的风险,稀疏的数据互变噪声,更准确的非线性方法),否则使用高阶多项式来解释数据通常不是一种好的做法。