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ố btrong DFbằ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
bbạ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.