kobservations for each of
nparticipants, and where your aim is to fit a nonlinear function to the data of each participant in order to save the parameter estimates for subsequent analysis. This is a relatively common task in psychology. You have multiple participants measured on a numeric repeated measures variable and you want to see how a dependent variable is related to this repeated measures variable. And you want to do this separately for each participant. For example, you might be modelling performance as a function of practice or accuracy as a function of stimulus intensity.
A note on RPersonally, I would use R for this task. This is partly because I like R. But also the task plays to R's strengths. First, R makes it easy to run a set of models. Second, R makes it easy to extract information and do further processing. For an example of nonlinear regression using R, see this tutorial on APSnet. For further information about fitting a set of nonlinear functions, see the
nlsListfunction in the
nlmepackage. However, this post flows from a consulting session where the researchers were familiar with SPSS.
Overview of SPSS Nonlinear Regression ProcedureThe following outlines the procedure.
- Set up the data frame in long format
- Split File by ID
- Choose a function to relate the DV to the IV
- Estimate the function using
Analyze - Regression - Nonlinear
- Extract information and Interpret the results
1. Set up data frameArrange the data into long format (see UCLA for more information on converting between long and wide format). Each row is one observation for one participant. In a standard case, the data frame would have three variables:
id: The variable that uniquely identifies a participant.
x: the predictor variable
y: the response variable
kobservations on each of n participants, you would have
(k * n)rows in your data frame. Of course,
kcould vary between participants, which in general is not a problem.
2. Apply Split FileIf you want to fit a model separately for each participant, it is helpful to activate Split File in SPSS. For details on how to do this, see UCLA's tutorial. The Split File command should be applied to each participant ID. Thus, any analysis run subsequently will have separate output arranged in a table with separate rows for each participant.
3. Choose a FunctionIt is generally assumed that theory and domain-specific knowledge will guide selection of an appropriate function. However, there is also a role for inspection of the raw data to both check the appropriateness of the chosen function and to explore modifications. For example, I've often fit three parameter power and exponential functions to learning curves relating practice to task completion time. In a psychophysics example, researchers wanted to fit a Gaussian function. For further discussion of nonlinear functions, see:
- Chapter 3 of Benjamin Bolker's Ecological Models and Data in R, available online.
- Bates and Watts (1988)Nonlinear regression analysis and its applications
- Ritz and Steibig (2008) Nonlinear regression with R
4. Fit Nonlinear ModelSPSS has the nonlinear regression tool (Analyze - Regression - Nonlinear). Below is an example of syntax.
*Fit * NonLinear Regression. MODEL PROGRAM mu=0 sigma=50. COMPUTE PRED_=exp(-((soa-mu) ** 2)/(2*sigma**2)). NLR prob /PRED PRED_ /SAVE PRED RESID /CRITERIA SSCONVERGENCE 1E-8 PCON 1E-8.
soawas the name of the independent variable.
probwas the name of the dependent variable.
sigmawere names given to the parameters of the function.
exprefers to the exponential function
**is the notation for an exponent.
- Parameters need starting values, which in this case were 0 for
muand 50 for
For further information on running nonlinear regression in SPSS see one of the following links:
- David Garson's notes on nonlinear regression in SPSS
- Chapter 5. Nonlinear Regression of this official SPSS instructional Material
5. Extract Information and Interpret the Results
Extract Parameter EstimatesAssuming the split file is on, you will get a table of parameter estimate, one for each participant. Double clicking on the table activates Pivot Trays (for more info on Pivot Trays, see UNSW's tutorial). This can be used to arrange the table into a format that makes exporting the data easier. In most psychological applications, this data is used in subsequent analyses. For example, you might want to report the mean and standard deviation of parameter estimates over participants or you might want to see whether parameter estimates are related to some other variable.
Extracting R-squaredYou can get R-squared for each participant by running a regression predicting the dependent variable from the saved predicted values (Analyze - Regression - Linear). If the Split File is still in effect you will get an R-squared for each individual. Note that the Adjusted R-squared and the significance levels of the R-squared are not necessarily accurate.
Examining ResidualsA histogram of the residuals can be used to assess whether the residuals are normally distributed. A scatterplot with the independent variable on the x-axis and the residual on the y-axis is useful for assessing heteroscedasticity. See a good book on nonlinear regression for further discussion of assumption testing. E.g.,
- Bates and Watts (1988) Nonlinear regression analysis and its applications
- Ritz and Steibig (2008) Nonlinear regression with R