Como comparar duas inclinações de regressão para um preditor em dois resultados diferentes?

10

Preciso comparar duas inclinações de regressão onde:

$
y_1 ~ a + b_1x
y_2 ~ a + b_2x
$

Como posso comparar b1 e b2?

Ou na linguagem do meu exemplo específico em roedores, quero comparar

antero-posterior diameter ~  a + b1 * humeral length   
de naso-occipital length  ~  a + b2 * humeral length 
Dra. Alejandra Echeverria
fonte
2
Calcule um modelo de regressão com as duas variáveis, além da interação das duas variáveis (comprimento umeral diâmetro ântero-posterior). A interação testa a suposição de paralelismo das inclinações das duas variáveis. Se o termo de interação for significativo, as inclinações são diferentes. ×
COOLSerdash 17/05
Obrigado!! Mas o comprimento umeral e o diâmetro ântero-posterior do úmero são DVs e o comprimento naso-occipital é o IV. Posso executar a análise como você sugere?
Dra.
11
@ Dra.AlejandraEcheverria Você quer dizer que possui um modelo de regressão linear com duas variáveis ​​independentes e deseja testar a igualdade dos dois coeficientes nas variáveis ​​independentes ou possui dois modelos de regressão linear simples e deseja comparar o coeficientes entre os dois modelos?
Graeme Walsh
11
Caro @Graeme Walsh, tenho dois modelos de regressão linear simples e quero comparar os coeficientes entre os dois modelos.
Dra.

Respostas:

11

Ok, vamos olhar para a sua situação. Você tem basicamente duas regressões (DPA = diâmetro ântero-posterior, NOL = comprimento naso-occipital, PA = comprimento umeral):

  1. UMAPD=β0 0,1 1+β1 1,1 1NOeu
  2. Heu=β0 0,2+β1 1,2NOeu

Para testar a hipótese , você pode fazer o seguinte:β1 1,1 1=β1 1,2

  1. YneW
  2. XneW
  3. D
  4. YneWXneWD

Vejamos um exemplo com dados inventados (in R):

# Create artificial data

library(nlme) # needed for the generalized least squares

set.seed(1500)

NOL <- rnorm(10000,100,12)
APD <- 10 + 15*NOL+ rnorm(10000,0,2)
HL <- - 2  - 5*NOL+ rnorm(10000,0,3) 

mod1 <- lm(APD~NOL)
mod1

Coefficients:
(Intercept)          NOL
      10.11        15.00

mod2 <- lm(HL~NOL)
mod2

Coefficients:
(Intercept)          NOL
      -1.96        -5.00

# Combine the dependent variables and duplicate the independent variable

y.new <- c(APD, HL)
x.new <- c(NOL, NOL)

# Create a dummy variable that is 0 if the data are from the first data set (APD) and 1 if they are from the second dataset (HL)

dummy.var <- c(rep(0, length(APD)), rep(1, length(HL)))

# Generalized least squares model allowing for differend residual SDs for each regression (strata of dummy.var)

gls.mod3 <- gls(y.new~x.new*dummy.var, weights=varIdent(form=~1|dummy.var))

Variance function:
 Structure: Different standard deviations per stratum
 Formula: ~1 | dummy.var 
 Parameter estimates:
       0        1 
1.000000 1.481274 

Coefficients:
                    Value  Std.Error   t-value p-value
(Intercept)      10.10886 0.17049120    59.293       0
x.new            14.99877 0.00169164  8866.430       0
dummy.var       -12.06858 0.30470618   -39.607       0
x.new:dummy.var -19.99917 0.00302333 -6614.939       0

XneWdummy.varx.new:dummy.varβx.neW-βx.neW×dvocêmmy.vumar15-20=-520

Aviso: Isso só funciona se o diâmetro ântero-posterior e o comprimento naso-occipital (as duas variáveis ​​dependentes) forem independentes. Caso contrário, pode ficar muito complicado.

EDITAR

Essas duas postagens no site lidam com a mesma pergunta: primeiro e segundo .

COOLSerdash
fonte
Só para evitar confusão, parece que você tem NOL e HL misturados. HL foi o preditor, NOL foi o segundo DV (e APD foi o primeiro DV, como você apontou). Embora eu só notei que o cartaz-se mudado o estado de suas variáveis em um comentário ...
Patrick Coulombe
@Patrick Coulombe Obrigado por apontar. Não ficou claro em seu comentário ontem.
COOLSerdash
@PatrickCoulombe Pensando bem: acho que Jeromy Anglim não entendeu o comentário de Alejandra e trocou as variáveis.
COOLSerdash
11
Essa solução parece razoável, mas estou um pouco preocupado com o fato de que, no seu modelo combinado / interativo, a variação residual é assumida como sendo igual nos dois níveis de dummy.var, ou seja, para os dois DVs. Dependendo do que os DVs estão no contexto original, é possível que as variações residuais sejam radicalmente diferentes nas regressões separadas de cada DV. Gostaria de saber se seria melhor usar a mesma abordagem básica que você propôs, mas com um glsmodelo em que estimamos diferentes variações residuais para cada DV. Alguma idéia sobre isso?
Jake Westfall
11
@COOLSerdash Claro, ficaria assim:library(nlme); mod4 <- gls(y.new~x.new*dummy.var, weights=varIdent(form= ~1 | dummy.var))
Jake Westfall