如何更好地控制有序因子的 lm() 估计标签?
How can I better control the lm() estimate labels for an ordered factor?
我的数据包含具有多个级别的有序因子变量,例如:
set.seed(1234)
y <- runif(100,0,100)
x <- rep_len(as.character(c(1991:2013)), length.out = 100)
df<-data.frame("x" = factor(x,ordered = TRUE), y)
当我在 lm()
中使用这些数据时,R 以我认为牺牲清晰度的方式更改了估计系数的名称。
summary(lm(data = df, formula = y~x))
产生以下内容:
...Truncated...
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 43.8665 2.9456 14.892 <2e-16 ***
x.L 0.5284 13.9151 0.038 0.970
x.Q -17.6699 14.1375 -1.250 0.215
x.C 0.3310 13.9882 0.024 0.981
x^4 -0.8420 14.0647 -0.060 0.952
x^5 20.1605 14.0629 1.434 0.156
...Truncated...
为了避免这种情况,我可以 "un-order" 这个因素,但这对我的情况来说很不方便。有没有办法强制 R 使用实际的级别名称?另外,仅对前三个估计名称的x.L
、x.Q
和x.C
有何解释?
由于缺乏答案,实现这些目标的最佳方法似乎是 "un-order" 因子变量,运行 线性模型,然后 "re-order" 因子变量,如:
df$x <- factor(df$x, ordered = FALSE)
m <- lm(data = df, formula = y~x)
df$x <- factor(df$x, ordered = TRUE)
我的数据包含具有多个级别的有序因子变量,例如:
set.seed(1234)
y <- runif(100,0,100)
x <- rep_len(as.character(c(1991:2013)), length.out = 100)
df<-data.frame("x" = factor(x,ordered = TRUE), y)
当我在 lm()
中使用这些数据时,R 以我认为牺牲清晰度的方式更改了估计系数的名称。
summary(lm(data = df, formula = y~x))
产生以下内容:
...Truncated...
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 43.8665 2.9456 14.892 <2e-16 ***
x.L 0.5284 13.9151 0.038 0.970
x.Q -17.6699 14.1375 -1.250 0.215
x.C 0.3310 13.9882 0.024 0.981
x^4 -0.8420 14.0647 -0.060 0.952
x^5 20.1605 14.0629 1.434 0.156
...Truncated...
为了避免这种情况,我可以 "un-order" 这个因素,但这对我的情况来说很不方便。有没有办法强制 R 使用实际的级别名称?另外,仅对前三个估计名称的x.L
、x.Q
和x.C
有何解释?
由于缺乏答案,实现这些目标的最佳方法似乎是 "un-order" 因子变量,运行 线性模型,然后 "re-order" 因子变量,如:
df$x <- factor(df$x, ordered = FALSE)
m <- lm(data = df, formula = y~x)
df$x <- factor(df$x, ordered = TRUE)