尝试使用R的公式符号拟合响应表面

问题描述 投票:0回答:1

我有一组几十个数字变量,并试图弄清楚如何在这些变量中紧凑地表示二次形式。我也想包括变量本身。这里的想法是,我们正在拟合一个响应表面,而不是像标准R公式符号所假定的那样相互作用一组处理。我正在尝试将合适的表达式转换为R公式,以适合通过不同的技术,不同的数据集或不同的时期进行估算。

如果在任何地方都明确说明了R的公式表示法是如何工作的,我一直找不到它。 R据说是从其古老的论文中复制了该符号,但它与当前R的用法绝不相同。我发现的所有其他描述都仅提供示例,这些示例并没有涵盖所有情况-甚至都不是每种情况。

因此,作为一个例子,在这里,我尝试用三个变量构造一个二次形式,而不用手写在每对周围带有I()的方式写出所有对。

library(tidyverse)
A <- B <- C <- 1:10
LHS <- 1:10 * 600
tb <- tibble(LHS, A, B, C)
my_eq <- as.formula(LHS ~ I(A + B + C)*I(A + B + C))

我没有找到任何方法可以判断我是否成功都没有my_form_eq也不

terms(my_form_eq)

似乎很有启发。

例如,可以预测是否

identical(as.formula(LHS ~ I(A + B + C)*I(A + B + C)), as.formula(LHS ~ I((A + B + C)*(A + B + C)))

是对还是错?我什至无法猜测。或更简单地说,~ A * I(A)是否等于A,I(A^2)或其他?您怎么知道?

为了重申我的问题,我想完整地陈述R的公式表示法的工作原理,足以涵盖每种情况并预测每种情况的含义,否则,我们会采用一种直接的方式将现有公式扩展为估计其系数的所有原子项。

r regression formula polynomials coefficients
1个回答
0
投票

这可能无法回答您的问题,但是我还是会发布此信息,因为我认为这可能会有所帮助。

I函数禁止对运算符(例如“ +”)进行解释,因此您的公式可能不会执行您期望的操作。例如,lm(my_eq)的结果将与执行以下操作的结果相同:

D <- A + B + C
lm(LHS ~ D * D)

然后您也可以只执行lm(LHS ~ D)

关于您的问题,我相信John Maindonald写了一本不错的书,解释了许多情况下的R公式。但这是在我的办公室里,今天是星期天。

© www.soinside.com 2019 - 2024. All rights reserved.