r - 二次形式的公式运算

标签 r math machine-learning statistics artificial-intelligence

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

BAD ~ A + B + C # normal case

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

有什么办法解决吗,谢谢!

最佳答案

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

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

抵制住I(C^2)的诱惑,因为这会带来糟糕的统计推断。有几个用于“方程”符号操作的包:polynom 是我立即记住的名字。还有外部符号数学包 Yacas 的 RYacas 包装器。

如果您从模型组件的字符值开始,那么这会将各个部分组装为文本并最终转换为公式类:

> 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)

我在尝试采用“双面”公式并将其聚合时犯了严重错误。也许我自己也会问这个问题。

关于r - 二次形式的公式运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785005/

相关文章:

r - 列中逗号分隔类别的频率计数

r - 自从更新 sp 包后,我通过调用 sp::CRS 定义收到警告

algorithm - 如何使用 32 位整数计算 (2^32)/n

python-3.x - 如何对数据进行 min_max 标准化

machine-learning - 为什么我的注意力模型比非注意力模型差

r - R 中支持 Callback_Early_Stopping

r - Alpha 不适用于 ggplot 散点图中的所有点

javascript - 将正态分布转换为线性分布

java - 为 x 和 y 设计一个循环内的公式来满足这些要求

将传单图渲染为 R 中的光栅?