Come confrontare due pendenze di regressione per un predittore su due risultati diversi?


10

Devo confrontare due pendenze di regressione in cui:

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

Come posso confrontare b1 e b2?

O nella lingua del mio esempio specifico in roditori, voglio confrontare

antero-posterior diameter ~  a + b1 * humeral length   
de naso-occipital length  ~  a + b2 * humeral length 

2
Calcola un modello di regressione con entrambe le variabili PIÙ l' interazione delle due variabili (lunghezza omerale diametro antero-posteriore). L'interazione mette alla prova il presupposto del parallelismo delle pendenze delle due variabili. Se il termine di interazione è significativo, le pendenze sono diverse. ×
COOLSerdash,

Grazie!! Ma la lunghezza dell'omero e il diametro antero-posteriore dell'omero sono DV e la lunghezza naso-occipitale è la IV. Posso eseguire l'analisi come da lei suggerito?
Dra.

1
@ Dra.AlejandraEcheverria Vuoi dire che hai un modello di regressione lineare con due variabili indipendenti e che vuoi testare l'uguaglianza dei due coefficienti sulle variabili indipendenti, oppure hai due semplici modelli di regressione lineare e vuoi confrontare coefficienti tra i due modelli?
Graeme Walsh,

1
Caro @Graeme Walsh, ho due semplici modelli di regressione lineare e voglio confrontare i coefficienti tra i due modelli.
Dra.

Risposte:


11

Ok, diamo un'occhiata alla tua situazione. Hai sostanzialmente due regressioni (APD = diametro antero-posteriore, NOL = lunghezza naso-occipitale, HL = lunghezza omerale):

  1. UNPD=β0,1+β1,1NOL
  2. HL=β0,2+β1,2NOL

Per verificare l'ipotesi , è possibile effettuare le seguenti operazioni:β1,1=β1,2

  1. Ynew
  2. Xnew
  3. D
  4. YnewXnewD

Vediamo un esempio con i dati inventati (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×dummy.vun'r15-20=-520

Avvertenza: funziona solo se il diametro antero-posteriore e la lunghezza naso-occipitale (le due variabili dipendenti) sono indipendenti. Altrimenti può diventare molto complicato.

MODIFICARE

Questi due post sul sito affrontano la stessa domanda: primo e secondo .


Solo per evitare confusione, sembra che tu abbia confuso NOL e HL. HL era il predittore, NOL era il secondo DV (e APD era il primo DV, come hai sottolineato). Anche se ho appena notato che il poster stesso ha cambiato lo stato delle sue variabili in un commento ...
Patrick Coulombe,

@Patrick Coulombe Grazie per averlo segnalato. Non è stato chiaro dal suo commento di ieri.
COOLSerdash,

@PatrickCoulombe Ripensandoci: penso che Jeromy Anglim abbia frainteso il commento di Alejandra e abbia scambiato le variabili.
COOLSerdash,

1
Questa soluzione sembra ragionevole, ma sono leggermente preoccupato per il fatto che nel tuo modello combinato / interattivo, la varianza residua sia considerata uguale su entrambi i livelli dummy.var, vale a dire per entrambi i DV. A seconda di quali sono i DV nel contesto originale, è possibile che le varianze residue siano radicalmente diverse nelle regressioni separate di ciascun DV. Mi chiedo se sarebbe meglio usare lo stesso approccio di base proposto, ma con un glsmodello in cui stimiamo varianze residue diverse per ciascun DV. Qualche idea a riguardo?
Jake Westfall,

1
@COOLSerdash Certo, sarebbe simile a questo:library(nlme); mod4 <- gls(y.new~x.new*dummy.var, weights=varIdent(form= ~1 | dummy.var))
Jake Westfall,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.