如何比较两个不同结果的一个预测变量的两个回归斜率?


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,我有两个简单的线性回归模型,我想比较两个模型的系数。
德拉。

Answers:


11

好吧,让我们看看你的情况。您基本上有两个回归(APD =前后径,NOL =枕骨后侧长,HL =肱骨长):

  1. 一个Pd=β01个+β1个1个ñØ大号
  2. H大号=β02+β1个2ñØ大号

为了检验这一假设,你可以做到以下几点:β1个1个=β1个2

  1. 只需 APD 附加到HL即可创建一个新的因变量(ÿñËw
  2. 通过 NOL 附加到自身()(即复制NOL)来创建新的自变量XñËw
  3. 创建一个虚拟变量(),如果数据来自第二个数据集(带有HL),则为1;如果数据来自第一个数据集(APD),则为0。d
  4. ÿñËwXñËwd

让我们来看一个包含虚构数据的示例(在中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

XñËwdummy.varx.new:dummy.varβXñËw-βXñËw×düÿv一个[R15-20=-520

警告:仅在前后直径和鼻枕长度(两个因变量)是独立的情况下才有效。否则会变得非常复杂。

编辑

该站点上的这两个帖子处理相同的问题:第一第二


为避免混淆,您似乎混淆了NOL和HL。HL是预测因素,NOL是第二DV(正如您所指出的,APD是第一DV)。虽然我只是注意到发帖人自己在评论中更改了变量的状态……
帕特里克·库洛姆贝

@Patrick Coulombe感谢您指出。她昨天的评论不清楚。
COOLSerdash

@PatrickCoulombe再想一想:我认为Jeromy Anglim误解了Alejandra的评论并交换了变量。
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))
Jake Westfall
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.