Appendix L — SPSS Tutorial: Percentiles and Z-Scores
Computing and interpreting percentiles, percentile ranks, and standard scores
L.1 Overview
This tutorial demonstrates how to use SPSS to compute percentiles, percentile ranks, and z-scores for individual observations and entire datasets. These transformations are essential for:
- Comparing individual performance to group norms
- Creating standardized scores for cross-scale comparisons
- Identifying outliers systematically
- Building composite performance profiles
We will use fitness testing data to illustrate realistic Movement Science applications.
L.2 Dataset for this tutorial
We will use the Core Dataset (core_session.csv) filtered to the pre-training time point (N = 60). Download it here: core_session.csv
For this tutorial, we will analyze two continuous variables:
sprint_20m_s— 20-meter sprint time in seconds (lower is better)vo2_mlkgmin— Aerobic capacity (VO₂max) in mL·kg⁻¹·min⁻¹ (higher is better)
Open the dataset in SPSS, then filter to pre-training only:
- Data → Select Cases → If condition is satisfied
- Enter:
time = 'pre' - Click Continue → OK
L.3 Part 1: Computing percentiles using Frequencies
L.3.1 Procedure
The Frequencies procedure provides percentile values for any variable.
- Analyze → Descriptive Statistics → Frequencies
- Move the variable(s) of interest (e.g.,
sprint_20m_s) to the Variable(s) box - Click Statistics button
- Under Percentile Values:
- Select Quartiles for 25th, 50th, 75th percentiles
- Or select Cut points for X equal groups (e.g., 10 for deciles)
- Or manually enter specific percentiles in Percentiles box
- Continue → OK
L.3.2 Example: Computing quartiles for sprint times
Request:
FREQUENCIES VARIABLES=sprint_20m_s
/STATISTICS=QUARTILES
/ORDER=ANALYSIS.
L.3.3 Interpreting the output
The output includes a Percentiles table:
| Percentile | Value |
|---|---|
| 25 | 3.54 |
| 50 (Median) | 3.80 |
| 75 | 4.03 |
Interpretation: * 25% of participants had sprint times ≤ 3.54 s (Q₁) * 50% had times ≤ 3.80 s (Median) * 75% had times ≤ 4.03 s (Q₃) * The IQR = 4.03 − 3.54 = 0.48 s (middle 50% of participants span 0.48 s)
Sprint times ranged from 2.90 to 4.45 seconds, with a median of 3.80 s (IQR = 0.48 s). The 25th and 75th percentiles were 3.54 and 4.03 seconds, respectively.
L.4 Part 2: Computing percentile ranks for individual scores
SPSS does not directly compute percentile ranks for individual values, but you can estimate them using the cumulative percentage column in the Frequencies output.
L.4.1 Procedure
- Analyze → Descriptive Statistics → Frequencies
- Move the variable to Variable(s) box
- Ensure Display frequency tables is checked
- OK
L.4.2 Reading the cumulative percent column
For a continuous variable like sprint_20m_s, the Frequencies table lists each unique value with its cumulative percent. A participant with a sprint time of 3.60 s falls at approximately the 30th percentile — meaning 30% of the sample had times at or below 3.60 s.
For “lower is better” measures (sprint time, reaction time), a lower value ranks higher in performance despite a higher cumulative percentage. For “higher is better” measures (VO₂max, strength), the cumulative percentage directly represents the performance ranking.
L.5 Part 3: Computing z-scores using Descriptives
L.5.1 Procedure: Viewing z-scores in output
- Analyze → Descriptive Statistics → Descriptives
- Move variable(s) to Variable(s) box
- Click Options button
- Ensure Mean and Std. deviation are selected
- Continue → OK
- Use the formula: z = (X − Mean) / SD
L.5.2 Procedure: Creating standardized variables
To create new z-score variables in your dataset:
- Analyze → Descriptive Statistics → Descriptives
- Move variable(s) to Variable(s) box
- ✓ Check Save standardized values as variables
- OK
SPSS creates new variables with the prefix Z (e.g., sprint_20m_s → Zsprint_20m_s).
L.5.3 Example: Computing z-scores for sprint times
Descriptive Statistics (pre-training, N = 60):
| Variable | N | Mean | Std. Deviation |
|---|---|---|---|
| sprint_20m_s | 60 | 3.79 | 0.354 |
For an athlete with sprint_20m_s = 2.90 s (fastest in sample):
\[ z = \frac{2.90 - 3.79}{0.354} = \frac{-0.89}{0.354} = -2.51 \]
Interpretation: This athlete is 2.51 standard deviations faster than the mean (the most negative z-score = best sprint performance).
For an athlete with sprint_20m_s = 4.45 s (slowest in sample):
\[ z = \frac{4.45 - 3.79}{0.354} = \frac{+0.66}{0.354} = +1.87 \]
Interpretation: This athlete is 1.87 standard deviations slower than the mean.
L.5.4 Viewing saved z-scores
After creating standardized variables, you can view them in Data View:
| ID | sprint_20m_s | Zsprint_20m_s |
|---|---|---|
| P_fast | 2.90 | −2.51 |
| P_avg | 3.79 | 0.00 |
| P_slow | 4.45 | +1.87 |
L.6 Part 4: Cross-scale comparisons using z-scores
To compare performance across different tests (e.g., sprint time vs. VO₂max), standardize all variables and compare z-scores.
L.6.1 Procedure
- Standardize each variable using Descriptives with Save standardized values
- View z-scores for each participant across tests
- Create composite scores if needed using Transform → Compute Variable
L.6.2 Example: Dual-component fitness profile for Participant P001
Group Statistics (pre-training, N = 60):
| Variable | Mean | SD |
|---|---|---|
| sprint_20m_s | 3.79 | 0.354 |
| vo2_mlkgmin | 41.34 | 6.82 |
Participant P001’s raw scores:
| sprint_20m_s | vo2_mlkgmin |
|---|---|
| 3.44 s | 40.8 mL·kg⁻¹·min⁻¹ |
Computed Z-Scores:
| ID | ZSprint | ZVO2 |
|---|---|---|
| P001 | −0.98 | −0.08 |
Interpretation: Participant P001 shows: * Sprint performance slightly above average (z = −0.98; lower sprint time = faster) * Aerobic capacity essentially at the group mean (z = −0.08)
L.6.3 Creating composite scores
To create an average z-score across multiple tests:
- Transform → Compute Variable
- Target Variable:
Z_Composite - Numeric Expression:
(-1 * Zsprint_20m_s + Zvo2_mlkgmin) / 2- Note: Sprint z-score is multiplied by −1 to make “higher = better” for all components
- OK
When creating composite z-scores, ensure all variables are oriented the same way (higher = better or lower = better). For sprint times, multiply z-scores by −1 to flip the direction before averaging.
L.7 Part 5: Identifying outliers using z-scores
L.7.1 Procedure
- Create standardized variables (see Part 3)
- Transform → Compute Variable
- Create a flag variable for extreme values:
- Target Variable:
Outlier_Sprint - Numeric Expression:
ABS(ZSprint20m) > 3
- Target Variable:
- OK
This creates a flag (0 = not outlier, 1 = outlier) for values with |z| > 3.
L.7.2 Alternative: Visual inspection
- Graphs → Legacy Dialogs → Scatter/Dot → Simple Scatter
- Y-Axis: Standardized variable (e.g.,
ZSprint20m) - X-Axis: ID or sequence variable
- OK
Add a reference line at z = ±3 to identify extreme values: - Double-click the chart - Options → Y-axis reference line - Add lines at +3 and −3
L.8 Part 6: Percentiles by group (e.g., age, sex)
To compute percentiles separately for males and females:
- Data → Split File
- Select Organize output by groups
- Move grouping variable (e.g.,
Sex) to Groups Based on box - OK
- Run Frequencies procedure as in Part 1
- Data → Split File → Reset when done
Output: SPSS produces separate percentile tables for each group, allowing age- and sex-specific norm comparisons.
L.9 Part 7: Exporting results
L.9.1 Exporting percentile and z-score tables
- Right-click on the output table
- Export
- Choose format (Excel, Word, PDF)
- Export
L.9.2 Copying tables to manuscripts
- Right-click on table → Copy
- Paste into Word document
- Format as APA table:
- Remove gridlines
- Add horizontal lines (top, below header, bottom)
- Ensure decimal alignment
Table 1
Descriptive Statistics and Quartiles for Fitness Variables at Pre-Training (N = 60)
| Variable | M | SD | Q1 | Mdn | Q3 | Min | Max |
|---|---|---|---|---|---|---|---|
| Sprint Time (s) | 3.79 | 0.35 | 3.54 | 3.80 | 4.03 | 2.90 | 4.45 |
| VO₂max (mL·kg⁻¹·min⁻¹) | 41.34 | 6.82 | 36.03 | 41.55 | 45.82 | 26.90 | 56.50 |
Note. M = mean; SD = standard deviation; Q1 = 25th percentile; Mdn = median; Q3 = 75th percentile. Negative z-scores for Sprint indicate faster times (better performance).
L.10 Practice exercises
Use the Core Dataset (core_session.csv, pre-training, N = 60) to complete these tasks:
- Compute quartiles for
vo2_mlkgminand interpret the results. - Determine the percentile rank for a participant with
sprint_20m_s= 3.60 s (hint: approximately the 30th percentile). - Create z-score variables for
sprint_20m_sandvo2_mlkgminusing Descriptives → Save standardized values. - Identify participants with z-scores > +2 or < −2 on either test (potential outliers).
- Create a composite fitness score by averaging z-scores across both tests (adjust Sprint direction first by multiplying by −1).
- Compare percentiles by group: Split the file by
group(training vs. control) and compute quartiles forsprint_20m_s.
L.11 Common mistakes and troubleshooting
| Problem | Solution |
|---|---|
| Z-scores not appearing in dataset | Ensure “Save standardized values” is checked |
| Percentiles seem wrong | Check for outliers or data entry errors |
| Composite z-scores favor one test | Ensure all tests are on the same directionality |
| Percentile rank doesn’t match z-score | Remember: connection only holds if distribution is normal |
| Output tables are split unexpectedly | Reset Split File: Data → Split File → Reset |
L.12 Summary
This tutorial covered:
- Computing percentiles using the Frequencies procedure
- Estimating percentile ranks from cumulative frequency tables
- Creating z-score variables using Descriptives
- Comparing performance across different scales using z-scores
- Creating composite scores and identifying outliers
- Generating age- and sex-specific norms using Split File
Practice these procedures with your own data. Remember: * Use percentiles for skewed data or ordinal scales * Use z-scores for symmetric data and cross-scale comparisons * Always visualize distributions before interpreting standardized scores * Report both raw scores and standardized scores for complete interpretation
L.13 Additional resources
- SPSS Help: Frequencies Procedure
- SPSS Help: Descriptives Procedure
- SPSS Help: Split File
- Textbook Chapter 6: Percentiles and Standard Scores