SPSS 27 – Quick Review

On 19 June 2020, SPSS version 27 was released. Although it has some useful new features, most of these have been poorly implemented. This review quickly walks you through the main improvements and their limitations.

  1. Cohen’s D - Effect Size for T-Tests
  2. SPSS 27 - Power & Sample Size Calculations
  3. APA Frequency Tables
  4. Python Version 2.x Deprecated
  5. SPSS’ Search Function
  6. Bootstrapping Included in SPSS Base

Cohen’s D - Effect Size for T-Tests

Cohen’s D is the main effect size measure for all 3 t-tests:

SPSS users have been complaining for ages about Cohen’s D being absent from SPSS. However, SPSS 27 finally includes it as shown below.

SPSS 27 Cohens D For Independent Samples T-Test Dialog

The only way to obtain Cohen’s D is selecting “Estimate effect sizes”. Sadly, this results in a separate table that contains way more output than we typically want.

SPSS 27 Cohens D In Output

So why does this suck?

So what's the right way to go?

The right way to go is found in JASP. The figure below shows how it implements Cohen’s D.

Cohens D In Jasp Output

So what makes this better than the SPSS implementation? Well,

Power & Sample Size Calculations - The Basics

Before we turn to power calculations in SPSS 27, let's first revisit some minimal basics.

Computing power or required sample sizes involves 4 statistics:

We can compute each of these 4 statistics if we know the other 3. In practice, we usually don't know these but we can still make educated guesses. These result in different scenarios that can easily be calculated. This is mostly done for

So let's say we want compare 3 different medicines. We're planning a 3-group ANOVA at α = 0.05 and we want (1 - β) = 0.80. We guess that the effect size, Cohen’s f = 0.25 (medium).
Given this scenario, we should use a total sample size of N = 157 participants as shown below.

ANOVA Sample Size Power Plot

SPSS 27 - Power & Sample Size Calculations

Now let's say we want to know the required sample size for a 4-way ANOVA. We'll first open the power analysis dialog as shown below.

SPSS 27 Power Analysis Menu

In the dialog that opens (below),

we'll select “Estimate sample size”
we'll enter the power or (1 - β) we desire;
we'll enter the alpha level or α at which we're planning to test.

SPSS 27 Power Analysis Dialog Example

Our sample size calculation requires just one more number: the expected effect size. But for some very stupid reason, we can't enter any effect size in this dialog. Instead, SPSS will compute it for us if we enter

all expected means and
the expected Pooled population standard deviation.

The problem is that you probably won't have a clue what to enter here: since we run this analysis before collecting any data, we can't look up the required statistics.

So how does effect size make that situation any better? Well, first off, effect size is a single number as opposed to the separate numbers required by the dialog. And because it's a single number, we can consult simple rules of thumb such as

Such estimated effect sizes can be directly entered in G*Power as shown below. It does not require 4 (unknown) means and an (unknown) standard deviation. However, you can optionally compute effect size from these numbers and proceed from there.

Gpower Sample Size For ANOVA Calculation Example

Note that the GPower dialog also contains the main output: we should collect data on a total sample size of N = 148 independent observations.

Next, we reran this analysis in SPSS 27. The output is shown below.

SPSS 27 Power Analysis Output Example Sample size calculation output example from SPSS 27

Fortunately, the SPSS and GPower conclusions are almost identical. But for some weird reason, SPSS reports the “root-mean-square standardized effect” as its effect size measure.

Common effect size measures for ANOVA are

The aforementioned output includes none of those. Reversely, (partial) eta-squared is the only effect size measure we obtain if we actually run the ANOVA in SPSS.

We could now look into the plots from SPSS power analysis. Or we could discuss why chi-square tests are completely absent. But let's not waste time. SPSS power analysis is pathetic. Use GPower instead.

APA Frequency Tables

Basic frequency distributions are the most fundamental tables in all of statistics. Sadly, those in SPSS are confusing to users and don't comply with APA guidelines. That's why we published Creating APA Style Frequency Tables in SPSS some years ago.
SPSS 27 finally offers similar tables. For creating them, navigate to Analyze SPSS Menu Arrow Descriptive statistics SPSS Menu Arrow Frequencies and follow the steps below.

