R - 回归变量函数

时间:2015-03-26 01:55:16

标签: r function dataframe lm

我在SAS中编写了一个宏,我做了我想要的,但现在我想在R中获得一个同样的功能。

我想要一个能够以任意方式转换特定预测变量的函数,然后使用每个转换构建一个单独的回归模型,然后比较结果。

例如,请考虑以下线性回归模型:

lm(y ~ x1 x2,data=df)

我想以三种不同的方式转换x1,通过取日志,取平方,并使其达到.5的幂,然后构建回归方程三次,每次转换一次,然后比较结果。

是否有可以构建的功能或其他可以为我执行此操作的功能?

感谢。

1 个答案:

答案 0 :(得分:4)

这个功能可能会有所改进。对@thelatemail的提示。

lm.3Trans = function(y, x1, x2, transformations = c(log,sqrt,pwer)){
  pwer = function(x, p = 2) poly(x,p)
  res = lapply(transformations, function(f) lm(y ~ f(x1) + x2))
  res
}

这会将您的模型输出到一个列表中,然后您可以执行以下操作:

lapply(lm.3Trans(y,x,x1), summary)

获取更详细的摘要

可能值得扩展这个函数来采用一个公式,也许还有另一个论点来确定应该转换哪个预测变量。如果有用,请告诉我。