Nothing
"plot.monotonicity.class" <-
function(x, items = all.items, curves = "both", ci = TRUE, alpha = .05, color = "black", transparancy = 20, ask = TRUE, ...){
up.lo.bound.mean <- function(n, alpha = .05){
n[n < 1e-10] <- 1e-10
n <- matrix(n)
p <- length(n)
scores <- rep(c(0:(p-1)),n)
m <- mean(scores)
ase <- sd(scores)/sqrt(sum(n))
z <- qnorm(1 - alpha/2)
matrix(c(m - z * ase, m + z * ase),1,2)
}
if(length(x) == 2) {
x2l <- x
for(lvl in 1:2){
x <- x2l[[lvl]]
def.par <- par(no.readonly = TRUE)
results <- x$results
m <- x$m
all.items <- 1:length(x$I.labels)
if (ask==TRUE) par("ask"=TRUE) else par("ask"=FALSE)
if (curves == "both") layout(matrix(c(1,2),1,2))
i <- 0; j <- 0
c1 <- as.numeric(col2rgb(color))
colorCi = rgb(c1[1], c1[2], c1[3], alpha = transparancy, maxColorValue = 255)
for (j in items){
plot.matrix <- results[[j]][[2]]
x.labels <- paste(plot.matrix[,2],"-",plot.matrix[,3],sep="")
if(curves=="both" | curves=="ISRF"){
est <- t(plot.matrix[,(m+4+2):(m+4+m)])
if(ci){
n = plot.matrix[,4]
n[n < 1e-10] = 1e-10
if (m > 2) se = t(apply(est, 1, function(x) sqrt((x - x^2)/n)))
if (m==2) se = sqrt((est - est^2)/n)
lo = (est-qnorm(1-alpha/2) * se)
lo[lo < 0] <- 0
up = (est+qnorm(1-alpha/2) * se)
up[up > 1] <- 1
}
plot(plot.matrix[,1],est[1,],
ylim=c(0,1),
xaxt = 'n',
xlab = "Rest score group",
ylab = "Item step response function",
type = "n")
title(paste0("Level ", lvl, ": ", results[[j]][[1]]))
axis(1, at=1:nrow(plot.matrix),labels=x.labels)
if(m==2){
if(ci) polygon(c((1:length(up))[!is.na(up)],rev((1:length(lo))[!is.na(lo)])),c(up[!is.na(up)],rev(lo[!is.na(lo)])), col=colorCi, border=NA)
lines(plot.matrix[,1],est, lwd=4, col = color)
}
if(m>2){
if(ci) for(i in 1:(m-1)) polygon(c((1:length(up[i,]))[!is.na(up[i,])],rev((1:length(lo[i,]))[!is.na(lo[i,])])),c(up[i,!is.na(up[i,])],rev(lo[i,!is.na(lo[i,])])),col=colorCi, border=NA)
for(i in 1:(m-1)) lines(plot.matrix[,1],est[i,], lwd=3, col = color)
}
}
if(curves=="both" | curves=="IRF"){
est <- t(plot.matrix[,m+5])
if(ci){
up.lo <- apply(plot.matrix[,1:m+4],1,up.lo.bound.mean, alpha)
lo <- up.lo[1,]
up <- up.lo[2,]
}
plot(plot.matrix[,1],est,
ylim = c(0, m - 1),
xaxt = 'n',
xlab = "Rest score group",
ylab = "Item response function",
type = "n",
lwd=3)
title(paste0("Level ", lvl, ": ", results[[j]][[1]]))
axis(1, at=1:nrow(plot.matrix),labels=x.labels)
if(ci) polygon(c((1:length(up))[!is.na(up)],rev((1:length(lo))[!is.na(lo)])),c(up[!is.na(up)],rev(lo[!is.na(lo)])),col = colorCi, border=NA)
lines(plot.matrix[,1],est, lwd=4, col = color)
}
}
invisible()
par(def.par)
}
} else {
def.par <- par(no.readonly = TRUE)
results <- x$results
m <- x$m
all.items <- 1:length(x$I.labels)
if (ask==TRUE) par("ask"=TRUE) else par("ask"=FALSE)
if (curves == "both") layout(matrix(c(1,2),1,2))
i <- 0; j <- 0
c1 <- as.numeric(col2rgb(color))
colorCi = rgb(c1[1], c1[2], c1[3], alpha = transparancy, maxColorValue = 255)
for (j in items){
plot.matrix <- results[[j]][[2]]
x.labels <- paste(plot.matrix[,2],"-",plot.matrix[,3],sep="")
if(curves=="both" | curves=="ISRF"){
est <- t(plot.matrix[,(m+4+2):(m+4+m)])
if(ci){
n = plot.matrix[,4]
n[n < 1e-10] = 1e-10
if (m > 2) se = t(apply(est, 1, function(x) sqrt((x - x^2)/n)))
if (m==2) se = sqrt((est - est^2)/n)
lo = (est-qnorm(1-alpha/2) * se)
lo[lo < 0] <- 0
up = (est+qnorm(1-alpha/2) * se)
up[up > 1] <- 1
}
plot(plot.matrix[,1],est[1,],
ylim=c(0,1),
xaxt = 'n',
xlab = "Rest score group",
ylab = "Item step response function",
type = "n")
title(results[[j]][[1]])
axis(1, at=1:nrow(plot.matrix),labels=x.labels)
if(m==2){
if(ci) polygon(c((1:length(up))[!is.na(up)],rev((1:length(lo))[!is.na(lo)])),c(up[!is.na(up)],rev(lo[!is.na(lo)])), col=colorCi, border=NA)
lines(plot.matrix[,1],est, lwd=4, col = color)
}
if(m>2){
if(ci) for(i in 1:(m-1)) polygon(c((1:length(up[i,]))[!is.na(up[i,])],rev((1:length(lo[i,]))[!is.na(lo[i,])])),c(up[i,!is.na(up[i,])],rev(lo[i,!is.na(lo[i,])])),col=colorCi, border=NA)
for(i in 1:(m-1)) lines(plot.matrix[,1],est[i,], lwd=3, col = color)
}
}
if(curves=="both" | curves=="IRF"){
est <- t(plot.matrix[,m+5])
if(ci){
up.lo <- apply(plot.matrix[,1:m+4],1,up.lo.bound.mean, alpha)
lo <- up.lo[1,]
up <- up.lo[2,]
}
plot(plot.matrix[,1],est,
ylim = c(0, m - 1),
xaxt = 'n',
xlab = "Rest score group",
ylab = "Item response function",
type = "n",
lwd=3)
title(results[[j]][[1]])
axis(1, at=1:nrow(plot.matrix),labels=x.labels)
if(ci) polygon(c((1:length(up))[!is.na(up)],rev((1:length(lo))[!is.na(lo)])),c(up[!is.na(up)],rev(lo[!is.na(lo)])),col = colorCi, border=NA)
lines(plot.matrix[,1],est, lwd=4, col = color)
}
}
invisible()
par(def.par)
}
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.