SPSS 27 Apa Frequencies Dialog

These steps result in the syntax below.

*APA frequencies tables syntax pasted by SPSS 27.

/IF COMMANDS=["Frequencies(LAST)"] SUBTYPES="Frequencies"

A standard FREQUENCIES command creates the tables and OUTPUT MODIFY then adjusts them. This may work but it requires 14 lines of syntax. Our approach -combining COMPUTE and MEANS- requires only 3 as shown below.

*APA frequencies tables syntax from SPSS tutorials.

compute constant = 0.
means constant by educ jtype
/cells count npct.

*Optionally, set nicer column headers.

output modify
/select tables
/if commands = ["means(last)"]
/tablecells select = [percent] applyto = columnheader replace = '%'.

So why does SPSS 27 need 14 lines of syntax if we really need only 3? Surely, it must create much better output, right? Well... No. Let's carefully compare the results from both approaches.

SPSS 27 Apa Frequencies Tables Output

In short, we feel the SPSS 27 approach is worse on all accounts than what we proposed in Creating APA Style Frequency Tables in SPSS some years ago.

Python Version 2.x Deprecated

By default, SPSS 27 no longer supports Python 2.x. This makes sense because the Python developers themselves deprecated version 2 around April 2020.
For us, it's bad new because we're still using tons of scripts and tools in Python 2. We're well aware that we should rewrite those in Python 3 but we don't have the time for it now. Fortunately, you can still use Python 2 in SPSS 27. First, simply install Python 2.7 on your system. Next, navigate to Edit SPSS Menu Arrow Options and select the File Locations tab. Finally, Follow the steps shown below.

SPSS 27 Use Python Version 2

After completing these steps, you can use Python 2 in SPSS 27. One issue, however, is that SPSS throws a >Warning # 8501 Command name: begin program each time you run anything in Python 2. If you run a large number of Python 2 blocks, this becomes seriously annoying.

SPSS 27 Warning 8501 Python 2 Deprecated

You can prevent these warnings by running SET ERRORS NONE. prior to running any Python blocks. After you're done with those, make sure you switch the errors back on by running SET ERRORS LISTING. This is a pretty poor solution, though. We tried to prevent only the aforementioned Warning # 8501 but we didn't find any way to get it done.

Last but not least, deprecating Python 2 in favor of Python 3 probably causes compatibility issues: SPSS versions 13-23 can only be used with Python 2, not Python 3. So for these SPSS versions, we must build our tools in Python 2. Sadly, those tools won't work “out of the box” anymore with SPSS 27.

SPSS’ Search Function

SPSS 27 comes with a search function that supposedly finds “help topics, dialogs and case studies”. Our very first attempt was searching for “kruskal” for finding information on the Kruskal-Wallis test. Although SPSS obviously includes this test, the search dialog came up with zero results.

SPSS 27 Search Not Working

We didn't explore the search function any further.

Bootstrapping Included in SPSS Base

Very basically, bootstrapping estimates standard errors and sampling distributions. It does so by simulating a simple random sampling procedure by resampling observations from a sample. Like so, it doesn't rely on the usual statistical assumptions such as normally distributed variables.

Traditionally, you could bootstrap statistics in SPSS by using

SPSS 27 no longer requires the aforementioned additional license: it includes the Bootstrap option by default. This is a nice little bonus for SPSS users upgrading from previous versions.


The good news about SPSS 27 is that it implements some useful new features that users actually need. Some examples covered in this review are

The bad news, however, is that these features have been poorly implemented. They look and feel as if they were developed solely by statisticians and programmers without consulting any

The end result looks like a poor attempt at reinventing the wheel.

So that's what we think. So what about you? Did you try SPSS 27 and what do you think about it? Let us know by throwing a quick comment below. We love to hear from you.

Thanks for reading!

Tell us what you think!

*Required field. Your comment will show up after approval from a moderator.