Skip to content

Commit 41fcf45

Browse files
committed
fix splithalf error when two variables
1 parent 4129b78 commit 41fcf45

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

R/unidimensionalReliabilityFrequentist.R

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#' @export
33
unidimensionalReliabilityFrequentist <- function(jaspResults, dataset, options) {
44

5+
56
# check for listwise deletion
67
datasetOld <- dataset
78
dataset <- .handleData(datasetOld, options)
@@ -952,8 +953,8 @@ unidimensionalReliabilityFrequentist <- function(jaspResults, dataset, options)
952953
out[["conf"]][["scaleSplithalf"]] <- quantile(samp, probs = c((1 - ciValue) / 2, 1 - (1 - ciValue) / 2), na.rm = TRUE)
953954
out[["se"]][["scaleSplithalf"]] <- sd(samp, na.rm = TRUE)
954955
} else { # interval analytic
955-
partSums1 <- rowSums(dtUse[, splits[[1]]])
956-
partSums2 <- rowSums(dtUse[, splits[[2]]])
956+
partSums1 <- rowSums(dtUse[, splits[[1]], drop = FALSE])
957+
partSums2 <- rowSums(dtUse[, splits[[2]], drop = FALSE])
957958

958959
out[["se"]][["scaleSplithalf"]] <- .seSplithalf(partSums1, partSums2, model[["use.cases"]])
959960
out[["conf"]][["scaleSplithalf"]] <- out[["est"]][["scaleSplithalf"]] + c(-1, 1) * out[["se"]][["scaleSplithalf"]] * qnorm(1 - (1 - ciValue) / 2)
@@ -1168,31 +1169,33 @@ unidimensionalReliabilityFrequentist <- function(jaspResults, dataset, options)
11681169
out[["est"]][["itemDeletedSplithalf"]] <- c(NA, NA)
11691170
out[["lower"]][["itemDeletedSplithalf"]] <- c(NA, NA)
11701171
out[["upper"]][["itemDeletedSplithalf"]] <- c(NA, NA)
1171-
}
1172-
1173-
for (i in seq_len(ncol(dtUse))) {
1174-
dtCut <- dtUse[, -i, drop = FALSE]
1175-
nit <- ncol(dtCut)
1176-
splits <- split(seq_len(nit), 1:2)
1177-
est <- .splithalfData(dtCut, splits = splits, useCase = model[["use.cases"]])
1178-
out[["est"]][["itemDeletedSplithalf"]][i] <- est
1172+
} else {
1173+
for (i in seq_len(ncol(dtUse))) {
1174+
dtCut <- dtUse[, -i, drop = FALSE]
1175+
nit <- ncol(dtCut)
1176+
splits <- split(seq_len(nit), 1:2)
1177+
est <- .splithalfData(dtCut, splits = splits, useCase = model[["use.cases"]])
1178+
out[["est"]][["itemDeletedSplithalf"]][i] <- est
11791179

1180-
if (options[["intervalMethod"]] == "analytic") {
1180+
if (options[["intervalMethod"]] == "analytic") {
11811181

1182-
partSums1 <- rowSums(dtCut[, splits[[1]]])
1183-
partSums2 <- rowSums(dtCut[, splits[[2]]])
1182+
partSums1 <- rowSums(dtCut[, splits[[1]]])
1183+
partSums2 <- rowSums(dtCut[, splits[[2]]])
11841184

1185-
se <- .seSplithalf(partSums1, partSums2, model[["use.cases"]])
1186-
conf <- est + c(-1, 1) * se * qnorm(1 - (1 - ciValue) / 2)
1187-
out[["lower"]][["itemDeletedSplithalf"]][i] <- conf[1]
1188-
out[["upper"]][["itemDeletedSplithalf"]][i] <- conf[2]
1189-
} else {
1190-
itemSamp <- model[["itemDeletedSplithalf"]][["itemSamp"]]
1191-
conf <- quantile(itemSamp[, i], probs = c((1 - ciValue) / 2, 1 - (1 - ciValue) / 2), na.rm = TRUE)
1192-
out[["lower"]][["itemDeletedSplithalf"]][i] <- conf[1]
1193-
out[["upper"]][["itemDeletedSplithalf"]][i] <- conf[2]
1185+
se <- .seSplithalf(partSums1, partSums2, model[["use.cases"]])
1186+
conf <- est + c(-1, 1) * se * qnorm(1 - (1 - ciValue) / 2)
1187+
out[["lower"]][["itemDeletedSplithalf"]][i] <- conf[1]
1188+
out[["upper"]][["itemDeletedSplithalf"]][i] <- conf[2]
1189+
} else {
1190+
itemSamp <- model[["itemDeletedSplithalf"]][["itemSamp"]]
1191+
conf <- quantile(itemSamp[, i], probs = c((1 - ciValue) / 2, 1 - (1 - ciValue) / 2), na.rm = TRUE)
1192+
out[["lower"]][["itemDeletedSplithalf"]][i] <- conf[1]
1193+
out[["upper"]][["itemDeletedSplithalf"]][i] <- conf[2]
1194+
}
11941195
}
11951196
}
1197+
1198+
11961199
}
11971200

11981201
# item-rest correlation

0 commit comments

Comments
 (0)