Polynomial fitting with multiple independent variables
    31 次查看(过去 30 天)
  
       显示 更早的评论
    
Can someone provide example how to perform Polynomial fitting (let's say of 2 or 3-rd order) with multiple independent variables? I have 3 variables: pressure, temperature and concentration (p,t,c) and expectation values of rate of reaction (r) depending on this 3 variables. My question is how to find functional form f(p,t,c)=r and how to perform fitting. (all three variables separetely f(p)=r etc. agree well with linear regresion model).
Thanks a lot
0 个评论
采纳的回答
  Matt J
      
      
 2014-1-27
        There are several multi-dimensional polynomial fitting routines on the File Exchange. To name a few,
12 个评论
更多回答(1 个)
  dpb
      
      
 2014-1-27
        
      编辑:Andrei Bobrov
      
      
 2014-1-27
  
      Z=zeros(size(p));  % intercept term
X=[Z p t c p.*p t.*t c.*c p.*t p.*c t.*c];  % 2nd order design matrix
c=r\X;                                      % LS solution
You will need a good-sized dataset to have sufficient DOF left after estimating all the terms and while it's a good sign that the "one at a time" plots seem to fit reasonably well that doesn't guarantee a good fit overall.
One would wish that Matlab would have all this built into one of the Toolboxes with a resulting ANOVA table and all but afaict while there are some additional tools in Curve Fitting and Stat toolboxes they really didn't build a general regression model toolset a la SAS, say, unfortunately. You're still on your own for that portion AFAIK.
2 个评论
  dpb
      
      
 2014-1-27
				Z p t c p.*p t.*t c.*c p.*t p.*c t.*c
In order, as written above the design matrix is
intercept
3 variables
3 quadratic terms
three cross terms
The coefficients will be in that order in the return vector. You can reorder in whatever order suits you.
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Linear and Nonlinear Regression 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!