`aov` 和 `lm` 返回的 "effects" 是什么?
What is the "effects" returned by `aov` and `lm`?
我想问一下aov
输出中$coefficients
和$effects
的区别。
此处 f1
因素和交互作用 f1 * f2
很重要。我想解释该因素对响应的影响,我认为 $effects
正是我所需要的。
让我们考虑以下简单的数据集。
f1 <- c(1,1,0,0,1,1,0,0)
f2 <- c(1,0,0,1,1,0,0,1)
r <- c(80, 50, 30, 10, 87,53,29,8)
av <- aov(r ~ f1 * f2)
summary(av)
av$coefficients
av$effects
plot(f1, r)
似乎响应增加了 48.25 个单位,因为 f1
mean(r[f1==1]) - mean(r[f1==0])
.
但我在 $effects
输出中看不到。 $effects
输出真正告诉我什么?
效果是根据设计矩阵的 QR 分解旋转的响应值。检查:
all.equal(qr.qty(av$qr, r), unname(av$effects))
# [1] TRUE
效应对于从 QR 因式分解中查找回归系数很有用:
all.equal(backsolve(av$qr$qr, av$effects), unname(coef(av)))
# [1] TRUE
它们也可用于查找拟合值和残差:
e1 <- e2 <- av$effects
e1[(av$rank+1):length(e1)] <- 0
e2[1:av$rank] <- 0
all.equal(unname(qr.qy(av$qr, e1)), unname(fitted(av)))
# [1] TRUE
all.equal(unname(qr.qy(av$qr, e2)), unname(residuals(av)))
# [1] TRUE
所以总而言之,效果是数据在旋转域的表示,并且都是最小二乘回归。
我想问一下aov
输出中$coefficients
和$effects
的区别。
此处 f1
因素和交互作用 f1 * f2
很重要。我想解释该因素对响应的影响,我认为 $effects
正是我所需要的。
让我们考虑以下简单的数据集。
f1 <- c(1,1,0,0,1,1,0,0)
f2 <- c(1,0,0,1,1,0,0,1)
r <- c(80, 50, 30, 10, 87,53,29,8)
av <- aov(r ~ f1 * f2)
summary(av)
av$coefficients
av$effects
plot(f1, r)
似乎响应增加了 48.25 个单位,因为 f1
mean(r[f1==1]) - mean(r[f1==0])
.
但我在 $effects
输出中看不到。 $effects
输出真正告诉我什么?
效果是根据设计矩阵的 QR 分解旋转的响应值。检查:
all.equal(qr.qty(av$qr, r), unname(av$effects))
# [1] TRUE
效应对于从 QR 因式分解中查找回归系数很有用:
all.equal(backsolve(av$qr$qr, av$effects), unname(coef(av)))
# [1] TRUE
它们也可用于查找拟合值和残差:
e1 <- e2 <- av$effects
e1[(av$rank+1):length(e1)] <- 0
e2[1:av$rank] <- 0
all.equal(unname(qr.qy(av$qr, e1)), unname(fitted(av)))
# [1] TRUE
all.equal(unname(qr.qy(av$qr, e2)), unname(residuals(av)))
# [1] TRUE
所以总而言之,效果是数据在旋转域的表示,并且都是最小二乘回归。