我有模型lm(y~x+I(log(x))
,我想根据我的模型predict
来预测包含 的新值的新数据框x
。predict 如何处理I
模型中的 AsIs 函数?是否I(log(x))
需要在 of 的newdata
参数中额外指定predict
或predict
理解它应该构造和使用I(log(x))
from x
?
更新
@DWin:变量进入模型的方式会影响系数,尤其是对于交互作用。我的例子很简单,但试试这个
x<-rep(seq(0,100,by=1),10)
y<-15+2*rnorm(1010,10,4)*x+2*rnorm(1010,10,4)*x^(1/2)+rnorm(1010,20,100)
z<-x^2
plot(x,y)
lm1<-lm(y~x*I(x^2))
lm2<-lm(y~x*x^2)
lm3<-lm(y~x*z)
summary(lm1)
summary(lm2)
summary(lm3)
您会看到 lm1=lm3,但 lm2 有所不同(只有 1 个系数)。假设您不想创建虚拟变量z
(对于大型数据集计算效率低下),构建像 lm3 这样的交互模型的唯一方法是使用I
. 同样,这是一个非常简单的示例(可能没有统计意义),但它在复杂模型中是有意义的。
@Ben Bolker:我想避免猜测并尝试寻求权威答案(我无法直接用我的模型检查这一点,因为它们比示例复杂得多)。我的猜测是predict
正确地假设并构建I(log(x))