使用R,我想对同一回归中的两个系数进行统计比较。在Stata软件中,存在测试B1 = B2。 R中的等价物是什么?我检查了几篇文章,但没有人回答这个问题。
SPSS: Comparing regression coefficient from multiple models
Comparing regression models in R
这是一些模拟数据。
library('MASS')
mu <- c(0,0,0)
Sigma <- matrix(.5, nrow=3, ncol=3) + diag(3)*0.3
MyData <- mvrnorm(n=10000, mu=mu, Sigma=Sigma) %>%
as.data.frame()
names(MyData) = c('v1', 'v2', 'y')
MyModel = lm(y ~ v1 * v2, data = MyData)
summary(MyModel)
我想将V1的估算值与V2的估算值进行比较。因此,如果要操纵V1和V2,我想说些类似的信息“ V1对Y的影响明显高于V2对Y的影响”
答案 0 :(得分:1)
您可以尝试multcomp
,因此,如果您查看模型的系数:
coefficients(MyModel)
(Intercept) v1 v2 v1:v2
0.006961219 0.373547048 0.394760005 -0.012167754
您要查找第二项和第三项之间的差异,因此您的对比度矩阵为:
# yes it looks a bit weird at first
ctr = rbind("v1-v2"=c(0,1,-1,0))
我们可以使用glht
来应用它:
summary(glht(MyModel,ctr))
Simultaneous Tests for General Linear Hypotheses
Fit: lm(formula = y ~ v1 * v2, data = MyData)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
v1-v2 == 0 -0.02121 0.01640 -1.294 0.196
(Adjusted p values reported -- single-step method)
这适用于大多数常规线性模型。在摘要函数中,您可以根据效果/标准误获得每个术语的含义。 glht函数执行类似的操作。我可以想到的Logistic回归的一个例外是当您拥有complete separation
时