CCAI: The CCAI Climate-Friendly Purchasing Choices Domain

CCAIR Documentation

The CCAI Climate-Friendly Purchasing Choices Domain

Description

Correlation matrix, factor pattern matrix, and factor intercorrelations for the Climate Change Action Inventory (CCAI) (Barchard et al., 2021) Climate-Friendly Purchasing Choices domain, analyzed in Bi and Barchard (2024). The scale measures the frequency with which individuals make purchasing choices aimed at reducing climate change. Data were collected from 500 United States MTurk workers. After 15 climate change deniers and 24 multivariate outliers were removed, 461 participants remained. Climate change deniers were excluded because the scale measures behaviors intended to reduce climate change — including individuals who do not believe climate change exists would be inconsistent with the measure's intent.

The Climate Change Action Inventory contains eight domains; the Climate-Friendly Purchasing Choices domain analyzed here is one of them.

Usage

data(CCAI, package = "GPArotation")

Format

Three objects are loaded by data(CCAI):

  • CCAI_R: a 14 \times 14 numeric correlation matrix. Row and column names are item labels CCAI1 through CCAI14, ordered by factor to match CCAI_pattern.

  • CCAI_pattern: a 14 \times 3 numeric matrix of factor pattern coefficients. Row names are item labels CCAI1 through CCAI14, ordered by factor to facilitate interpretation. Column names are factor labels SustainableOptions, CollectiveAction, and AvoidBuyingNew.

  • CCAI_Phi: a 3 \times 3 numeric matrix of factor intercorrelations. Row and column names are the three factor labels.

Details

The CCAI Climate-Friendly Purchasing Choices domain consists of 14 items. Items used a nine-point frequency scale ranging from 1 (less than once a year) to 9 (at least 14 times a week). For full details on study design, data collection, analysis, and interpretation see Bi and Barchard (2024).

CCAI_R is the observed 14 \times 14 correlation matrix for the 14 items of the Climate-Friendly Purchasing Choices domain. The correlation matrix was kindly provided by the authors and has not been published separately.

CCAI_pattern is a 14 \times 3 factor pattern matrix from principal components extraction followed by direct oblimin rotation, reported in Table 2 of Bi and Barchard (2024) (the Table is labeled “Factor Structure” in the paper but contains pattern coefficients). The three factors are: Choosing Sustainable Options (F1), Supporting Collective Action (F2), and Avoiding Buying New (F3).

Item Description F1 F2 F3
CCAI8 Choose products with less impact on climate change .95 .00 -.02
CCAI6 Choose products with less packaging .91 -.04 .01
CCAI7 Choose products made locally .89 -.09 .07
CCAI11 Encourage others to choose climate-friendly products .56 .40 .05
CCAI12 Problem solve to reduce impact of purchases .52 .44 .04
CCAI10 Encourage others to buy less .41 .44 .12
CCAI14 Give time/money to orgs reducing purchase impact -.01 .97 -.02
CCAI13 Give time/money to orgs reducing purchases .02 .93 .01
CCAI5 Donate to charity rather than buying a gift -.02 .78 .20
CCAI2 Use borrowed/rented/digital rather than buying -.02 -.18 .90
CCAI4 Buy used rather than new .00 .15 .76
CCAI1 Repair rather than buying replacements .03 .06 .76
CCAI3 Use borrowed/rented tools rather than buying .10 .21 .62
CCAI9 Donate or sell old possessions .22 .27 .46

CCAI_Phi is a 3 \times 3 factor intercorrelation matrix. All three intercorrelations exceed 0.50.

F1 F2 F3
Choosing Sustainable Options 1.00 0.59 0.59
Supporting Collective Action 0.59 1.00 0.53
Avoiding Buying New 0.59 0.53 1.00

The Tandem Paradigm on Correlated Data

The CCAI Purchasing Choices domain illustrates the Tandem criteria on highly correlated factors. Because the underlying dimensions are strongly intercorrelated (\phi_{ij} > 0.50), TandemI pulls shared variance into a single dominant general factor (approximately 59 percent of total variance), alerting the researcher to a unified behavioral core.

