2016-12-03 97 views
3

我尝试进行多元回归分析。幸运的是,我找到了一个极好的页面演示如何在Stata这样做:的R - 测试系数的等价多变量多元回归

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”上。显然,这在Stata中可能使用test命令。

+1

检查出[R标记信息页面(http://stackoverflow.com/tags/r/info)为许多具体的R-资源,其中一些涉及这个话题。但是到目前为止你有什么?您需要添加[重复的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#5963610)。 – alistaire

+1

好的,完成了! – user2917781

回答

1

据我所知,没有包,这样做,所以我会做手工的解决方案。手动解决方案是:

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