我正在尝试对我的数据框进行简单的线性回归,如下所示。实际的数据集有更多的因子和更多的预测变量(x)都试图预测 y。
f1 f2 x y
x a 1 3.3
x a 2 3.2
x a 3 3.04
x b 1 4.5
x b 2 4.9
x b 3 8
y a 1 20.1
y a 2 20.3
y a 3 21.9
y b 1 101.2
y b 2 201.8
y b 3 332.8
请注意,对于 f1 和 f2 的每种组合,趋势都会有所不同。我想要做的是为 f1 和 f2 的每个组合构建一个 lm 模型,将其存储在某种列表中,然后当我调用预测时,我应该能够使用适当的模型并根据 x 预测 y。我想我应该使用 ldply 创建一个模型列表,如下图
lm.model.list = ldply(x,.(f1,f2),function(x) {
fit = lm(x$y ~ x$x)
return(fit)
}
这给出了一个错误,
Error: attempt to apply non-function
另外,假设我将所有内容都放入列表中,之后如何使用 predict ?
编辑:我意识到我可以将指标变量用于建模本身的因素,但我想避免这种情况。