Lidar com o ajuste singular em modelos mistos

16

Digamos que temos um modelo

mod <- Y ~ X*Condition + (X*Condition|subject)

# Y = logit variable  
# X = continuous variable  
# Condition = values A and B, dummy coded; the design is repeated 
#             so all participants go through both Conditions  
# subject = random effects for different subjects 

summary(model)
Random effects:
 Groups  Name             Variance Std.Dev. Corr             
 subject (Intercept)      0.85052  0.9222                    
         X                0.08427  0.2903   -1.00            
         ConditionB       0.54367  0.7373   -0.37  0.37      
         X:ConditionB     0.14812  0.3849    0.26 -0.26 -0.56
Number of obs: 39401, groups:  subject, 219

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)       2.49686    0.06909   36.14  < 2e-16 ***
X                -1.03854    0.03812  -27.24  < 2e-16 ***
ConditionB       -0.19707    0.06382   -3.09  0.00202 ** 
X:ConditionB      0.22809    0.05356    4.26 2.06e-05 ***

Aqui observamos um ajuste singular, porque a correlação entre efeitos de interceptação e x aleatórios é -1. Agora, de acordo com este link útil, uma maneira de lidar com esse modelo é remover efeitos aleatórios de ordem superior (por exemplo, X: CondiçãoB) e ver se isso faz diferença ao testar a singularidade. O outro é usar a abordagem bayesiana, por exemplo, o blmepacote para evitar a singularidade.

Qual é o método preferido e por quê?

Estou perguntando isso porque usar o primeiro ou o segundo leva a resultados diferentes - no primeiro caso, removerei o efeito aleatório X: ConditionB e não poderei estimar a correlação entre os efeitos aleatórios X e X: ConditionB. Por outro lado, usar blmeme permite manter X: ConditionB e estimar a correlação fornecida. Não vejo razão para usar as estimativas não bayesianas e remover efeitos aleatórios quando ocorrem ajustes singulares quando posso estimar tudo com a abordagem bayesiana.

Alguém pode me explicar os benefícios e problemas usando qualquer um dos métodos para lidar com ataques singulares?

Obrigado.

Usuário33268
fonte
O que você está preocupado com esse corr = -1? É correlação entre efeitos aleatórios.
user158565
Então, cada sujeito fornece duas medidas de Y, uma na condição A e outra na condição B? Se isso for verdade, você também pode nos dizer se o valor da variável contínua X muda para qualquer sujeito entre as condições A e B?
Isabella Ghement
Por que você coloca Condition nos efeitos aleatórios? Você já testou se for necessário?
Dimitris Rizopoulos
@ user158565 sim, mas isso indica singuarity ...
User33268
@IsabellaGhement Indeed. Sim, é verdade, x muda para um determinado assunto entre A e B. Além disso, não há razão teórica para assumir que a regressão de Y sobre X é diferente para cada assunto
User33268

Respostas:

21

Quando você obtém um ajuste singular, isso geralmente indica que o modelo está super ajustado, ou seja, a estrutura de efeitos aleatórios é muito complexa para ser suportada pelos dados, o que naturalmente leva ao aconselhamento para remover a parte mais complexa dos efeitos aleatórios estrutura (geralmente pistas aleatórias). O benefício dessa abordagem é que ela leva a um modelo mais parcimonioso que não é excessivamente ajustado.

No entanto, antes de fazer qualquer coisa, você tem um bom motivo para querer X, Conditione a interação deles, para variar de assunto em primeiro lugar? A teoria de como os dados são gerados sugere isso?

Se você deseja ajustar o modelo com a estrutura máxima de efeitos aleatórios e lme4obtiver um ajuste singular, o ajuste do mesmo modelo em uma estrutura bayesiana pode muito bem informá-lo por que lme4 houve problemas, inspecionando traços e quão bem as várias estimativas de parâmetros convergem . A vantagem de adotar a abordagem bayesiana é que, ao fazer isso, você poderá descobrir um problema com o modelo original, ou seja. o motivo pelo qual a estrutura máxima de efeitos aleatórios não é suportada pelos dados) ou pode descobrir por que lme4não é possível ajustar o modelo. Eu encontrei situações em que um modelo bayesiano não converge bem, a menos que sejam usados ​​anteriores informativos - o que pode ou não ser bom.

Em suma, ambas as abordagens têm mérito.

No entanto, eu sempre começaria de um lugar onde o modelo inicial é parcimonioso e informado pelo conhecimento de domínio especializado para determinar a estrutura de efeitos aleatórios mais apropriada. A especificação de variáveis ​​de agrupamento é relativamente fácil, mas as inclinações aleatórias geralmente não precisam ser incluídas. Apenas inclua-os se fizerem sentido teórico e se forem suportados pelos dados.

Edit: É mencionado nos comentários que existem boas razões teóricas para ajustar a estrutura máxima de efeitos aleatórios. Assim, uma maneira relativamente fácil para prosseguir com um modelo Bayesian equivalente é trocar a chamada para glmercom stan_glmera partir do rstanarmpacote - que é projetado para ser plug and play. Ele possui prévios padrão, para que você possa montar rapidamente um modelo. O pacote também possui muitas ferramentas para avaliar a convergência. Se você achar que todos os parâmetros estão convergindo para valores plausíveis, está tudo bem. No entanto, pode haver uma série de problemas - por exemplo, uma variação sendo estimada em ou abaixo de zero, ou uma estimativa que continua a flutuar. O site mc-stan.org possui muitas informações e um fórum de usuários.

