Fwd: Linear and logarithmic fit
- To: mathgroup at smc.vnet.net
- Subject: [mg39373] Fwd: [mg39363] Linear and logarithmic fit
- From: "Jay D. Martin" <jdm111 at psu.edu>
- Date: Thu, 13 Feb 2003 04:52:19 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
>Hi everybody, > >If I have 9 points in a 2 dimensional space how do I decide if they >fit better a linear function or a logarithmic function? > >Thanks in advance, > >Jay Jay, The first question to answer is, Do I need to interpolate the data or just approximate it? If the data is the result of physical experiments or for some reason has a random error component to it, there is no reason to interpolate the data exactly. If the data is deterministic, ie if you performed the experiment again you would get exactly the same answer, you would want to interpolate the data. The answer to this question directs the selection of possible function families to approximate the process that is represented by the data you have sampled. If your data has random error, it is non-deterministic, you will want to select an approximating function. One way to do this is to use the Statistics`LinearRegression` package and the Regress function. Given a set of functions to fit, this function will return the coefficients of the functions, the quality of fit of the model and the importance of each function in the model. If you want to fit nonlinear functions such as 2^x, you can use the Statistics`NonlinearFit` package and the NonlinearRegress function. I would recommend sticking to the LinearRegression package and perform the nonlinear transformation on the "y" values instead. The primary reason for this is efficiency in calculating the optimal coefficients. NonlinearRegress requires an iterative optimization while Regress has a closed-form solution. If you need to interpolate the data, there are many options available. The easiest to use is the standard function Interpolation. This function will fit a spline between the points of any order you specify. The limitation of this routine is your data must be on a cartesian grid. If this is not the case, and you have 2D data you can use a triangulation of the data to fit a plane to each region defined by its three closest neighbors. I do not have the latest version of Mathematica, but I believe there is a function that supports this directly now. The last options for interpolation, especially for 2D+ data is to use spatial correlation functions. These include radial basis functions and kriging functions. In general, these functions assume nearby points have some influence on the prediction of an unknown location. The amount of influence becomes a function of the distance from all of the known points. These functions can provide a great deal of flexibility in fitting data, but they are more complex to use and in the case of kriging, difficult to fit. Kriging requires an optimization process to determine the parameters for the model that control the range of influence of nearby points and the smoothness of the resulting surface. I have probably confused you more than helped with my long-winded answer, but I hope it helps you address your problem. Jay Martin Penn State University