# identifies random outliers given a p-criterion, from an lmer/lmer2 object # Kyle Gorman # todo: make this print prettier ranOutliers = function(model, p = 0.05) { est = ranef(model) se = se.ranef(model) groupings = names(est) i = 1 # keep track of where we are grouping for(zest in est) { # over groupings j = 1 # keep track of where we are in se's x-given-group for(effect in names(zest)) { # over effects in grouping k = 1 levels = row.names(zest[effect]) print(paste(effect, groupings[i], sep='|')) for(val in zest[effect][,]) { pval = pnorm(val, 0, se[[i]][k,j]) if(pval < p) { # signif print(paste(' ', levels[k], val, pval)) } k = k + 1 } j = j + 1 } i = i + 1 } }