让我说我有一个公式(例如myformula <- y ~ x1 + x2
)和一个数据集d。出于诊断目的,我想看看最终在线性回归中使用的观察结果(r <- lm(myformula, data=d)
)。这基本上需要根据d构建一个带有y,x1和x2的数据帧,并删除所有缺少数据的观察结果(complete.obs)。或者,或许,操纵r对象的内容?
建议表示赞赏。
/ IAW
答案 0 :(得分:2)
在尝试自己动手之前,先看一下模型对象(使用str(r)
在那里找到一个高峰)或者在文档中查找相关位。来自?lm
:
model, x, y, qr
逻辑值。如果TRUE
返回拟合的相应组成部分(模型框架,模型矩阵,响应,QR分解)。
由于默认情况下model
为真,我们所要做的就是在结果中查找它。文档的值部分描述了返回的对象:
y
如果请求,则使用响应。
x
如果需要,使用模型矩阵。
model
如果请求(默认值),则使用模型框架。
现在举个例子:
> mod = lm(mpg ~ disp + I(disp^2), data = mtcars)
> head(mod$model)
mpg disp I(disp^2)
Mazda RX4 21.0 160 25600
Mazda RX4 Wag 21.0 160 25600
Datsun 710 22.8 108 11664
Hornet 4 Drive 21.4 258 66564
Hornet Sportabout 18.7 360 129600
Valiant 18.1 225 50625
请注意,这是严格的数据,仍然是data.frame
。如果您想要模型矩阵,matrix
包含截距和任何因子的虚拟变量,请在x = TRUE
调用中设置lm
,然后查看{{ 1}}。