首页 文章

比较不同回归的系数

提问于
浏览
1

我试图比较两个线性回归的系数与相同的变量,但运行不同的子组 . 我想检查模型1中的系数是否等于模型2中的系数 . 我需要知道每个系数 .

我可重复的数据:

Data <- data.frame(
gender = sample (c("men", "women"), 2000, replace = TRUE),
var1 = sample (c("value1", "value2"), 2000, replace = TRUE),
var2 = sample (c("valueA", "valueB"), 2000, replace = TRUE),
y = sample(0:10, 2000, replace = TRUE)
)

我运行两个回归:

men <- subset(Data, gender =="men")
women <- subset(Data, gender =="women")

lm.men <- lm(y~var1+var2, data = men)
summary(lm.men)
lm.women <- lm(y~var1+var2, data = women)
summary(lm.women)

基本上,我想测试是否:

  • 系数 var1 in lm.men =系数 var1 in lm.women

  • 系数 var2 in lm.men =系数 var2 in lm.women

我不能使用 anova() 函数,因为我的两个样本不同 . 我想我应该应用F测试但是我找不到这个测试的功能 .

有谁知道如何解决我的问题?

1 回答

  • 2

    正如@Barker在评论中指出的那样,这个问题的统计部分是already answered on CrossValidated;我将在这里添加一些R编码细节 .

    为了回答这些问题(“男性和女性之间的影响是否显着不同?”),请使用具有可变性别相互作用的模型并测试交互术语 .

    Data <- data.frame(
         gender = sample (c("men", "women"), 2000, replace = TRUE),
         var1 = sample (c("value1", "value2"), 2000, replace = TRUE),
        var2 = sample (c("valueA", "valueB"), 2000, replace = TRUE),
        y = sample(0:10, 2000, replace = TRUE)
     )
     mm <- lm(y~(var1+var2)*gender,Data)
    

    以下是互动条款:

    interax <- c("var1value2:genderwomen","var2valueB:genderwomen")
    printCoefmat(coef(summary(mm))[interax,])
    ##                        Estimate Std. Error t value Pr(>|t|)
    ## var1value2:genderwomen  0.20144    0.28241  0.7133   0.4758
    ## var2valueB:genderwomen -0.15423    0.28266 -0.5456   0.5854
    

相关问题