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

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á.n−1n−2nXn

É 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 .X1−r2rXZ

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.