Wie kann man zwei Regressionssteigungen für einen Prädiktor mit zwei unterschiedlichen Ergebnissen vergleichen?

10

Ich muss zwei Regressionssteigungen vergleichen, bei denen:

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

Wie kann ich b1 und b2 vergleichen?

Oder in der Sprache meines speziellen Beispiels bei Nagetieren möchte ich vergleichen

antero-posterior diameter ~  a + b1 * humeral length   
de naso-occipital length  ~  a + b2 * humeral length 
Dra. Alejandra Echeverria
quelle
2
×
Vielen Dank!! Die Humeruslänge und der antero-posteriore Durchmesser des Humerus sind jedoch DVs, und die naso-okzipitale Länge ist die IV. Kann ich die Analyse wie von Ihnen vorgeschlagen durchführen?
Dra.
1
@ Dra.AlejandraEcheverria Meinen Sie, dass Sie ein lineares Regressionsmodell mit zwei unabhängigen Variablen haben und die Gleichheit der beiden Koeffizienten für die unabhängigen Variablen testen möchten, oder Sie haben zwei einfache lineare Regressionsmodelle und möchten das vergleichen Koeffizienten zwischen den beiden Modellen?
Graeme Walsh
1
Lieber @Graeme Walsh, ich habe zwei einfache lineare Regressionsmodelle und möchte die Koeffizienten zwischen den beiden Modellen vergleichen.
Dra.

Antworten:

11

Okay, schauen wir uns Ihre Situation an. Sie haben grundsätzlich zwei Regressionen (APD = antero-posteriorer Durchmesser, NOL = naso-occipitale Länge, HL = Humeruslänge):

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

β1,1=β1,2

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

Schauen wir uns ein Beispiel mit erfundenen Daten (in R) an:

# 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.var1520=520

Warnung: Dies funktioniert nur, wenn der antero-posteriore Durchmesser und die naso-okzipitale Länge (die beiden abhängigen Variablen) unabhängig sind. Sonst kann es sehr kompliziert werden.

BEARBEITEN

Diese beiden Beiträge auf der Website befassen sich mit derselben Frage: Erstens und zweitens .

COOLSerdash
quelle
Um Verwirrung zu vermeiden, scheinen NOL und HL verwechselt zu sein. HL war der Prädiktor, NOL war der zweite DV (und APD war der erste DV, wie Sie betonten). Obwohl ich gerade bemerkt habe, dass das Poster selbst den Status ihrer Variablen in einem Kommentar geändert hat ...
Patrick Coulombe
@ Patrick Coulombe Vielen Dank für den Hinweis. Aus ihrem gestrigen Kommentar war es nicht klar.
COOLSerdash
@PatrickCoulombe Zu einem zweiten Gedanken: Ich denke, Jeromy Anglim hat Alejandras Kommentar falsch verstanden und die Variablen ausgetauscht.
COOLSerdash
1
Diese Lösung erscheint vernünftig, aber ich bin etwas besorgt über die Tatsache, dass in Ihrem kombinierten / interaktiven Modell angenommen wird dummy.var, dass die Restvarianz auf beiden Ebenen , dh für beide DVs, gleich ist. Abhängig davon, was die DVs im ursprünglichen Kontext sind, ist es möglich, dass die Restvarianzen in den separaten Regressionen jedes DV radikal unterschiedlich sind. Ich frage mich, ob es besser wäre, den gleichen grundlegenden Ansatz zu verwenden, den Sie vorgeschlagen haben, aber mit einem glsModell, bei dem wir für jeden DV unterschiedliche Restvarianzen schätzen. Irgendwelche Gedanken dazu?
Jake Westfall
1
@ COOLSerdash Sicher, es würde ungefähr so ​​aussehen:library(nlme); mod4 <- gls(y.new~x.new*dummy.var, weights=varIdent(form= ~1 | dummy.var))
Jake Westfall