我正在尝试进行多元多元回归分析。幸运的是,我在Stata中找到了一个演示如何执行此操作的出色页面:

http://www.ats.ucla.edu/stat/stata/dae/mvreg.htm

问题是我正在使用R,虽然我已经找到了如何在R中运行多元多元回归模型的基础知识,但我仍然不确定如何查看每个因变量的系数是否不同(如在链接中显示)。有人知道如何在R中计算此分析吗?好像看到一个相同的自变量是否会对每个因变量施加不同的影响是一个非常有用的工具,我很乐意做到这一点!

更新:这是到目前为止我对自己的数据所做的可复制示例:

# data
data(mtcars)

# fitting a multivariate multiple regression where mpg and cyl are predicted by wt and hp
car.mod <- lm(cbind(mpg,cyl) ~ wt + hp,data=mtcars)

# see if there is a multivariate effect of wt and hp
summary(manova(car.mod),test="W")

# Get coefficients for each dependent variable
summary(car.mod)


在此示例中,我想知道的是如何在“ mpg”和“ cyl”上测试“ wt”的等效性。显然,这可以在Stata中使用test命令进行。

最佳答案

AFAIK,没有软件包可以执行此操作,因此我将执行手动解决方案。手动解决方案是

z =(b1-b2)/(b1 ^ 2 + b2 ^ 2)^(1/2)。

这是(草率的)代码。提取系数和标准误差可能会有更优雅的解决方案。

# extract coefficients and SEs
coef_mpg <- coef(summary(car.mod))[[1]]
coef_cyl <- coef(summary(car.mod))[[2]]

# test equality of wt coefficients
z_wt <- (coef_mpg[2, 1] - coef_cyl[2, 1]) / (coef_mpg[2, 2]^2 + coef_cyl[2, 2]^2)^(1/2)
p_wt <- 2*pnorm(-abs(z_wt))
p_wt


但是我对引导解决方案感觉更好,该解决方案的假设较少。

require(boot)
b_b <- function(data=mtcars, indices) {
  d <- data[indices, ]
  model_mpg <- lm(mpg ~ wt + hp, data=d)
  model_cyl <- lm(cyl ~ wt + hp, data=d)
  return(coef(model_mpg)["wt"] - coef(model_cyl)["wt"])
}
results <- boot(data=mtcars, statistic=b_b, R=1000)
results

关于r - R-多元多元回归中系数的等价检验,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40952679/

10-12 17:33