| Title: | Average Proportional Distance |
|---|---|
| Description: | Estimation of average proportional distance for repeatability of responses in scales items, more other supplemental information. |
| Authors: | Cesar Merino-Soto [aut, cre] |
| Maintainer: | Cesar Merino-Soto <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 1.0.1 |
| Built: | 2026-10-08 07:59:15 UTC |
| Source: | https://github.com/cmerinos/apd |
Computes the average inter-item correlation (aii) for a set of items, with optional bootstrap confidence intervals. It supports Pearson, Spearman, and polychoric correlations and allows grouped analysis. Fisher's z-transformation is used to average correlations appropriately. When confidence intervals are requested and groups are provided, the function also computes MOVER-type confidence intervals and Wald-type tests for the difference in aii between all pairs of groups, as well as a global test of homogeneity across groups.
aiicor( data, rmethod = "pearson", ci = FALSE, conf.level = 0.95, nboot = 1000, ci.method = "perc", nd = 3, group = NULL )aiicor( data, rmethod = "pearson", ci = FALSE, conf.level = 0.95, nboot = 1000, ci.method = "perc", nd = 3, group = NULL )
data |
A |
rmethod |
Character. Correlation method: |
ci |
Logical. If |
conf.level |
Numeric. Confidence level for the interval (default = |
nboot |
Integer. Number of bootstrap samples for CI computation (default = |
ci.method |
Character. Bootstrap CI method: |
nd |
Integer. Number of decimal digits to round results (default = |
group |
Optional vector indicating group membership (factor, character, or numeric).
If supplied, group-wise aii will be calculated. When |
For each group, the function estimates an inter-item correlation matrix using the method
specified in rmethod. The unique pairwise inter-item correlations are then extracted
from the lower-triangular part of the matrix, excluding the diagonal:
In practice, this corresponds to extracting cor_matrix[lower.tri(cor_matrix)], which
yields the set of non-redundant inter-item correlations.
These correlations are averaged after applying Fisher's transformation
, and the final estimate is back-transformed to the correlation
metric. This yields an average inter-item correlation that is less biased than the direct
arithmetic mean of raw correlations, especially when the correlations are moderately large.
When rmethod = "poly", the function uses psych::polychoric
with correct = TRUE to estimate the polychoric correlation matrix. The resulting
average inter-item correlation is still summarized through Fisher's z-transformation as a
practical approximation.
When ci = TRUE, confidence intervals are estimated by nonparametric bootstrap. Bootstrap
resampling is performed by resampling rows (respondents) from the original data matrix within
each group, rather than resampling already-computed correlations. Thus, in each bootstrap sample,
the correlation matrix is recomputed from the resampled item data, and the average inter-item
correlation is recalculated from that matrix. This row-wise bootstrap strategy is especially
important for rmethod = "poly", because the polychoric matrix must be re-estimated in
each resample.
When more than one group is present and ci = TRUE, two types of inferential summaries
are provided:
(1) Global test of homogeneity (Q statistic, fixed-effects framework).
Let denote the average inter-item correlation (aii) for group , and let
be its confidence interval at level conf.level. An approximate standard
error for each group is obtained by assuming a normal-based interval:
where and is the corresponding standard
normal quantile. The within-group variances are then , and fixed-effect
weights are defined as .
A pooled (fixed-effect) average inter-item correlation is computed as
The Cochran-type Q statistic for testing homogeneity of the group-specific aii values is
which is compared to a chi-square distribution with degrees of freedom, where
is the number of groups. The null hypothesis is that all groups share the same
underlying average inter-item correlation (fixed-effects perspective).
In addition, a descriptive index of heterogeneity is reported:
representing the percentage of between-group variability in the aii estimates that exceeds what would be expected from sampling error alone (within the fixed-effects approximation).
(2) Pairwise differences between groups (MOVER CI and Wald-type test).
For each pair of groups and , the function reports the difference in average
inter-item correlations:
A MOVER-type (Method Of Variance Estimates Recovery) confidence interval for is constructed
using only the endpoints of the group-specific confidence intervals . For example,
one form of the MOVER interval is
with the complementary limits obtained by swapping the roles of the lower and upper bounds. This approach combines the uncertainty from both groups without requiring explicit variance formulas for the difference.
In parallel, a Wald-type test is provided for each pairwise difference. Using the same approximate standard errors derived from the confidence intervals,
the standard error of the difference is
assuming independence between groups. The Wald statistic is then
with a two-sided p-value computed from the standard normal distribution. These Wald p-values and the MOVER confidence intervals are both based on approximations derived from the group-level intervals and should be interpreted as exploratory inferential summaries rather than exact tests.
The returned object depends on ci and the number of groups:
If ci = FALSE, the function returns a data.frame with one row per group and
the columns group, avg_r, min, max, and sd.
If ci = TRUE and only one group is present (including group = NULL),
the function returns a data.frame with the columns group, avg_r,
lwr.ci, upr.ci, min, max, and sd.
If ci = TRUE and more than one group is present, the function returns a list
with three components:
group_results: A data.frame containing, for each group:
group: Group label.
avg_r: Average inter-item correlation (back-transformed from Fisher's z).
lwr.ci, upr.ci: Lower and upper bounds of the bootstrap confidence interval.
min, max: Minimum and maximum inter-item correlations in the matrix.
sd: Standard deviation of inter-item correlations.
comparisons: A data.frame containing all pairwise comparisons between groups:
group1, group2: The groups being compared.
diff: Difference in average inter-item correlations
(avg_r_group1 - avg_r_group2).
lwr.ci, upr.ci: MOVER-type confidence interval limits for the difference.
z: Wald-type test statistic for the difference.
p.value: Two-sided p-value associated with the Wald statistic.
global_test: A data.frame with a single row (labelled "test")
summarizing the fixed-effects homogeneity test across all groups:
Q: Cochran-type Q statistic for homogeneity of the group-specific aii values.
df: Degrees of freedom (G - 1, where G is the number of groups).
p.value: p-value for the Q statistic under the chi-square approximation.
I2: Percentage of heterogeneity (), expressing the proportion of
between-group variability beyond sampling error (in %).
k: Number of groups included in the test.
pooled: Fixed-effect pooled estimate of the average inter-item correlation.
Briggs, S.R. and Cheek, J.M. (1986). The role of factor analysis in the development and evaluation of personality scales. Journal of Personality, 54, 106-148. doi:10.1111/j.1467-6494.1986.tb00391.x
Clark, L. A., & Watson, D. (1995). Constructing validity: Basic issues in objective scale development. Psychological Assessment, 7(3), 309-319. doi:10.1037/1040-3590.7.3.309
Piedmont, R.L. (2014). Inter-item correlations. In A.C. Michalos (Ed.), Encyclopedia of Quality of Life and Well-Being Research. Springer, Dordrecht. doi:10.1007/978-94-007-0753-5_1493
Park, J., van den Broek, K. L., Bhullar, N., Ogunbode, C. A., Schermer, J. A., Doran, R., Ardi, R., Hanss, D., Maran, D. A., Albzour, M., Aquino, S. D., Ayanian, A. H., Chegeni, R., Chukwuorji, J. B. C., Enea, V., Ghanbarian, E., Ghorayeb, J., Jiang, F., Kehinde, O. A., ... Yadav, R. (2022). Comparison of the inter-item correlations of the Big Five Inventory-10 (BFI-10) between Western and non-Western contexts. Personality and Individual Differences 196, 111751. doi:10.1016/j.paid.2022.111751
set.seed(123) data <- data.frame( item1 = rnorm(100), item2 = rnorm(100), item3 = rnorm(100) ) # Single-group point estimate only aiicor(data, ci = FALSE) # Single-group estimate with bootstrap CI aiicor(data, ci = TRUE) # Two groups with MOVER and Wald comparisons plus global test grp <- rep(c("A", "B"), each = 50) res <- aiicor(data, rmethod = "spearman", ci = TRUE, group = grp) res$group_results res$comparisons res$global_testset.seed(123) data <- data.frame( item1 = rnorm(100), item2 = rnorm(100), item3 = rnorm(100) ) # Single-group point estimate only aiicor(data, ci = FALSE) # Single-group estimate with bootstrap CI aiicor(data, ci = TRUE) # Two groups with MOVER and Wald comparisons plus global test grp <- rep(c("A", "B"), each = 50) res <- aiicor(data, rmethod = "spearman", ci = TRUE, group = grp) res$group_results res$comparisons res$global_test
Computes the average inter-item association, the first eigenvalue using Kaiser's formula, and the percentage of variance explained by the first component.
aiicorEigen(data, rmethod = c("pearson", "spearman", "poly"), nd = 3)aiicorEigen(data, rmethod = c("pearson", "spearman", "poly"), nd = 3)
data |
A data.frame containing item responses. |
rmethod |
Type of association: |
nd |
Number of digits to round all numeric results (default = 3). |
A data.frame with:
n.items: Number of items ().
rmean: Average inter-item association
(mean of the lower triangular elements of the association matrix,
excluding the diagonal).
lambda1.Kaiser: First eigenvalue according to Kaiser's
formula, .
pct.var: Percentage of total variance explained by the first
component.
Cureton, E. E. (1971). A Measure of the Average Intercorrelation. Educational and Psychological Measurement, 31(3), 627-628. doi:10.1177/001316447103100303
Kaiser, H. F. (1968). A Measure of the Average Intercorrelation. Educational and Psychological Measurement, 28(2), 245-247. doi:10.1177/001316446802800203
# Example with continuous items (Pearson correlation) set.seed(123) x1 <- rnorm(200) x2 <- 0.6 * x1 + rnorm(200, sd = 0.8) x3 <- 0.6 * x1 + rnorm(200, sd = 0.8) dat <- data.frame(x1, x2, x3) aiicorEigen(dat, rmethod = "pearson") aiicorEigen(dat, rmethod = "spearman") # Example with ordinal items (polychoric correlation) # Uncomment if the 'psych' package is installed dat_ord <- data.frame( item1 = cut(x1, breaks = 4, labels = FALSE), item2 = cut(x2, breaks = 4, labels = FALSE), item3 = cut(x3, breaks = 4, labels = FALSE)) aiicorEigen(dat_ord, rmethod = "poly")# Example with continuous items (Pearson correlation) set.seed(123) x1 <- rnorm(200) x2 <- 0.6 * x1 + rnorm(200, sd = 0.8) x3 <- 0.6 * x1 + rnorm(200, sd = 0.8) dat <- data.frame(x1, x2, x3) aiicorEigen(dat, rmethod = "pearson") aiicorEigen(dat, rmethod = "spearman") # Example with ordinal items (polychoric correlation) # Uncomment if the 'psych' package is installed dat_ord <- data.frame( item1 = cut(x1, breaks = 4, labels = FALSE), item2 = cut(x2, breaks = 4, labels = FALSE), item3 = cut(x3, breaks = 4, labels = FALSE)) aiicorEigen(dat_ord, rmethod = "poly")
Average Proportional Distance (APD) is a measure of a test's internal consistency that focuses on the average difference between item scores. To calculate it, the absolute difference is obtained for every pair of item scores, these differences are averaged, and the result is divided by the number of response options minus one to obtain a proportional score ranging from 0 to 1.
APD( data, ncat, ci = FALSE, conf.level = 0.95, B = 1000, cimethod = "perc", nd = 3 )APD( data, ncat, ci = FALSE, conf.level = 0.95, B = 1000, cimethod = "perc", nd = 3 )
data |
A |
ncat |
Integer. Number of response categories for the items (e.g., 5 for a 1-5 scale). Used to convert the average difference into the proportional metric. |
ci |
Logical. Should a bootstrap confidence interval for APD be computed? |
conf.level |
Numeric (0 to 1). Confidence level
(e.g., |
B |
Integer. Number of bootstrap resamples used when computing confidence intervals. |
cimethod |
Character. Type of confidence interval:
|
nd |
Integer. Number of digits to round the results. Default is 3. |
The APD is computed in three main steps:
Compute the absolute difference between every possible pair of item scores for each respondent.
Average all absolute differences across respondents and item pairs to
obtain the average difference AD.
Divide AD by ncat - 1 to rescale it to the
proportional metric:
The APD ranges from 0 (perfect internal consistency) to 1 (maximum possible inconsistency given the response scale). Lower values reflect greater similarity among item scores, indicating stronger internal consistency.
When ci = TRUE, APD confidence intervals are obtained by nonparametric
bootstrap resampling. Three interval types are available:
"bca" - bias-corrected and accelerated interval.
"perc" - percentile interval.
"norm" - normal-approximation interval.
A one-row data.frame with the following columns:
Estimate: character string identifying the reported coefficient.
AD: average absolute difference between all pairs of item scores.
APD: average proportional distance.
lwr.ci: lower confidence bound for APD when ci = TRUE;
otherwise NA.
upr.ci: upper confidence bound for APD when ci = TRUE;
otherwise NA.
APD quantifies the average disagreement between item scores on a 0 to 1 scale. The following informal guidelines may help interpretation:
APD < 0.20: typically indicates very good internal consistency.
0.20 <= APD <= 0.25: often acceptable depending on the construct.
APD > 0.25: may signal weaker internal consistency or heterogeneous item content.
These values were suggested by Sturman et al. (2009), but they are not strict cutoffs and should be interpreted alongside other reliability evidence (e.g., alpha, omega) and substantive test characteristics.
Sturman, E. D., Cribbie, R. A., & Flett, G. L. (2009). The average distance between item values: A novel approach for estimating internal consistency. Journal of Psychoeducational Assessment, 27(5), 409-420. doi:10.1177/0734282908330937
set.seed(123) x <- data.frame(matrix(sample(1:5, 200 * 5, replace = TRUE), ncol = 5)) # APD without confidence interval APD(x, ncat = 5, ci = FALSE, conf.level = 0.95, B = 500, cimethod = "perc", nd = 3) # APD with 95% percentile confidence interval APD(x, ncat = 5, ci = TRUE, conf.level = 0.95, B = 300, cimethod = "perc", nd = 3) # APD with BCa confidence interval APD(x, ncat = 5, ci = TRUE, conf.level = 0.95, B = 300, cimethod = "bca", nd = 3)set.seed(123) x <- data.frame(matrix(sample(1:5, 200 * 5, replace = TRUE), ncol = 5)) # APD without confidence interval APD(x, ncat = 5, ci = FALSE, conf.level = 0.95, B = 500, cimethod = "perc", nd = 3) # APD with 95% percentile confidence interval APD(x, ncat = 5, ci = TRUE, conf.level = 0.95, B = 300, cimethod = "perc", nd = 3) # APD with BCa confidence interval APD(x, ncat = 5, ci = TRUE, conf.level = 0.95, B = 300, cimethod = "bca", nd = 3)
Computes the item-level Average Proportional Distance (APD) for a single data frame or matrix of item responses. For each item, the function calculates its average absolute discrepancy against all remaining items across respondents, and rescales it to the proportional metric. For a scale with p items and K response categories, the total APD is defined as the average absolute discrepancy across all within-person item pairs, divided by K-1. Extending this logic, the item-level APD for item j is the average absolute discrepancy between that item and all remaining items across respondents, also divided by K-1. Under this definition, the total APD equals the mean of the item-level APD values.
APDitem( data, ncat, ci = FALSE, conf.level = 0.95, B = 500, cimethod = c("perc", "bca", "norm") )APDitem( data, ncat, ci = FALSE, conf.level = 0.95, B = 500, cimethod = c("perc", "bca", "norm") )
data |
A |
ncat |
Integer. Number of response categories for the items
(e.g., |
ci |
Logical. Should bootstrap confidence intervals be computed?
Default is |
conf.level |
Numeric. Confidence level for the intervals.
Default is |
B |
Integer. Number of bootstrap resamples. Default is |
cimethod |
Character. Confidence interval method:
|
For each item , the average distance is computed as:
The proportional index is:
Under this definition, the mean of the item-level APD values equals the total APD computed from the same data matrix.
When ci = TRUE, bootstrap confidence intervals are computed for the
item-level APD values.
A data.frame with one row per item and the following columns:
item: item name.
AvDiff: average absolute discrepancy of the item against all remaining items.
APD: proportional item-level APD.
%cont: percentage contribution of the item to the sum of item-level APD values.
lwr.ci: lower confidence bound (if ci = TRUE).
upr.ci: upper confidence bound (if ci = TRUE).
Sturman, D., Cribbie, R. A., & Flett, G. L. (2009). The average distance between item values: A novel approach for estimating internal consistency. Journal of Psychoeducational Assessment, 27(5), 409-420. doi:10.1177/0734282908330937
Computes item-level Average Proportional Distance (APD) separately for each group defined by a grouping variable.
Computes the item-level Average Proportional Distance (APD) separately within multiple groups defined by a grouping variable.
APDitemmg( data, group, ncat, ci = FALSE, conf.level = 0.95, B = 500, cimethod = c("perc", "bca", "norm") ) APDitemmg( data, group, ncat, ci = FALSE, conf.level = 0.95, B = 500, cimethod = c("perc", "bca", "norm") )APDitemmg( data, group, ncat, ci = FALSE, conf.level = 0.95, B = 500, cimethod = c("perc", "bca", "norm") ) APDitemmg( data, group, ncat, ci = FALSE, conf.level = 0.95, B = 500, cimethod = c("perc", "bca", "norm") )
data |
A |
group |
A grouping variable. It can be:
|
ncat |
Integer. Number of response categories for the items
(e.g., |
ci |
Logical. Should bootstrap confidence intervals be computed?
Default is |
conf.level |
Numeric (0–1). Confidence level for bootstrap
confidence intervals. Default is |
B |
Integer. Number of bootstrap resamples used when
|
cimethod |
Character. Type of bootstrap confidence interval. Available options are:
|
The function splits the data according to group, applies
APDitem() to each subgroup, and returns a named list of results.
APDitemmg() extends the logic of APDitem() to multigroup
settings by estimating item-level APD indices independently within each group.
For each item, the procedure computes its absolute discrepancy with all remaining items across respondents within the same group, averages those discrepancies, and rescales the result to the proportional metric:
where is the average absolute discrepancy involving item
, and is the number of response categories.
Conceptually, this means that for each item, its absolute discrepancy with all other items is computed across respondents and averaged. This extension is congruent with the spirit of the original APD method, because Sturman et al. (2009) emphasized that APD provides direct information about differences among item scores and penalizes large average discrepancies between items.
The resulting item-level APD values provide a fine-grained diagnostic of the contribution of each item to the overall response inconsistency within each group.
When ci = TRUE, bootstrap confidence intervals are computed
independently for each item within each group.
A named list. Each element corresponds to one group and contains a
data.frame with columns:
item, AvDiff, APD, %cont, lwr.ci, and upr.ci
(the last two only if ci = TRUE).
A named list in which each element corresponds to a group.
Each group contains a data.frame with the following columns:
item: item name.
AvDiff: average absolute discrepancy involving the item.
APD: proportional item-level APD value.
%cont: percentage contribution of the item to the sum
of item-level APD values within the group.
lwr.ci: lower confidence interval bound (if ci = TRUE).
upr.ci: upper confidence interval bound (if ci = TRUE).
Sturman, D., Cribbie, R. A., & Flett, G. L. (2009). The average distance between item values: A novel approach for estimating internal consistency. Journal of Psychoeducational Assessment, 27(5), 409-420. doi:10.1177/0734282908330937
set.seed(123) dat <- data.frame( group = rep(c("A", "B"), each = 100), Item1 = sample(1:5, 200, replace = TRUE), Item2 = sample(1:5, 200, replace = TRUE), Item3 = sample(1:5, 200, replace = TRUE), Item4 = sample(1:5, 200, replace = TRUE) ) APDitemmg( data = dat, group = "group", ncat = 5, ci = FALSE )set.seed(123) dat <- data.frame( group = rep(c("A", "B"), each = 100), Item1 = sample(1:5, 200, replace = TRUE), Item2 = sample(1:5, 200, replace = TRUE), Item3 = sample(1:5, 200, replace = TRUE), Item4 = sample(1:5, 200, replace = TRUE) ) APDitemmg( data = dat, group = "group", ncat = 5, ci = FALSE )
Computes the Average Proportional Distance (APD) for two or more groups.
APD is an index of internal consistency based on the average absolute
difference between item scores, scaled to the range by
dividing by ncat - 1.
For each group, the function can optionally estimate bootstrap confidence intervals. Pairwise differences in APD between groups are then quantified using a MOVER-type (Method Of Variance Estimates Recovery) confidence interval, which combines the uncertainty of the two APD estimates. This MOVER approach is considered experimental but reasonable for exploratory comparison of APD values across groups. Note: Missing values are handled by pairwise deletion at the level of item differences. That is, a given paired difference is omitted only when one or both item responses involved in that difference are missing.
APDmg( data, ncat, group, ci = TRUE, conf.level = 0.95, B = 1000, cimethod = "bca", nd = 3 )APDmg( data, ncat, group, ci = TRUE, conf.level = 0.95, B = 1000, cimethod = "bca", nd = 3 )
data |
A |
ncat |
Integer. Number of response categories for the items. This is
used to scale the average absolute difference to the proportional metric
|
group |
A vector (factor, character, or numeric) with the group
membership for each row in |
ci |
Logical. If |
conf.level |
Confidence level for the bootstrap confidence intervals.
Default is |
B |
Integer. Number of bootstrap resamples used to estimate confidence
intervals within each group. Default is |
cimethod |
Character string indicating the bootstrap method passed
to |
nd |
Integer. Number of digits for the output. Default is #' @details The function applies a MOVER-type (Method Of Variance Estimates Recovery) approach for constructing confidence intervals for the difference in APD between groups. MOVER methods combine two confidence intervals into a confidence interval for their difference, relying only on the endpoints of the original intervals rather than on asymptotic distributional assumptions. This family of methods has been shown to perform well in related problems, such as confidence intervals for differences in proportions or risk differences (Newcombe, 1998; Zou & Donner, 2008). The implementation used here adapts the simple MOVER formula for independent estimates:
where This MOVER-based interval is considered experimental for APD because, unlike proportions or risk measures, APD has no established sampling distribution or variance expressions for combining confidence intervals. Nonetheless, MOVER provides a transparent and distribution-free approximation that incorporates the uncertainty from both groups' APD estimates. The resulting intervals are intended for exploratory interpretation rather than formal inference. |
A list with two elements:
group_results: A data.frame containing, for each group:
group: Group label.
APD: Estimated Average Proportional Distance.
LCI: Lower confidence limit (or NA if ci = FALSE).
UCI: Upper confidence limit (or NA if ci = FALSE).
comparisons: A data.frame containing all pairwise
comparisons between groups:
group1, group2: The groups compared.
Difference: APD difference (APD_group1 - APD_group2).
Lower_CI, Upper_CI: MOVER-based confidence interval
for the difference. Empty if only one group is present.
Newcombe, R. G. (1998). Interval estimation for the difference between independent proportions: comparison of eleven methods. Statistics in Medicine, 17, 873-890. doi:10.1002/(SICI)1097-0258(19980430)17:8<873::AID-SIM779>3.0.CO;2-I
Sturman, D., Cribbie, R. A., & Flett, G. L. (2009). The average distance between item values: A novel approach for estimating internal consistency. Journal of Psychoeducational Assessment, 27(5), 409-420. doi:10.1177/0734282908330937
Zou, G. Y., & Donner, A. (2008). Construction of confidence limits about effect measures: A general approach. Statistics in Medicine, 27, 1693-1702. doi:10.1002/sim.3095
set.seed(123) # Simulated data: 30 respondents, 5 items, 2 groups dat <- data.frame( item1 = sample(1:5, 30, replace = TRUE), item2 = sample(1:5, 30, replace = TRUE), item3 = sample(1:5, 30, replace = TRUE), item4 = sample(1:5, 30, replace = TRUE), item5 = sample(1:5, 30, replace = TRUE) ) grp <- rep(c("Group_A", "Group_B"), each = 15) res <- APDmg(data = dat, ncat = 5, group = grp, ci = TRUE, conf.level = 0.95, B = 200, cimethod = "bca") res$APD.group res$comparisonsset.seed(123) # Simulated data: 30 respondents, 5 items, 2 groups dat <- data.frame( item1 = sample(1:5, 30, replace = TRUE), item2 = sample(1:5, 30, replace = TRUE), item3 = sample(1:5, 30, replace = TRUE), item4 = sample(1:5, 30, replace = TRUE), item5 = sample(1:5, 30, replace = TRUE) ) grp <- rep(c("Group_A", "Group_B"), each = 15) res <- APDmg(data = dat, ncat = 5, group = grp, ci = TRUE, conf.level = 0.95, B = 200, cimethod = "bca") res$APD.group res$comparisons
Computes the root-mean-square inter-item correlation (RMSIIC), introduced by Meyer (1975) as a measure of the average inter-item association based on the squared correlation matrix. The function can also compute group-specific estimates and pairwise group comparisons using the MOVER method.
rmsiic( data, method = c("pearson", "spearman"), nd = 3, ci = FALSE, B = 1000, conf.level = 0.95, method.ci = c("perc", "bca", "norm"), group = NULL )rmsiic( data, method = c("pearson", "spearman"), nd = 3, ci = FALSE, B = 1000, conf.level = 0.95, method.ci = c("perc", "bca", "norm"), group = NULL )
data |
A numeric data frame or matrix with items in columns. Only complete cases are used automatically. |
method |
Type of correlation: |
nd |
Number of digits for rounding. Default is 3. |
ci |
Logical. If |
B |
Number of bootstrap replications. Default is 1000. |
conf.level |
Confidence level for the interval. Default is 0.95. |
method.ci |
Type of bootstrap interval: |
group |
Optional vector indicating group membership (same length as
|
Let be the correlation matrix of a set of items.
Meyer (1975) defined the root-mean-square inter-item correlation as:
where denotes the trace of the squared correlation
matrix. This equals the square root of the average squared inter-item
correlation, excluding the diagonal.
Meyer argued that RMSIIC is preferable to the simple mean correlation because:
it treats negative correlations as positive contributions (via squaring), avoiding sign cancellation,
it gives proportionally more weight to strong correlations,
it reflects overall item homogeneity more sensitively.
When group is supplied, the statistic is computed independently within
each group. Differences between groups are evaluated using the MOVER method,
combining group-specific confidence intervals into an interval for the
difference without assuming asymptotic normality.
Bootstrap confidence intervals may be computed using percentile, BCa, or normal-based methods.
A list with:
group_results: A data frame with one row per group (or a single
row for the total sample), containing:
group: Group label.
n.items: Number of items.
rms.iic: RMSIIC estimate.
lwr.ci, upr.ci: Bootstrap confidence limits
(if ci=TRUE).
comparisons: A data frame with MOVER-based pairwise group
comparisons:
group1, group2: Groups being compared.
diff: Difference in RMSIIC (group1 - group2).
lwr.ci, upr.ci: MOVER confidence limits.
Meyer, E. P. (1975). A measure of the average intercorrelation. Educational and Psychological Measurement, 35(1), 67-72. doi:10.1177/001316447503500107
set.seed(123) X <- matrix(rnorm(200), ncol = 5) # Single-sample RMSIIC rmsiic(X) # Bootstrap CI rmsiic(X, ci = TRUE, B = 500) # Group comparison using MOVER g <- rep(c("A","B"), each = 20) rmsiic(X[1:40, ], group = g, ci = TRUE, B = 300)set.seed(123) X <- matrix(rnorm(200), ncol = 5) # Single-sample RMSIIC rmsiic(X) # Bootstrap CI rmsiic(X, ci = TRUE, B = 500) # Group comparison using MOVER g <- rep(c("A","B"), each = 20) rmsiic(X[1:40, ], group = g, ci = TRUE, B = 300)