R中包括交互作用的所有一阶和二阶预测变量的公式

8
在统计编程语言R中,下面的公式(例如在lm()glm()中):
z ~ (x+y)^2  

等同于

z ~ x + y + x:y

假设我只有连续的预测变量,是否有一种简洁的方法来获取……
z ~ I(x^2) + I(y^2) + I(x) + I(y) + I(x*y)

一个适合因子预测器的正确公式是一种加分项。

可能的解决方案之一是:

z ~ (poly(x,2) + poly(y,2))^2

我正在寻找更加优雅的东西。

这是一个真正的问题吗? - Richard J. Ross III
Richard,你能解释一下为什么你认为这个问题不是真实的吗?在你表示怀疑之后,我已经尝试澄清我的问题了。 - chris
有人将这标记为作业。我需要这个是为了工作,而不是为了作业。我已经添加了一个解决方案来明确表明我不是在寻找快速解决方案,而是优雅的解决方案。 - chris
我正在移除作业标签。我不清楚为什么读者会批评你。这似乎是合理的,而且我上周刚问了一个相关的问题。 - JD Long
在你最初提出这个问题时,它只是一个陈述,根本没有问句,但你已经修改了它,所以我会取消我的负评。 - Richard J. Ross III
请查看“cars”帮助页面中的示例,但请注意,尽管模型相同,但预测器不一定是您所期望的。 - James
1个回答

9

我不知道这样做是否更加优雅,但是poly函数可以接受多个向量:

z ~ poly(x, y, degree=2)

这将创建您所要求的所有组合,而不会产生额外的组合。请注意,在这种方式下,您需要指定degree=2,而不仅仅是2。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接