超过 2 个级别的分类变量的解释与您提到的二进制情况非常相似;对于级别的分类变量,您将拥有回归系数,每个回归系数将结果与参考组的几率进行比较。对于您陈述的示例,种族(高加索人、非裔美国人、西班牙裔和亚洲人),让我们假设您的参考(基线)组是非裔美国人。一旦您运行回归,许多用于逻辑回归的软件包都会为您提供 3 个优势比(对于 4 级分类预测器)。让我们快速看看在 R 中这是如何基于模拟数据集完成的:kk−1
###########Simulate Data###########
set.seed(123) # set seed if you want to re-produce
#simulation results
x1 <- sample(c("AF","AS","HI","CA"),10000,replace = T) #Caucasian (CA), African-American(AA), Hispanic(HI),
# and Asian(AA)
x1 <- factor(x1,levels =c("AF","AS","HI","CA"))
# ensure the ordering by setting AF as reference
x1.fac <- model.matrix(~ x1) # generate dummy variables for
#simulation purposes (in practice you may not need to do
#this)
betas <- c(.2,.5,.53) # log odds comparing the three groups
#to the referent level of AF (these are just made up
#values for illustration and simulation purposes!)
xbeta <- x1.fac[,-1]%*%betas #need only k-1 dummies for a
#variable with k-levels
y <- rbinom(n = 10000, size = 1, prob =
exp(xbeta)/(1+exp(xbeta))) # Simulate outcome (Y)
#Finally we have the following sample data:
example_data <- data.frame(y,x1)
####Run regression of outcome against ethnicity
model1 <- glm(y~x1,family = binomial,data = example_data)
exp(coef(model1))[-1] ###Odds Ratios comparing each group
#with the reference group of AF
x1AS x1HI x1CA
1.229610 1.800985 1.796416
那么亚洲人的优势比 1.23 意味着什么?这意味着,与非裔美国人相比,亚洲人获得结果的几率高出 23%。等效地,您可以解释为与非裔美国人的参照组相比,亚洲人的结果几率是 1.23 倍。白种人和西班牙人的赔率分别为 1.800 和 1.796,以相同的方式解释。对分类变量建模的最重要部分是识别适当的参照组。您始终可以使用 R 中的 relevel() 命令更改参考组。请参见此处的示例。
为了在其中一个不是参照组的两组之间进行比较,有几种方法:
使用 relevel() 函数并重新运行回归,将参考组更改为您感兴趣的变量(当您的分类预测变量中有很多级别时,这不是我最喜欢的方法)
使用已经内置的包来做这个比较。
我不确定这是如何在 Stata 或 SAS 中完成的(可能是 SAS 的对比语句),但您可以使用 car 包在 R 中轻松完成此操作。例如,如果要测试高加索人和西班牙人之间结果的几率是否不同,请使用以下命令:
library(car)
linearHypothesis(model1, c("x1CA - x1HI = 0"))
Linear hypothesis test
Hypothesis:
- x1HI + x1CA = 0
Model 1: restricted model
Model 2: y ~ x1
Res.Df Df Chisq Pr(>Chisq)
1 9997
2 9996 1 0.0018 0.9658
在这种情况下,我们未能拒绝高加索人和西班牙人之间的结果几率没有差异的原假设(p 值 = 0.9658)。