Robert Long
fonte
1
Sim, tenho boas razões teóricas para supor que a regressão de Y em X deve variar entre os sujeitos de maneira diferente para as condições A e B. A regressão implica estilo de processamento. Você pode me dar mais algumas informações sobre como interpretar gráficos de rastreamento como uma ferramenta de diagnóstico para causas de singularidade?
User33268
11

Este é um tópico muito interessante, com respostas e comentários interessantes! Como isso ainda não foi mencionado, eu gostaria de ressaltar que temos muito poucos dados para cada sujeito (como eu o entendo). De fato, cada sujeito possui apenas dois valores para cada variável de resposta Y, variável categórica Condição e variável contínua X. Em particular, sabemos que os dois valores da Condição são A e B.

Se seguíssemos a modelagem de regressão em dois estágios em vez da modelagem de efeitos mistos, não poderíamos ajustar um modelo de regressão linear aos dados de um sujeito específico, conforme ilustrado no exemplo de brinquedo abaixo para um dos sujeitos:

y <- c(4, 7)
condition <- c("A", "B")
condition <- factor(condition)
x <- c(0.2, 0.4)

m <- lm(y ~ condition*x)
summary(m)

A saída desse modelo específico de assunto seria:

Call:
lm(formula = y ~ condition * x)

Residuals:
ALL 2 residuals are 0: no residual degrees of freedom!

Coefficients: (2 not defined because of singularities)
         Estimate Std. Error t value Pr(>|t|)
(Intercept)         4         NA      NA       NA
conditionB          3         NA      NA       NA
x                  NA         NA      NA       NA
conditionB:x       NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:      1,     Adjusted R-squared:    NaN 
F-statistic:   NaN on 1 and 0 DF,  p-value: NA

Observe que o ajuste do modelo sofre singularidades, pois estamos tentando estimar 4 coeficientes de regressão mais o desvio padrão do erro usando apenas 2 observações.

As singularidades persistiriam mesmo se observássemos esse assunto duas vezes - e não uma vez - em cada condição. No entanto, se observássemos o sujeito três vezes sob cada condição, nos livraríamos das singularidades:

y <- c(4, 7, 3, 5, 1, 2)
condition <- c("A", "B", "A","B","A","B")
condition <- factor(condition)
x <- c(0.2, 0.4, 0.1, 0.3, 0.3, 0.5)

m2 <- lm(y ~ condition*x)
summary(m2)

Aqui está a saída R correspondente para este segundo exemplo, da qual as singularidades desapareceram:

>     summary(m2)

Call:
lm(formula = y ~ condition * x)

Residuals:
    1       2       3       4       5       6 
1.3333  2.3333 -0.6667 -1.1667 -0.6667 -1.1667 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept)     4.667      3.555   1.313    0.320
conditionB      6.000      7.601   0.789    0.513
x             -10.000     16.457  -0.608    0.605
conditionB:x   -5.000     23.274  -0.215    0.850

Residual standard error: 2.327 on 2 degrees of freedom
Multiple R-squared:  0.5357,    Adjusted R-squared:  -0.1607 
F-statistic: 0.7692 on 3 and 2 DF,  p-value: 0.6079

Obviamente, o modelo de efeitos mistos não se encaixa em modelos de regressão linear separados e não relacionados para cada sujeito - se encaixa em modelos "relacionados" cujas interceptações e / ou inclinações divergem aleatoriamente sobre uma interceptação e / ou inclinação típica, de modo que os desvios aleatórios da interceptação típica e / ou inclinação típica seguem uma distribuição Normal com zero médio e algum desvio padrão desconhecido.

Mesmo assim, minha intuição sugere que o modelo de efeitos mistos está lutando com a pequena quantidade de observações - apenas 2 - disponíveis para cada sujeito. Quanto mais o modelo é carregado com inclinações aleatórias, mais provavelmente ele sofre. Suspeito que, se cada sujeito contribuísse com 6 observações em vez de 2 (ou seja, 3 por condição), não seria mais difícil acomodar todas as pistas aleatórias.

Parece-me que este poderia ser (?) Um caso em que o desenho atual do estudo não suporta as ambições complexas de modelagem - para sustentar essas ambições, seriam necessárias mais observações sob cada condição para cada sujeito (ou pelo menos para algumas das assuntos?). Esta é apenas a minha intuição, por isso espero que outras pessoas possam adicionar suas idéias às minhas observações acima. Agradeço antecipadamente!

Isabella Ghement
fonte
Eu tenho que corrigir você - cada participante tem 30 observações para ambos X e Y, nas condições A e B!
User33268
2
Ah, isso não foi indicado em sua resposta inicial, portanto seria impossível adivinhar quantas observações por assunto e condição você realmente tem. Há algo mais acontecendo então. Você tentou padronizar sua variável X? Isso ajuda o lme a se encaixar? Além disso, você examinou parcelas de Y vs. X (ou X padronizado) para Condição = A vs. Condição = B separadamente para cada sujeito? Isso pode lhe dar pistas adicionais sobre o que está acontecendo.
Isabella Ghement 28/11
Não padronizei x porque são dados de tempo de reação e é importante para a interpretação do coeficiente de regressão. No entanto, os dados foram centralizados. Vou olhar para lotes individuais, e ver ...
User33268
1
@ User33268 Estou um pouco atrasado para a festa, mas você ainda pode interpretar coeficientes padronizados, basta armazenar os valores usados ​​para dimensionar e depois retrotraduzir após executar o modelo.
Frans Rodenburg