Як порівняти два нахили регресії для одного прогноктора за двома різними результатами?


10

Мені потрібно порівняти два регресійні схили, де:

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

Як я можу порівняти b1 і b2?

Або мовою мого конкретного прикладу у гризунів я хочу порівняти

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

2
Обчисліть регресійну модель з обома змінними ПЛЮС взаємодією двох змінних (довжина плеча довжина передньозаднього діаметра). Взаємодія перевіряє припущення про паралелізм нахилів двох змінних. Якщо термін взаємодії значний, схили різні. ×
COOLSerdash

Дякую!! Але довжина плечової кістки та передньозадній діаметр плечової кістки - DV, а носо-потилична довжина - IV. Чи можу я запустити аналіз, як ви пропонуєте?
Дра.

1
@ Dra.AlejandraEcheverria Ви маєте на увазі, що у вас є одна лінійна модель регресії з двома незалежними змінними і що ви хочете перевірити рівність двох коефіцієнтів на незалежних змінних, або у вас є дві прості лінійні регресійні моделі, і ви хочете порівняти коефіцієнти для двох моделей?
Graeme Walsh

1
Шановний @Graeme Walsh, у мене дві прості лінійні регресійні моделі, і я хочу порівняти коефіцієнти для двох моделей.
Дра.

Відповіді:


11

Гаразд, давайте розглянемо вашу ситуацію. У вас в основному дві регресії (APD = передньозадній діаметр, NOL = носо-потилична довжина, HL = плечова довжина):

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

Щоб перевірити гіпотезу , ви можете зробити наступне:β1,1=β1,2

  1. Створіть нову залежну змінну ( ), просто додавши APD до HLYnew
  2. Створіть нову незалежну змінну, додавши до себе NOL ( ) (тобто дублюючи NOL)Xnew
  3. Створіть фіктивну змінну ( ), яка дорівнює 1, якщо дані надходили з другого набору даних (з HL) та 0, якщо дані надходили з першого набору даних (APD).D
  4. Обчисліть регресію з як залежної змінної, а основні ефекти та взаємодію між і фіксованою змінною як пояснювальні змінні. EDIT @Jake Westfall вказував, що залишкова стандартна помилка може бути різною для двох регресій для кожного DV. Джейк дав відповідь, яка повинна відповідати узагальненій моделі найменших квадратів (GLS), яка дозволяє залишкової стандартної помилки відрізнятися між двома регресіями. X n e w DYnewXnewD

Давайте розглянемо приклад зі складеними даними (в 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.var1520=520

Попередження: Це працює лише в тому випадку, якщо передньозадній діаметр і довжина носо-потиличної довжини (дві залежні змінні) незалежні. Інакше це може стати дуже складним.

EDIT

Ці два повідомлення на сайті стосуються одного і того ж питання: Перше і друге .


Тільки щоб уникнути плутанини, схоже, у вас змішалися NOL та HL. HL був предиктором, NOL - другим DV (а APD - першим DV, як ви вказали). Хоча я щойно помітив, що сама афіша змінила статус своїх змінних у коментарі ...
Патрік Куломбе

@Patrick Coulombe Дякуємо, що вказали на це. З її коментаря вчора не було зрозуміло.
COOLSerdash

@PatrickCoulombe По другій думці: я думаю, що Джеромі Англім неправильно зрозумів коментар Алехандри та обмінявся змінними.
COOLSerdash

1
Це рішення здається розумним, але мене трохи турбує той факт, що у вашій комбінованій / інтерактивній моделі залишкова дисперсія вважається рівною на обох рівнях dummy.var, тобто для обох DV. Залежно від того, які DV є у вихідному контексті, можливо, що залишкові відхилення кардинально відрізняються в окремих регресіях кожного DV. Цікаво, чи було б краще використовувати той самий базовий підхід, який ви запропонували, але з glsмоделлю, де ми оцінюємо різні залишкові відхилення для кожного DV. Будь-які думки з цього приводу?
Джейк Вестфалл

1
@COOLSerdash Звичайно, це виглядатиме приблизно так:library(nlme); mod4 <- gls(y.new~x.new*dummy.var, weights=varIdent(form= ~1 | dummy.var))
Джейк Вестфалл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.