Solved – Checking for outliers in a glmer (lme4 package) with 3 random factors

cooks-distancelme4-nlmeoutliersr

I have a question relating to the checking for outliers and / or influential points in my dataset using a glmer model with 3 random variables. I'm investigating the detection rate (SumDetections) of receivers over increasing distance (sc.c.distance), and the effect of environmental influences on this (depth, temperature and wind) and how this differs between different transmitters used, controlling for random effects of receiver ID, replicate and area. I found that the influence.ME might be of help, so I checked it out.

In the manual I read that this package is only able to delete levels of 1 single grouping factor or 1 data point per time over the whole data set. Unless I read the package info incorrectly, this package cannot do what I'm looking for. I'm looking for a way to check for outliers nested within 4 grouping layers.

How my data is organized is as follows: First my data discerns between Areas. Within areas, multiple replicates were done. Each replicate consisted of 5 distances at which the detection rate was tested. For each distance, 20 receivers were tested.

My model looks like this:

m <- lmer(SumDetections ~ tm + sc.c.distance + tm:sc.c.distance + c.tm.depth + 
             c.receiver.depth + c.temp + c.wind + (1|replicate) + (1|SUR.ID) + (1|Area), 
             data = df3, family = poisson)

My questions are:

  • Is it possible to check for outliers of which the data is nested within 3 layers with use of influence.me?
  • If so, how should I specify the command to get what I'm looking for, and how should I interpret the returned data by the Cook's distance or dfbetas?
  • If not, is there another package that allows me to check for outliers?

Best Answer

try the romr.fnc in the LMERConvenienceFunctions to remove outliers

df3.trimmed = romr.fnc(m, df3, trim = 2.5)
df3.trimmed = df3.trimmed$data

update initial model on trimmed data

mB = update(m1)