set.seed(98234)
y <- rnorm(100)
x <- rnorm(100)
lm0 <- lm(y ~ x)
lm1 <- lm(I(y) ~ I(x))
所有工作完全正常,我想我们可以同意'lm0'是人们期望发生的事情。 lm1
等于lm0
(按系数判断)。
set.seed(98234)
lm3 <- lm(I(rnorm(100)) ~ rnorm(100))
set.seed(98234)
lm4 <- lm(rnorm(100) ~ I(rnorm(100)))
但当I()
出现在公式的两面或两面时,我都无法从上面得到结果:
set.seed(98234)
lm2 <- lm(I(rnorm(100)) ~ I(rnorm(100)))
set.seed(98234)
lm5 <- lm(rnorm(100) ~ rnorm(100))
任何想法为什么?
答案 0 :(得分:1)
参数的左侧永远不会分解为组件,因此I
分组符号是不必要的。
lm(I(a+b+c+d/e)~f)
与
相同lm(a+b+c+d/e~f)
尽管
lm(a~b+c+d/e)
不会与
相同lm(a~I(b+c+d/e))
甚至
lm(a~b+c+I(d/e))