# Test for MMI using the second-order Rao-Scott adjustment
test.mmi.rs2 <- MI.test(data = farmer1, I = 1, J = 5, type = "rs2")
test.mmi.rs2
# Test for MMI using all three approaches
# A small B is used for demonstration purposes; normally, a larger B should be used
test.mmi.all <- MI.test(data = farmer1, I = 1, J = 5, type = "all", B = 99,
plot.hist = TRUE)
test.mmi.all
# Use MI.test() with summary data
# Convert raw data file to summary file for this example
farmer1.irdframe <- item.response.table(data = farmer1, I = 1, J = 5, create.dataframe =
TRUE)
# Test for MMI using the Bonferroni adjustment
test.mmi.bon <- MI.test(data = farmer1.irdframe, I = 1, J = 5, type = "bon",
summary.data = TRUE)
test.mmi.bon
# Test for SPMI using the second-order Rao-Scott adjustment
test.spmi.rs2 <- MI.test(data = farmer2, I = 3, J = 4, type = "rs2")
test.spmi.rs2
# Test for MMI using the marginal logit model approach
library(geepack)
n<-nrow(farmer1)
farmer1.id<-cbind(case=1:n, farmer1)
# Reshape raw data into long format as required by geeglm() function
# Assumes 3:ncol(farmer1.id) corresponds to MRCV items
farmer1.gee<-reshape(data = farmer1.id,
varying = names(farmer1.id)[3:ncol(farmer1.id)],
v.names = "response", timevar = "item", idvar = "case",
direction = "long")
row.names(farmer1.gee)<-NULL
farmer1.gee[,2:3]<-lapply(farmer1.gee[,2:3], factor)
# Data frame must be ordered by case
farmer1.gee<-farmer1.gee[order(farmer1.gee$case),]
head(farmer1.gee)
tail(farmer1.gee)
mod.fit.H0<-geeglm(formula = response ~ item, family = binomial(link = logit),
data = farmer1.gee, na.action = na.omit, id = case,
corstr = "unstructured")
mod.fit.HA<-geeglm(formula = response ~ Ed*item, family = binomial(link = logit),
data = farmer1.gee, na.action = na.omit, id = case,
corstr = "unstructured")
# Compute Wald test
anova(mod.fit.HA, mod.fit.H0)
Run the code above in your browser using DataLab