Como extrair / calcular a alavancagem e as distâncias de Cook para modelos lineares de efeitos mistos

10

Alguém sabe como calcular (ou extrair) a alavancagem e as distâncias de Cook para um merobjeto de classe (obtido através do lme4pacote)? Eu gostaria de plotá-los para uma análise de resíduos.

Roey Angel
fonte

Respostas:

13

Você deve ter um olhar para o pacote R influence.ME. Ele permite calcular medidas de dados influentes para modelos de efeitos mistos gerados por lme4.

Um modelo de exemplo:

library(lme4)
model <- lmer(mpg ~ disp + (1 | cyl), mtcars)

A função influenceé a base para todas as etapas seguintes:

library(influence.ME)
infl <- influence(model, obs = TRUE)

Calcular a distância de Cook:

cooks.distance(infl)

Traçar a distância de Cook:

plot(infl, which = "cook")

insira a descrição da imagem aqui

Sven Hohenstein
fonte
Obrigado! Isso certamente ajuda. Que tal calcular a alavancagem para o gráfico de distância versus alavancagem de Cook?
amigos estão dizendo sobre roey angel
@ RoeyAngel Suponho que isso não seja possível com o influence.MEpacote. Infelizmente, não tenho uma solução para esta tarefa.
Sven Hohenstein
Não deveria ser infl <- influence(model, group = "cyl"), porque você especificou efeito aleatório como (1|cyl)? Eu não sei, eu não entendo nada disso, eu apenas instalei influência ... mas eu realmente não sei quando usar obs = TRUEe quando usar group...
Curioso
Gostaria de acrescentar o seguinte: Se você deseja obter o número da linha em que as distâncias D de Cook ocorrem - o mesmo número que ocorre na plotagem sem plotagem, você pode usar a seguinte fórmula r sobre os números das distâncias D de Cook com um corte valor off de, por exemplo, 0,1cooksD_data<-as.data.frame(cooks.distance(ft1)) cooksD_data_select<-cooksd[cooksD_data>0.1,drop=FALSE,] cooksD_oultiers<-as.numeric(rownames(cooksD_data_select))]
Elias Estatistics
Isso é melhor do que a hatvalues()função recomendada aqui ?
Curioso