Regressão linear + confusão

8

Suponha que eu adoraria para acessar o tamanho do efeito e significado entre o resultado Y e variável X modificada confundidor Z .

Minha pergunta é que, se houver alguma diferença para determinar o tamanho e o significado do efeito de X entre o cenário a seguir.

  1. coloque variável e confusão em um modelo de regressão linear. Este modelo de regressão apenas se encaixam os meios de Y ~ X + Z , em seguida, calcular o coeficiente e o valor de p de X .
  2. Obtenha o residual R de Y ~ Z e ajuste o modelo de regressão de R ~ X e calcule o coeficiente e seu valor p de X (de R ~ X).

Eu aprendo o confundidor daqui .

Editar -----

Agradeço a resposta de @Gordon Smyth. No entanto, em um estudo de simulação (código abaixo), em que comparei a taxa de falsas descobertas do método1, do método2 e do método3 da resposta de Gordon Smyth, descobri surpreendentemente que o método2 tem uma taxa de falsos positivos bastante baixa.

Entendo que o método 1 é "manual" correto. Gostaria de saber o que exatamente está errado com o method2 logicamente? Além disso, "Todos os modelos estão errados, mas alguns são úteis".

p1 = p2 = p3 = c()
i=0
while(i<10000){
  y = rnorm(10)
  x = rnorm(10)
  c = rnorm(10)


  # method 1
  p1[i] = summary(lm(y~x + c))$coefficients[2,4]
  # method 2
  p2[i] = summary(lm(lm(y ~ c)$res ~ x))$coefficients[2,4]
  # method 3
  p3[i] = summary(lm(lm(y ~ c)$res~lm(x ~ c)$res))$coefficients[2,4]


  i = i+1
}


# number of false positive.
sum(p1<0.05) # 484
sum(p2<0.05) # 450
sum(p3<0.05) # 623
WCMC
fonte
1
Não estou claro por que você está surpreso que os três métodos estejam fazendo o que eu disse que eles fariam na minha resposta há um ano. Eu lhe disse que o método 2 seria conservador (que é o que você encontrou) e que o método 3 seria anti-conservador (que é novamente o que você encontrou). De qualquer forma, o problema real com o método 2 só aparece quando X e Z estão correlacionados entre si e com Y. Expandi minha resposta agora para explicar isso com mais detalhes. Agora, dou um exemplo numérico mostrando como o método 2 pode ser seriamente ruim.
Gordon Smyth

Respostas:

13

Você precisa ajustar X e Y para o fator de confusão

A primeira abordagem (usando regressão múltipla) está sempre correta. Sua segunda abordagem não está correta como você a declarou, mas pode ser feita quase correta com uma pequena alteração. Para fazer a segunda abordagem certa, você precisa regredir tanto e X separadamente em Z . Eu gosto de escrever Y . Z para os resíduos a partir da regressão de Y em Z e X . Z para os resíduos a partir da regressão de X e Z . Podemos interpretar Y . Z como Y ajustado para Z (igual ao seuYXZY.ZYZX.ZXZY.ZYZ ) e X . Z como X ajustado para Z . Você pode, então, regredir Y . Z em X . Z .RX.ZXZY.ZX.Z

Com essa alteração, as duas abordagens fornecerão o mesmo coeficiente de regressão e os mesmos resíduos. No entanto, a segunda abordagem ainda calculará incorretamente os graus de liberdade residuais como vez de n - 2 (onde n é o número de valores de dados para cada variável). Como resultado, a estatística de teste para X da segunda abordagem será um pouco grande demais e o valor p será um pouco pequeno demais. Se o número de observações n for grande, as duas abordagens convergirão e essa diferença não importará.n1n2nXn

É fácil perceber por que os graus residuais de liberdade da segunda abordagem não serão corretos. Ambas as abordagens regressão em ambos X e Z . A primeira abordagem faz isso em uma etapa, enquanto a segunda abordagem faz isso em duas etapas. No entanto a segunda abordagem "esquece" que Y . Z resultou de uma regressão em Z e, portanto, negligencia subtrair o grau de liberdade para essa variável.YXZY.ZZ

O gráfico variável adicionado

Sanford Weisberg (Regressão Linear Aplicada, 1985) utilizado para recomendar traçando vs X . Z em um gráfico de dispersão. Este foi chamado uma trama variável adicionado , e deu uma representação visual eficaz da relação entre Y e X após o ajuste para Z .Y.ZX.ZYXZ

Se você não ajustar X, subestime o coeficiente de regressão

A segunda abordagem como você originalmente afirmou que, regredindo em X , é muito conservador. Ele subestimará a significância da relação entre Y e X ajustando para Z porque subestima o tamanho do coeficiente de regressão. Isso ocorre porque você está regredindo Y . Z em toda a X em vez de apenas na parte de X que é independente de Z . Na fórmula padrão para o coeficiente de regressão linear simples, em regressão, o numerador (covariância de Y . Z com XY.ZXYXZY.ZXXZY.ZX) estará correto, mas o denominador (a variação de ) será muito grande. O X covariável correto . Z tem sempre uma variação menor do que faz X .XX.ZX

Para tornar este preciso, a sua vontade Método 2 sub-estimar o coeficiente de regressão parcial de por um factor de 1 - r 2 , onde r é o coeficiente de correlação de Pearson entre X e Z .X1r2rXZ

Um exemplo numérico

Aqui está um pequeno exemplo numérico para mostrar que o método da variável adicionada representa o coeficiente de regressão de em X corretamente, enquanto sua segunda abordagem (método 2) pode estar arbitrariamente errada.YX

XZY

> set.seed(20180525)
> Z <- 10*rnorm(10)
> X <- Z+rnorm(10)
> Y <- X+Z

Y=X+ZXZ

RY.ZX.Z

> R <- Y.Z <- residuals(lm(Y~Z))
> X.Z <- residuals(lm(X~Z))

XY

> coef(lm(Y~X+Z))
(Intercept)           X           Z 
   5.62e-16    1.00e+00    1.00e+00 

X

> coef(lm(R~X.Z))
(Intercept)         X.Z 
  -6.14e-17    1.00e+00 

Por outro lado, o método 2 considera que o coeficiente de regressão é apenas 0,01:

> coef(lm(R~X))
(Intercept)           X 
    0.00121     0.01170 

XZ

> 1-cor(X,Z)^2
[1] 0.0117

RX.ZYX

Gráfico variável adicionado

RX

Gráfico incorreto usando X não corrigido

Gordon Smyth
fonte
1
Você tem certeza de que ambas as abordagens fornecerão os mesmos coeficientes de regressão? Se fosse verdade, em vez de fazer regressão múltipla com k variáveis ​​independentes, poderíamos fazer k regressões com variável independente única e obter exatamente o mesmo resultado com mais rapidez.
Tomek Tarczynski
1
Provavelmente estou perdendo alguma coisa. Quando tento simular isso, estou obtendo um coeficiente diferente para o X. O código R está abaixo do set.seed (1234) k <- 100 x <- runif (k) z <- x + runif (k) y <- 5 * x - 3 * z + coeficiente runif (k) # x 5.1252 lm (y ~ x + z) modelo <- lm (y ~ z) res <- modelo $ residuals # coeficiente #x 2,82 model2 <- lm (res ~ x)
Tomek Tarczynski
1
XZ
Oi Gordon, há algo errado com a segunda abordagem além da questão do grau de liberdade? por exemplo, em termos de lógica?
WCMC
Oi Gordon, editei minha pergunta. Agradeço se você pudesse dar uma olhada quando tiver tempo.
WCMC