Statistical Implicative Analysis (SIA)
sia.sirt.Rd
This function is a simplified implementation of statistical implicative analysis (Gras & Kuntz, 2008) which aims at deriving implications \(X_i \rightarrow X_j\). This means that solving item \(i\) implies solving item \(j\).
Arguments
- dat
Data frame with dichotomous item responses
- significance
Minimum implicative probability for inclusion of an arrow in the graph. The probability can be interpreted as a kind of significance level, i.e. higher probabilities indicate more probable implications.
Details
The test statistic for selection an implicative relation follows Gras and Kuntz (2008). Transitive arrows (implications) are removed from the graph. If some implications are symmetric, then only the more probable implication will be retained.
Value
A list with following entries
- adj.matrix
Adjacency matrix of the graph. Transitive and symmetric implications (arrows) have been removed.
- adj.pot
Adjacency matrix including all powers, i.e. all direct and indirect paths from item \(i\) to item \(j\).
- adj.matrix.trans
Adjacency matrix including transitive arrows.
- desc
List with descriptive statistics of the graph.
- desc.item
Descriptive statistics for each item.
- impl.int
Implication intensity (probability) as the basis for deciding the significance of an arrow
- impl.t
Corresponding \(t\) values of
impl.int
- impl.significance
Corresponding \(p\) values (significancies) of
impl.int
- conf.loev
Confidence according to Loevinger (see Gras & Kuntz, 2008). This values are just conditional probabilities \(P( X_j=1|X_i=1)\).
- graph.matr
Matrix containing all arrows. Can be used for example for the Rgraphviz package.
- graph.edges
Vector containing all edges of the graph, e.g. for the Rgraphviz package.
- igraph.matr
Matrix containing all arrows for the igraph package.
- igraph.obj
An object of the graph for the igraph package.
References
Gras, R., & Kuntz, P. (2008). An overview of the statistical implicative analysis (SIA) development. In R. Gras, E. Suzuki, F. Guillet, & F. Spagnolo (Eds.). Statistical Implicative Analysis (pp. 11-40). Springer, Berlin Heidelberg.
Note
For an implementation of statistical implicative analysis in the C.H.I.C. (Classification Hierarchique, Implicative et Cohesitive) software.
See https://ardm.eu/partenaires/logiciel-danalyse-de-donnees-c-h-i-c/.
See also
See also the IsingFit package for calculating a graph for dichotomous item responses using the Ising model.
Examples
#############################################################################
# EXAMPLE 1: SIA for data.read
#############################################################################
data(data.read)
dat <- data.read
res <- sirt::sia.sirt(dat, significance=.85 )
#*** plot results with igraph package
library(igraph)
plot( res$igraph.obj ) #, vertex.shape="rectangle", vertex.size=30 )
if (FALSE) {
#*** plot results with qgraph package
miceadds::library_install(qgraph)
qgraph::qgraph( res$adj.matrix )
#*** plot results with Rgraphviz package
# Rgraphviz can only be obtained from Bioconductor
# If it should be downloaded, select TRUE for the following lines
if (FALSE){
source("http://bioconductor.org/biocLite.R")
biocLite("Rgraphviz")
}
# define graph
grmatrix <- res$graph.matr
res.graph <- new("graphNEL", nodes=res$graph.edges, edgemode="directed")
# add edges
RR <- nrow(grmatrix)
for (rr in 1:RR){
res.graph <- Rgraphviz::addEdge(grmatrix[rr,1], grmatrix[rr,2], res.graph, 1)
}
# define cex sizes and shapes
V <- length(res$graph.edges)
size2 <- rep(16,V)
shape2 <- rep("rectangle", V )
names(shape2) <- names(size2) <- res$graph.edges
# plot graph
Rgraphviz::plot( res.graph, nodeAttrs=list("fontsize"=size2, "shape"=shape2) )
}