首页 > 解决方案 > 这个速度、年龄、里程和年份的公式是什么意思?

问题描述

我是 R 新手。我在一些 R 代码中遇到了这个公式:m.formula <- formula(I(speed^2) ~ (age + I(age^2) + I(log(age)) + miles + I(miles^2) + year)). 我可以看到它正在定义一个公式,根据变量速度、年龄、英里和年份给出结果,但我不明白I公式定义的左侧有speed^2括号是什么意思以及为什么。如果有人能用简单的英语解释这个公式,我将不胜感激!提前致谢。

标签: r

解决方案


I()data评估公式内部的转换是必要的。在您的情况下,这意味着speed^2作为age,age^2等的函数log(age)

如果不包含I(),您x^2将被解释为x(正如@ruibarradas 提到的,x*y在's 公式中,因此x + y + x:y只是 ):Rx^2x+x+x:x = x

例如,

head(lm(mpg ~  disp, data = mtcars)$model)
                   mpg disp
Mazda RX4         21.0  160
Mazda RX4 Wag     21.0  160
Datsun 710        22.8  108
Hornet 4 Drive    21.4  258
Hornet Sportabout 18.7  360
Valiant           18.1  225

产生相同的模型比

head(lm(mpg ~  disp^2, data = mtcars)$model)
                   mpg disp
Mazda RX4         21.0  160
Mazda RX4 Wag     21.0  160
Datsun 710        22.8  108
Hornet 4 Drive    21.4  258
Hornet Sportabout 18.7  360
Valiant           18.1  225

推荐阅读