IBM Support

Kuder-Richardson Reliability Coefficients KR20 and KR21

Technote (troubleshooting)


Can SPSS calculate the Kuder-Richardson 20 (KR20) and KR21 coefficients of reliability for a scale?

Resolving the problem


The KR20 is a special case of Cronbach's Alpha in which the items are binary variables (usually scored as 0 or 1). The RELIABILITY procedure can calculate Alpha and therefore can calculate KR20 for binary item variables. Alpha is requested in the MODEL subcommand, as in:

/VARIABLES=aitem1 aitem2 aitem3 aitem4 aitem5
aitem6 aitem7 aitem8 aitem9 aitem10

In the graphic user interface, RELIABILITY is available on the Analyze->Scale->Reliability Analysis menu. Alpha is the default Model choice in the Model scrollbar in the Reliability Analysis dialog. Click the Statistics button to enter the scale and summary statistics that are specified in the /STATISTICS and /SUMMARY subcommands.

There is no direct procedure option for calculating the KR21, which is based on the (usually unrealistic) assumption that all items in the scale have equal difficulty levels (i.e. equal proportions of 'successes' on the items). The KR21 could be calculated in SPSS by using the AGGREGATE
procedure to save KR21 formula components to an active file, where they could be input into a COMPUTE command to calculate KR21. An example of such a set of commands is provided below, However, KR20 is generally considered to be a better reliability estimate than KR21. (See Chapter 4 of Lord & Novick, 1968) or Traub (1994).)

Lord, F.M, & Novick, M.R. (1968). Statistical Theories of Mental Test Scores. Reading MA: Addison -Wesley.

Traub, R.E. (1994), Reliability for the Social Sciences: Theory and Applications. Thousand Oaks CA: Sage.

The formula for KR21 for scale score X is K/(K-1) * (1 - U*(K-U)/(K*V)) ,
where K is the number of items,U is the mean of X and V is the variance of X.

Suppose that you have item scores (0 or 1) on six binary items (ITEM1 to ITEM6) and that you want the KR21 coefficient for the scale score that is comprised as the sum of these six item scores (ScoreA). The following commands run the Reliability procedure to produce the KR20 coefficient as Cronbach's Alpha. ScoreA is computed for cases with full data on the six items. The Aggregate procedure is used to compute the pieces of the KR21 formula and save them in a new data set, (kr21_info). With that new data set active, a Compute command is then used to calculate the KR21 coefficient..

/VARIABLES=item1 item2 item3 item4 item5 item6

compute Nitems = nvalid(item1 to item6).
if (nmissing(item1 to item6) = 0) scoreA = sum(item1 to item6).
descriptives scoreA

/K 'Number of items'=MAX(Nitems)

compute kr21_ScoreA = k/(k - 1) * (1 - (scoreA_mean* (k - scoreA_mean)/(k*scoreA_sd**2*(N_ScoreA -1)/N_ScoreA))).

Here are a few explanatory notes for the commands.
1. Reliability uses only cases with complete data on the item variables. ScoreA is computed here only for cases with such complete data so that the KR21 is based on the same cases as the Reliability output.
2. The KR21 formula uses the population ("biased") estimate of the scale score variance, whereas Aggregate computes the sample ("unbiased") estimate. Also, Aggregate will save the standard deviation of a variable to the new data set, but does not have a function to save the variance. Therefore the standard deviation is saved by Aggregate as scoreA_sd and this value is squared and then multiplied by (N-1)/N in the Compute command to get the population variance estimate for ScoreA in the KR21 formula.
3. A Break variable does not need to be designated in current versions of SPSS Statistics when the aggregation is performed over the full data set. If the reliability analysis was performed within subgroups of the data as defined by a split file variable, then that variable would be the Break variable in the Aggregate procedure. You would not need to turn on the Split File structure when working in the KR21_info data set.
4. All of the steps in the KR21 calculation can be performed in the menu system, or graphic user interface (GUI).
The Aggregate procedure is available under Data->Aggregate.
After running Aggregate, the KR21_info data set will will be listed in the Windows menu of SPSS Statistics and can be activated by clicking that item.
The Compute command operation is available under Transform->Compute Variable. Type the resulting variable (ScoreA) into the Target Variable Box and the transformation expression into the Numeric Expression box.
The IF command operation is also available in the Transform-> Compute Variable dialog by entering the Target Variable and Numeric Expression box and then clicking the IF button. In the "If cases" dialog, click the radio button beside "Include if case satisfies condition" and enter the conditional expression ("(nmissing(item1 to item6) = 0) " in this example) into the box below that radio button. Click Continue and OK.

Related information

Need more help? Our Statistics forum is Live!

Historical Number


Document information

More support for: SPSS Statistics

Software version: Not Applicable

Operating system(s): Platform Independent

Reference #: 1476088

Modified date: 07 September 2016