二次型的公式操作

formula manipulation in with quadratic form

我有一个简短的问题,为什么下面的操作不起作用:

BAD ~ A + B + C # normal case

BAD ~ A + B^2 + C^2 # manipulated

有什么解决办法,谢谢!

R 公式界面不是为符号数学设计的,而是为建模设计的。如果您想在模型中使用二次项,请学习使用 poly.

BAD ~ A + poly(B, 2) + poly(C,2) 

抵制 se I(C^2) 的诱惑,因为这会产生糟糕的统计推断。有几个用于 "equations" 符号操作的包: polynom 是我记得的名字。还有外部符号数学包 Yacas 的 RYacas 包装器。

如果您从模型组件的字符值开始,那么这会将 assemble 片段作为文本并最终转换为公式 class:

> y = "Y"
> preds <- LETTERS[1:3]

> as.formula( paste( y,"~", paste( paste0( "poly(",preds,",",2, ")"), collapse="+") ))
Y ~ poly(A, 2) + poly(B, 2) + poly(C, 2)

我在尝试采用 "two-sided" 公式和 polyize 时跌跌撞撞。也许我会自己问这个问题。