Download Problems. Some of the files available for download on this page are still stored on my old Angelfire/Lycos website. Some time ago, Angelfire/Lycos made changes that may affect access to files of various
nonstandard types, like SPSS syntax files, for example. To simplify
matters, I have changed the extensions on most of my syntax files from
.SPS to .txt. Your browser may open the .txt file directly. If so, you can then either copy and paste into an SPSS syntax window, or
SaveAs and change the extension to .SPS.
SPSS Tutorials
The tutorials listed below are stored in .zip files. You will need a
zipfile utility (such as WinZip) to open them. If you don't already
have such a utility, you can no doubt find several free ones at sites
such as download.com.com. I use PowerArchiver. A couple others are listed on my Programming & Software page
(near the bottom of the page). Many thanks to Dr. Douglas Murphy for
working through the first draft of these tutorials and finding spots
where my instructions were unclear. (Och...you're a grrrea' man,
Douglas.)
 Tutorial 1.
How to: Import data from Excel; create some simple graphs; obtain
descriptive statistics; transform data (COMPUTE, RECODE). This tutorial
also emphasizes the value of using PASTE rather than OKAY.
 Tutorial 2.
How to: Create some more graphs; create grouped frequency distributions
& histograms; use the DATA LIST command to read in data. Bare Essentials refers to the book Biostatistics: The Bare Essentials (2nd Ed, ISBN 155091239).
 Tutorial 3.
How to: Do basic arithmetic operations (addition, subtraction,
multiplication, division, squaring, square roots); obtain the sum of a
column of numbers; compute means using these basic tools.
 Tutorial 4.
How to: Calculate the mean, variance and standard deviation (SD) using
the conceuptal formula, but using SPSS (instead of a calculator) to do
the calculations; calculate the mean, variance and SD using the MEANS
procedure.
 Tutorial 5.
How to: Calculate standard scores (aka zscores) using the conceptual
formula, but using SPSS (instead of a calculator) to do the
calculations; calculate standard scores using the DESCRIPTIVES
procedure.
 Tutorial 6. A demonstration of the central limit theorem (CLT) using a small population of 5 scores and all possible samples of n=2.
 Tutorial 7.
How to: compute AGE from date of birth and another date variable; merge
files (add variables, and add cases); flag the First and Last records
in a group of records; to combine data across records using the
AGGREGATE command; restructure a data file (from WIDE to LONG and vice
versa).
Syntax files demonstrating how to accomplish various tasks
 ANOVA, ANCOVA, and GLM
 anova1.txt: Examples of oneway ANOVA.
 anova2.txt:
Examples of twoway ANOVA, including: [1] analysis of simple main
effects using EMMEANS with COMPARE in GLM UNIANOVA, and using MANOVA
syntax; [2] a mixed effects model with one random and one fixed factor.
 change_scores_and_ANCOVA.txt:
Performs ANCOVA with GROUP as a betweenSs factor, PreTest as the
covariate, and either PostTest or CHANGE as the dependent variable. It
is commonly held that the first of these models (with posttest as the
DV) is correct, and the second incorrect. However, as demonstrated by
this syntax file, the coefficients and Ftests for group in these two
models are identical.
 repmeas_ANOVA_with_long_file.SPS:
Shows how to perform repeated measures ANOVA using GLM UNIANOVA with a
LONG file format (i.e., data file has multiple rows per subject). The
more common approach is to use GLM REPEATED MEASURES on a WIDE file
(i.e., one row per S with multiple columns for the outcomes). There are
some advangages to using the LONG file and UNIANOVA approach. For
example, if a S has one or more missing data points, they are excluded
entirely in the GLM REPEATED MEAUSRES analysis. But not so in the
UNIANOVA approach: Whatever valid data points they have are included in
the analysis. (If all subjects have complete data, the two methods
yield the same Ftest.) The LONG file format also allows one to include
timedependent covariates.
 varcomp_examples.txt: How to compute variance components for two common designs.
 Categorical data
 Chisquare tests
 fisher.txt: Examples of Fisher's exact test.
 phikappa.txt: Examples of phicoefficient and Cohen's kappa.
 2x2.txt:
