假设在运行时给了我一个数据框df
,我如何使用多项式回归拟合多项式模型,每个预测器是一个来自df的列,并且具有一个常数k> = 2 < / p>
困难在于,'df'在运行时被读取,因此在编写脚本时,其列的数量和名称是未知的。(但我知道响应变量是第1列)所以当我调用{{1我不知道怎么写lm
。
如果k = 1,那么我可以简单地写一个通用的线性公式
formula
我能为多项式公式做些什么吗?
答案 0 :(得分:5)
一种相当复杂的方法是通过将条款粘贴在一起来为formula
回归调用创建lm
。
# some data
dat <- data.frame(replicate(10, rnorm(20)))
# Create formula - apply f function to all columns names excluding the first
form <- formula(paste(names(dat)[1], " ~ ",
paste0("poly(", names(dat)[-1], ", 2)", collapse="+")))
# run regression
lm(form , data=dat)