Xem relevel()
chức năng. Đây là một ví dụ:
set.seed(123)
x <- rnorm(100)
DF <- data.frame(x = x,
y = 4 + (1.5*x) + rnorm(100, sd = 2),
b = gl(5, 20))
head(DF)
str(DF)
m1 <- lm(y ~ x + b, data = DF)
summary(m1)
Bây giờ thay đổi yếu tố b
trong DF
bằng cách sử dụng các relevel()
chức năng:
DF <- within(DF, b <- relevel(b, ref = 3))
m2 <- lm(y ~ x + b, data = DF)
summary(m2)
Các mô hình đã ước tính các mức tham chiếu khác nhau.
> coef(m1)
(Intercept) x b2 b3 b4 b5
3.2903239 1.4358520 0.6296896 0.3698343 1.0357633 0.4666219
> coef(m2)
(Intercept) x b1 b2 b4 b5
3.66015826 1.43585196 -0.36983433 0.25985529 0.66592898 0.09678759
b
bạn có thể chỉ định thứ tự của các cấp bằng cách sử dụngfactor(b, levels = c(3,1,2,4,5))
. Thực hiện việc này trong bước xử lý dữ liệu bên ngoàilm()
cuộc gọi. Câu trả lời của tôi bên dưới sử dụngrelevel()
hàm để bạn có thể tạo một hệ số và sau đó thay đổi mức tham chiếu xung quanh cho phù hợp khi bạn cần.