Calculates various statistics for 2x2 tables (Pearson chisquare,
chisquare with Yates' correction, likelihood ratio chisquare,
relative risk, odds ratio). [NOTE: The current version of this
file is dated 18Feb2003. The earlier version has an error in the
computation of the variance of ln(RR), so please replace it with this
one. My apologies for any inconvenience this may have caused.]
 Confidence intervals
 CIs for binomial proportions
 ciprop.SPS: Confidence intervals for a binomial proportion. Uses 5 different methods:
 1. ClopperPearson "exact" method.
 2. Wald method (i.e., the usual normal approximation) .
 3. Adjusted Wald method (using z**2/2 and z**2 rather than 2 and 4).
 4. Wilson score method (from Newcombe's paper).
 5. Jeffreys method (http://www01.ibm.com/support/docview.wss?uid=swg21474963).
 ciprop2.SPS: Allows the user to choose which of 5 methods to use for each row of input data.
 CIs for rho, the parameter corresponding to Pearson's r.
 DO REPEAT examples
 Example 1: Uses a DO REPEAT loop to flag a series of items as correct or incorrect.
 Example 2: Uses a DO REPEAT loop to compute a new series of variables.
 Example 3: A long DOIFELSEIF structure is replaced with a fairly simple DOREPEAT.
 Graphs
 GENLIN
 Importing Data
 read data from mixed files: Some examples of how to read data from a file with different types of records in it.
 Importing date variables from Excel:
 Linear regression examples
 linreg.txt: Linear regression examples.
 linreg_using_subset.txt: How to perform linear regression using only a subset of cases, but save predicted scores for ALL cases in the file.
 See the Macros section below for examples of how to run a series of simple linear regressions (aka univariate regressions) using macros.
 Logistic Regression & NOMREG
 logistic1.txt:
Simple logistic regression examples. Shows that the "change in 2 log
likelihood" chisquare test from logistic regression is identical to
the likelihood ratio chisquare from CROSSTABS.
 pooling_odds_ratios.txt. Shows how to pool odds ratios using CochranMantelHaenszel method, and using logistic regression.
 NOMREG_TEST_Example.sps: An example showing how to use NOMREG with TEST subcommands to get a test (and CI) for the ratio of two odds ratios.
 Macros
 CIs for rho, the parameter corresponding to Pearson's r.
 Supplementary material for my Behavior Research Methods article describing the !OLScomp and !MLEcomp macros.
 Recursion with macros. This thread from the SPSSXL mailing list has some amazing examples of what can be done with recursive macros.
 SLR_macro.txt: A macro that demonstrates how to perform a series of simple linear regressions, all with the same outcome variable (Y).
 SLR_macro_v2.txt:
An improved version of the previous macro that does not require one to
rename the predictor variables to X1, X2, X3, etc. Thanks to Neila
Nessa (aka David Marso) for the help on this one.
 regression_with_matrix_input.txt:
Here is yet another way to accomplish the same task using a correlation
matrix output from the CORRELATIONS procedure as input for the
REGRESSION procedure. This one is recommended if you have a large
number of cases, because the correlation matrix is computed only once,
which will save a lot of time. Thanks again to Neila Nessa for this
one.
 convert_macro.txt:
A macro that allows the user to change the format of a list of
variables from string to numeric or vice versa. This is a modification
of a macro found on Raynald Levesque's SPSS Tools website.
 macro_with_nested_loop.txt:
A macro that contains a nested loop, in which the starting value for
the inner loop is equal to the current value of the outer loop plus 1.
The macro language cannot do arithmetic, so getting this to work
requires a bit of trickery, which I borrowed from one of the examples
listed on Raynald Levesque's SPSS Tools website.
 power_analysis_part2.txt:
A macro by David Marso that does power calculations on simulated data.
This file is also listed under the Power & Sample Size heading
below. It is included here in the Macro section because it demonstrates
a lot of interesting features of the macro language.
 Matrix language
 matrix001.txt: Demonstrates matrix algebra basics using SPSS Matrix Language.
 matrix002.txt: Uses SPSS Matrix Language to solve system of simultaneous linear equations.
 matrix003.txt: Uses SPSS Matrix Language to solve a multiple regression equation.
 Metaanalysis
 fleiss_ma.SPS: Performs metaanalysis using a general method described by Fleiss (1993). Download a standalone Turbo Pascal program that implements the same method.
 MIXED procedure examples
 mixed001.txt: How to perform oneway ANOVA with the MIXED procedure.
 mixed002.txt: How to perform twoway ANOVA with the MIXED procedure.
 mixed003.txt: How to perform onefactor repeated measures ANOVA with the MIXED procedure.
 mixed004.txt: How to perform simple linear regression with the MIXED procedure.
 mixed005.txt: How to perform oneway ANCOVA with the MIXED procedure.
 mixed006.txt: How to perform multiple regression with the MIXED procedure.
 mixed007.txt: How to perform splitplot (betweenwithin) ANOVA with the MIXED procedure.
 Output Management System (OMS)
 Power analysis and sample size estimation
 power_analysis.txt:
Examples of power analysis for multivariate and repeated measures
designs (from the D'Amico, Neilands, & Zambarano paper in Behavior
Research Methods, Instruments, & Computers 2001, 33(4), 479484). But
note that there may be some serious problems with using "observed
power" from SPSS MANOVA or GLM procedures as the basis for sample size
estimation, as discussed in this newsgroup thread.
 Probability distributions
 binomial.txt: Syntax to generate binomial distributions. User must specify N and p by altering two lines near the top of the file.
 plot_t_distributions.txt: Plot tdistributions with varying degrees of freedom (and the standard normal distribution).
 Rankbased tests
 nonpar.txt: Examples of 3 common nonparametric tests (Sign test, Wilcoxon signed ranks, and MannWhitney U).
 Restructuring the data
 restructure.txt: Demonstrates how to restructure the data file using CasesToVars and VarsToCases. These file restructure commands are only available in SPSS 11 or later.
 restructure_old.txt: The old fashioned way, for those who are running older versions of SPSS.
 Sampling Distribution Demonstration
 Utilities
 age.txt: How to compute AGE from date of birth (DOB) and another date. Here is another file in which Art Kendall shows 3 ways to compute age to the nearest year. One of Art's methods is the one I used in my file.
 any_demo.txt: Shows two different ways to use the ANY function.
 Covariance_matrix: Shows a couple methods for creating a covariance matrix.
 Delete_rows_with_all_missing.txt: Delete rows (or cases) where all numeric variables are missing and all string variables contain only blanks. This syntax arose out of an interesting thread from the SPSSXL mailing list. David Marso posted the original syntax; I then tweaked it a bit to make it more general; and then I tweaked it again after seeing AlbertJan Ros's nice use of the keyword ALL for looping through all variables in a file.
 double_entry_check.txt: An example of how to check doubleentered data for consistency.
 find_duplicate_records.txt: Find and remove duplicate records in a data file.
 flag last day of month.txt: Use DATE.DMY to flag records with date equal to the date of the last day of the month.
 median_across_columns.txt:
SPSS has no function for computing the median across columns. One
workaround solution is to restructure the file from WIDE to LONG
(using VarsToCases), then use AGGREGATE to get the median.
 min_and_max.txt: Examples of how to obtain MINIMUM and MAXIMUM scores (both overall, and within groups) using SCRATCH variables.
 number_records.txt:
Shows how to number the records (for files where each unique ID can
have more than 1 record), and how to record the total number of records
per ID on each row with that ID.
 random_sample.txt: Shows how to randomly sample X of N cases.
 scratch1.txt: Example that shows how scratch variables maintain their value from case to case.
 Zscores
 z_scores.txt:
Calculates standard scores (i.e., Zscores) and saves them to the
working data file (using /SAVE option of the DESCRIPTIVES command).
Miscellaneous
