二次型的公式操作
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
时跌跌撞撞。也许我会自己问这个问题。
我有一个简短的问题,为什么下面的操作不起作用:
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
时跌跌撞撞。也许我会自己问这个问题。