Get p-value for group mean difference without refitting linear model with a new reference level

后端 未结 3 1781
名媛妹妹
名媛妹妹 2021-01-25 06:42

When we have a linear model with a factor variable X (with levels A, B, and C)

y ~ factor(X) + Var2 + Var3 
<         


        
3条回答
  •  深忆病人
    2021-01-25 07:15

    glht (general linear hypothesis testing) from multcomp package makes this sort of multiple hypothesis test easy without re-running a bunch of separate models. It is essentially crafting a customized contrast matrix based on your defined comparisons of interest.

    Using your example comparisons and building on the data @ZheyuanLi provided:

    x <- gl(3,100,labels = LETTERS[1:3])
    set.seed(0)
    y <- c(rnorm(100, 0), rnorm(100, 1), rnorm(100, 2)) + 0.1
    
    fit <- lm(y ~ x)
    
    library(multcomp)
    my_ht <- glht(fit, linfct = mcp(x = c("B-A = 0",
                                 "C-A = 0",
                                 "C-B = 0")))
    

    summary(my_ht) will give you the adjusted p-values for the comparisons of interest.

    #Linear Hypotheses:
    #           Estimate Std. Error t value Pr(>|t|)    
    #B - A == 0   0.9318     0.1371   6.798 1.11e-10 ***
    #C - A == 0   2.0446     0.1371  14.916  < 1e-10 ***
    #C - B == 0   1.1128     0.1371   8.118  < 1e-10 ***
    

提交回复
热议问题