| reliab_test {sjstats} | R Documentation |
These function compute various measures of internal consistencies for tests or item-scales of questionnaires.
reliab_test(x, scale.items = FALSE, digits = 3, out = c("txt", "viewer",
"browser"))
split_half(x, digits = 3)
cronb(x)
mic(x, cor.method = c("pearson", "spearman", "kendall"))
x |
Depending on the function, |
scale.items |
Logical, if |
digits |
Amount of digits for returned values. |
out |
Character vector, indicating whether the results should be printed
to console ( |
cor.method |
Correlation computation method. May be one of
|
reliab_test()This function calculates the item discriminations (corrected item-total
correlations for each item of x with the remaining items) and
the Cronbach's alpha for each item, if it was deleted from the scale.
split_half()This function calculates the split-half reliability for items in
the data frame x, including the Spearman-Brown adjustment.
Splitting is done by selecting odd versus even columns in x.
cronb()The Cronbach's Alpha value for x.
mic()This function calculates a mean inter-item-correlation, i.e.
a correlation matrix of x will be computed (unless
x is already a matrix as returned by the
cor-function) and the mean
of the sum of all item's correlation values is returned.
Requires either a data frame or a computed cor-object.
reliab_test()A data frame with the corrected item-total correlations (item discrimination,
column item.discr) and Cronbach's alpha (if item deleted, column
alpha.if.deleted) for each item of the scale, or NULL
if data frame had too less columns.
split_half()A list with two values: the split-half reliability splithalf and
the Spearman-Brown corrected split-half reliability spearmanbrown.
cronb()The Cronbach's Alpha value for x.
mic()The mean inter-item-correlation value for x.
reliab_test() is similar to a basic reliability test
in SPSS. The correlations in the Item-Total-Statistic are a computed
correlation of each item against the sum of the remaining items
(which are thus treated as one item).
For split_half() and cronb(), a value closer to 1 indicates
greater internal consistency.
For the mean inter-item-correlation:
“Ideally, the average inter-item correlation for a set of
items should be between .20 and .40, suggesting that while the
items are reasonably homogenous, they do contain sufficiently
unique variance so as to not be isomorphic with each other.
When values are lower than .20, then the items may not be
representative of the same content domain. If values are higher than
.40, the items may be only capturing a small bandwidth of the construct.”
(Piedmont 2014)
Spearman C. 1910. Correlation calculated from faulty data. British Journal of Psychology (3): 271–295. doi: 10.1111/j.2044-8295.1910.tb00206.x
Brown W. 1910. Some experimental results in the correlation of mental abilities. British Journal of Psychology (3): 296–322. doi: 10.1111/j.2044-8295.1910.tb00207.x
Piedmont RL. 2014. Inter-item Correlations. In: Michalos AC (eds) Encyclopedia of Quality of Life and Well-Being Research. Dordrecht: Springer, 3303-3304. doi: 10.1007/978-94-007-0753-5_1493
library(sjlabelled)
# Data from the EUROFAMCARE sample dataset
data(efc)
# retrieve variable and value labels
varlabs <- get_label(efc)
# recveive first item of COPE-index scale
start <- which(colnames(efc) == "c82cop1")
# recveive last item of COPE-index scale
end <- which(colnames(efc) == "c90cop9")
# create data frame with COPE-index scale
x <- efc[, c(start:end)]
colnames(x) <- varlabs[c(start:end)]
# reliability tests
reliab_test(x)
# split-half-reliability
split_half(x)
# cronbach's alpha
cronb(x)
# mean inter-item-correlation
mic(x)
## Not run:
library(sjPlot)
sjt.df(reliab_test(x), describe = FALSE, show.cmmn.row = TRUE,
string.cmmn = sprintf("Cronbach's α=%.2f", cronb(x)))
# Compute PCA on Cope-Index, and perform a
# reliability check on each extracted factor.
factors <- sjt.pca(x)$factor.index
findex <- sort(unique(factors))
library(sjPlot)
for (i in seq_len(length(findex))) {
rel.df <- subset(x, select = which(factors == findex[i]))
if (ncol(rel.df) >= 3) {
sjt.df(reliab_test(rel.df), describe = FALSE, show.cmmn.row = TRUE,
use.viewer = FALSE, title = "Item-Total-Statistic",
string.cmmn = sprintf("Scale's overall Cronbach's α=%.2f",
cronb(rel.df)))
}
}
## End(Not run)