두 개의 다른 결과에서 하나의 예측 변수에 대한 두 개의 회귀 기울기를 비교하는 방법은 무엇입니까?


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
×

감사!! 그러나 상완골의 상완골 길이와 앞뒤 직경은 DV이고 비 후두 길이는 IV입니다. 제안한대로 분석을 실행할 수 있습니까?
Dra.

1
@ Dra.AlejandraEcheverria 두 개의 독립 변수가있는 하나의 선형 회귀 모델이 있고 독립 변수에 대한 두 계수의 동등성을 테스트하려는 경우 또는 두 개의 간단한 선형 회귀 모델이 있고 비교하려는 경우 두 모델의 계수?
Graeme Walsh

1
@Graeme Walsh에게, 저는 두 개의 간단한 선형 회귀 모델을 가지고 있으며 두 모델의 계수를 비교하고 싶습니다.
Dra.

답변:


11

좋아, 상황을 보자. 기본적으로 두 가지 회귀가 있습니다 (APD = 앞뒤 직경, NOL = 비 후두 길이, HL = 상완골 길이).

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

β1,1=β1,2

  1. 하여 새로운 종속 변수 ( 만듭니다.Ynew
  2. Xnew
  3. D
  4. YnewXnewD

구성 데이터 ( 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

경고 : 이것은 전후방 직경과 비 후두 길이 (두 개의 종속 변수)가 독립적 인 경우에만 작동합니다 . 그렇지 않으면 매우 복잡해질 수 있습니다 .

편집하다

사이트 의이 두 게시물은 동일한 질문을 처리합니다 : First and second .


혼란을 피하기 위해 NOL과 HL이 섞여있는 것처럼 보입니다. HL은 예측 자 였고 NOL은 두 번째 DV였습니다 (그리고 APD가 첫 번째 DV였습니다. 난 그냥 포스터 자신을 ... 코멘트 그녀의 변수의 상태를 변경 것으로 나타났습니다하지만
패트릭 콜콤에게

@Patrick Coulombe 지적 해 주셔서 감사합니다. 어제 그녀의 의견으로는 명확하지 않았다.
COOLSerdash

@PatrickCoulombe 두 번째 생각 : Jeromy Anglim은 Alejandra의 의견을 오해하고 변수를 교환했다고 생각합니다.
COOLSerdash

1
이 솔루션은 합리적으로 보이지만 결합 / 대화식 모델에서 잔차 분산이 두 수준 dummy.var, 즉 두 DV 모두 에서 동일하다고 가정 합니다. 원래 맥락에서 DV가 무엇인지에 따라, 잔차 분산이 각 DV의 개별 회귀에서 근본적으로 다를 수 있습니다. 제안한 것과 동일한 기본 접근 방식을 사용하는 것이 더 좋지만 gls각 DV에 대해 다른 잔차 분산을 추정 하는 모델 이 있는지 궁금합니다 . 이것에 대한 생각?
Jake Westfall

1
@COOLSerdash 물론, 다음과 같이 보일 것입니다 :library(nlme); mod4 <- gls(y.new~x.new*dummy.var, weights=varIdent(form= ~1 | dummy.var))
Jake Westfall
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.