CRAN_Status_Badge R-CMD-check Project Status: Active – The project has reached a stable, usable state and is being actively developed. Codecov test coverage

An R package for doing inference with coefficient alpha (Cronbach, 1951) and standardized alpha (Falk & Savalei, 2011). Many methods are supported, with special emphasis on small samples and non-normality.


Install from CRAN:


Or use the development version.

# install.packages("remotes")


Call the library function and load some data:

x <- bfi[, 1:5]
x[, 1] <- 7 - x[, 1] # Reverse-coded item.
#>       A1 A2 A3 A4 A5
#> 61617  5  4  3  4  4
#> 61618  5  4  5  2  5
#> 61620  2  4  5  4  4
#> 61621  3  4  6  5  5
#> 61622  5  3  3  4  5
#> 61623  1  6  5  6  5

Then calculate an asymptotically distribution-free confidence interval for ,

#> Call: alphaci(x = x)
#> 95% confidence interval (n = 2709).
#>     0.025     0.975 
#> 0.6828923 0.7246195 
#> Sample estimates.
#>     alpha        sd 
#> 0.7037559 0.5536964

You can also calculate confidence intervals for standardized alpha

#> Call: alphaci_std(x = x)
#> 95% confidence interval (n = 2709).
#>     0.025     0.975 
#> 0.6938373 0.7331658 
#> Sample estimates.
#>     alpha        sd 
#> 0.7135016 0.5218675

Supported techniques

alphaci supports three basic asymptotic confidence interval constructios. The asymptotically distribution-free interval of Maydeu-Olivares et al. 2007, the pseudo-elliptical construction of Yuan & Bentler (2002), and the normal method of van Zyl et al., (1999).

Method Description
adf The asymptotic distribution free method (Maydeu-Olivares et al. 2007). The method is asymptotically correct, but has poor small-sample performance.
elliptical The elliptical or pseudo-elliptical kurtosis correction (Yuan & Bentler, 2002). Uses the unbiased sample estimator of the common kurtosis (Joanes, 1998). Has better small-sample performance than adf and normal if the kurtosis is large and is small.
normal Assumes normality of (van Zyl et al., 1999). This method is not recommended since it yields too short confidence intervals when the excess kurtosis of is larger than .

Standardized alpha, computed with alpha_std, support the same type arguments. Their formulas can be derived using the methods of Hayashi and Kamata (2005) and Neudecker (2007).

In addition, you may transform the intervals using one of four transforms:

  1. The Fisher transform, or . Famously used in inference for the correlation coefficient.
  2. The transform, where . This is an asymptotic pivot under the elliptical model with parallel items.
  3. The identity transform. The default option.
  4. The transform. This transform might fail when is small, as negative values for is possible, but do not accept them,

The option bootstrap does studentized bootstrapping Efron, B. (1987) with n_reps repetitions. If bootstrap = FALSE, an ordinary normal approximation will be used. The studentized bootstrap intervals are is a second-order correct, so its confidence intervals will be better than the normal approximation when is sufficiently large.

Finally, the option parallel = TRUE can be used, which is suitable if covariance matrix is compound symmetric. If the distribution is normal or (pseudo-)elliptic, it can be used to simplify the expression for the asymptotic variance of alpha and standardized alpha to


where is the common kurtosis parameter.

Similar software

There are several R packages that make confidence intervals for coefficient alpha, but not much support for standardized alpha. Most packages use some sort of normality assumption.

The alpha and functions of psych calculates confidence intervals for coefficient alpha following normal theory. semTools calculates numerous reliability coefficients with its reliability function. The Cronbach package provides confidence intervals based on normal theory, as does the alpha.CI function of psychometric. Confidence intervals for both alphas can, in principle, be calculated using structural equation modeling together with the delta method. Packages such as lavaan can be used for this purpose, but this is seldom done.

How to Contribute or Get Help

If you encounter a bug, have a feature request or need some help, open a Github issue. Create a pull requests to contribute.