Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 当输出具有随机行为时,如何执行多元多项式回归?_R_Matlab - Fatal编程技术网

R 当输出具有随机行为时,如何执行多元多项式回归?

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:另一个三次(更简单)多项式函数及其误差 等等 这可

我有一个正在模拟的实验。这个实验有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
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
从基函数迭代/递归地生成一组多项式方程并不困难;但对于三个变量来说,可能没有必要这样做。除非你有特定的理由去拟合高阶多项式(行星物理、粒子物理等物理),否则你不应该有太多的函数去拟合。使用高阶多项式解释数据通常不是一种好的做法,除非您有这样做的具体原因(过度拟合的风险、稀疏数据变量间噪声、更精确的非线性方法)