我在R
中有一个线性模型 x <- lm(dist ~ poly(speed, degree=2), data = cars)
并希望了解,
a)汽车的哪些变量用作模型中的预测变量。在这里:&#34;速度&#34;
b)如何在模型对象中访问它们。这里:4 4 7 7 8 9 10 ...
model.frame包含已经转换的术语,但没有帮助。 lm对象包含数据,因为expand.model.frame(x,~speed)确实有效。但它在哪里?
任何提示?
答案 0 :(得分:1)
要获取变量列表,您可以使用all.vars
:
all.vars(formula(x))
[1] "dist" "speed"
仅获取预测变量:
formula(x)[[3]]
poly(speed, degree = 2)
all.vars(formula(x)[[3]]) # Use the third element of the formula
[1] "speed"
答案 1 :(得分:0)
x$coefficients
将为您提供每个变量对结果的预测影响
我在这里制作了一个类似的模型:
x<-lm(cyl~ mpg, mtcars)
(Intercept) mpg
11.260683 -0.252515
如果您另外添加,则会有其他系数:
x<-lm(cyl~ disp + mpg, mtcars)
x$coefficients
(Intercept) disp mpg
5.917863266 0.009197743 -0.092206375
你可以使用summary
Residuals:
Min 1Q Median 3Q Max
-1.3002 -0.6138 0.1776 0.5486 1.1406
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.917863 1.255293 4.714 5.61e-05 ***
disp 0.009198 0.002011 4.574 8.27e-05 ***
mpg -0.092206 0.041352 -2.230 0.0337 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.7364 on 29 degrees of freedom
Multiple R-squared: 0.8409, Adjusted R-squared: 0.83
F-statistic: 76.66 on 2 and 29 DF, p-value: 2.647e-12
模型数据集(这里只是前几个):
head(x$model)
cyl disp mpg
Mazda RX4 6 160 21.0
Mazda RX4 Wag 6 160 21.0
Datsun 710 4 108 22.8
Hornet 4 Drive 6 258 21.4
Hornet Sportabout 8 360 18.7
Valiant 6 225 18.1
您可以使用典型的对象类查询访问模型的各个部分:
x$model$cyl
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
基于您的模型(仅为前几个)的每个观察结果的预测结果:
head(x$fitted.values)
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout Valiant
5.453168 5.453168 4.808914 6.317664 7.504791 6.318420