Skip to contents

Compute per-scale internal-consistency reliability — Cronbach's alpha and McDonald's omega — for the Personality Inventory for DSM-5: full version (PID-5, 220 items), short form (PID-5-SF, 100 items), or brief form (PID-5-BF, 25 items). Reliability is estimated on the reverse-keyed item responses, at the facet level for FULL/SF and the domain level for BF (the same scales score_pid5() outputs, before FULL/SF domain aggregation). The BF version also returns a Total row covering all 25 items; note that this scale spans five heterogeneous domains, so its internal consistency is not comparable to a domain's and is reported without further interpretation.

Usage

reliability_pid5(
  data,
  items,
  version = c("FULL", "SF", "BF"),
  srange = c(0, 3),
  alpha = TRUE,
  omega = TRUE
)

Arguments

data

A data frame containing (at least) all the PID items (numerically scored and in order).

items

A vector of column names (as strings) or numbers (as integers) corresponding to the PID items in order. Items must be supplied in instrument order; duplicated entries are an error.

version

A string indicating the version of the PID to score: "FULL", "SF", or "BF". Will be automatically capitalized. (default = "FULL")

srange

An optional numeric vector specifying the minimum and maximum values of the items, used for reverse-coding. (default = c(0, 3))

alpha

Optional logical; if TRUE, include a column of Cronbach's alpha per scale. (default = TRUE)

omega

Optional logical; if TRUE, include a column of McDonald's omega (total) per scale, estimated via a one-factor CFA (requires the lavaan package). (default = TRUE)

Value

A tibble with one row per scale and columns Scale (the scale's canonical display name, as the instrument's keying table spells it), camelCase (the stem that names the scale's column in the matching score_*() output, read from the same keying-table row), nItems (integer), and (when requested) alpha and omega.

Details

Alpha is computed by calc_alpha() (covariance-based, pairwise deletion) and omega by calc_omega() (one-factor lavaan CFA, FIML). A scale whose estimate cannot be computed (e.g. too few items or, for omega, a non-converging CFA or an uninstalled lavaan) is returned as NA rather than aborting the call.

Examples

# Facet-level reliability for the full PID-5 (alpha only)
reliability_pid5(sim_pid5, items = 1:220, version = "FULL", omega = FALSE)
#> # A tibble: 25 × 4
#>    Scale                  camelCase             nItems   alpha
#>    <chr>                  <chr>                  <int>   <dbl>
#>  1 Anhedonia              anhedonia                  8 -0.211 
#>  2 Suspiciousness         suspiciousness             7 -0.211 
#>  3 Risk Taking            riskTaking                14 -0.0128
#>  4 Impulsivity            impulsivity                6  0.141 
#>  5 Eccentricity           eccentricity              13  0.0554
#>  6 Distractibility        distractibility            9 -0.154 
#>  7 Restricted Affectivity restrictedAffectivity      7 -0.144 
#>  8 Submissiveness         submissiveness             4 -0.194 
#>  9 Withdrawal             withdrawal                10 -0.0290
#> 10 Callousness            callousness               14  0.0147
#> # ℹ 15 more rows