TandemII forces an orthogonal simple structure, but the 90-degree constraint creates an artificial compromise when true dimensions are correlated — smearing loadings across factors. Comparing TandemII to oblique Oblimin using the package summary diagnostics (calc_AUC, calc_hyperplane) provides empirical evidence that an oblique structure is conceptually superior for these data.

See vignette("GPA3bifactor", package = "GPArotation") for a bifactor analysis of these data.

Note

The raw data are publicly available on the Open Science Framework. As the data are subject to a license, users should consult the OSF page for terms of use before using the raw data directly: https://osf.io/h38yb/overview.

References

Barchard, K.A., Okagawa, K., Hoffman, C.K., and Odents, O. (2021). Climate Change Action Inventory. Unpublished psychological test. Available from kim.barchard@unlv.edu.

Bi, Y. and Barchard, K.A. (2024). Purchasing choices that reduce climate change: An exploratory factor analysis. Spectra Undergraduate Research Journal, 3(2), 8–14. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.9741/2766-7227.1028")}.

See Also

rotations, bifactorT, eigen, factanal, Harman, Thurstone, WansbeekMeijer, GriffithMulaik

Examples

  data(CCAI, package = "GPArotation")

  # Observed correlation matrix
  round(CCAI_R, 2)

  # Published pattern matrix and factor intercorrelations
  round(CCAI_pattern, 2)
  round(CCAI_Phi, 2)

  # Reproduce published analysis: PCA extraction via eigendecomposition
  # followed by oblimin rotation. No additional packages required.
  # Gives the same result as psych::principal used by Bi and Barchard (2024).
  ev          <- eigen(CCAI_R)
  k           <- 3
  L_unrotated <- ev$vectors[, 1:k] %*% diag(sqrt(ev$values[1:k]))
  rownames(L_unrotated) <- colnames(CCAI_R)
  res.ob <- oblimin(L_unrotated, randomStarts = 100)

  # Sort and extract loadings for comparison
  res_sorted <- GPArotation:::.sortGPALoadings(res.ob)
  L_repro    <- unclass(res_sorted$loadings)

  # Compare reproduced vs published side by side, alternating by factor
  comparison <- cbind(round(L_repro[, 1], 2), round(CCAI_pattern[, 1], 2),
                      round(L_repro[, 2], 2), round(CCAI_pattern[, 2], 2),
                      round(L_repro[, 3], 2), round(CCAI_pattern[, 3], 2))
  colnames(comparison) <- c("F1.repro", "F1.pub",
                            "F2.repro", "F2.pub",
                            "F3.repro", "F3.pub")
  print(comparison)

  # --- Tandem criteria ---
  # Stage 1: TandemI reveals factor redundancy structure.
  # One dominant general factor (SS = 8.3, 59% variance) suggests
  # highly correlated underlying constructs.
  res.t1 <- tandemI(L_unrotated, randomStarts = 100)
  print(res.t1)

  # Stage 2: TandemII for simple structure (orthogonal constraint).
  res.t2 <- tandemII(L_unrotated, randomStarts = 100)
  summary(res.t2)

  # For heavily correlated constructs, oblique rotation achieves
  # substantially cleaner simple structure than TandemII.
  # Compare AUC and hyperplane counts across methods.
  cat("           AUC    Hyperplane\n")
  cat("TandemII  ",
      round(GPArotation:::calc_AUC(res.t2)$AUC_mean, 3), "  ",
      sum(abs(unclass(res.t2$loadings)) < 0.1), "loadings\n")
  cat("Oblimin   ",
      round(GPArotation:::calc_AUC(res.ob)$AUC_mean, 3), "  ",
      sum(abs(unclass(res.ob$loadings)) < 0.1), "loadings\n")

  # Orthogonal bifactor rotation using MLE extraction
  fa.un <- factanal(factors = 3, covmat = CCAI_R, n.obs = 461,
                    rotation = "none")
  bif <- bifactorT(fa.un)
  print(bif, sortLoadings = FALSE, digits = 3, cutoff = 0.05)

GPArotation documentation built on June 18, 2026, 9:06 a.m.