我先声明一下,我对R没有什么经验,非常感谢大家提供的任何帮助。
我有一个数据帧(我认为)的值:
输入图片描述
我正在尝试预测"predbfwdth"的每个值。列,使用我从其他数据和"ThatwgFAC"的值创建的模型。和"ThalwgSlop".
模型名称为" model ";它是一个广义的加性模型,所以我会用predict。gam。我认为代码应该是这样的:
PredBFwdth = predict.gam(Model, ThalwgFAC, ThalwgSlop)
显然这不起作用。我需要使用ThalwgFAC和ThalwgSlop列以及模型中的相应值对数据中的每一行进行预测。有人能帮忙吗?我四处寻找答案,但其他人问题的代码对我来说是无法破译的。(
我强烈建议提供足够的数据和代码来创建一个可重复的示例。这意味着你的数据可能看起来像一个样本,你正在尝试什么代码,以方便帮助。
首先,我将从data。frame
中的一些假数据开始dat <- data.frame(
ThalwgFAC = rnorm(100,3,5),
ThalwgSlop = rnorm(100,3,2),
ThalwgEv = rnorm(100,2,2)
)
接下来,拟合模型
library(mgcv)
fit <- gam(ThalwgEv ~ s(ThalwgFAC) + s(ThalwgSlop), data = dat)
现在关于预测新数据的问题,您可以将新数据(作为数据帧)提供给predict
函数并指定要使用哪个模型(上面的fit
对象)。这假定数据帧包含与模型使用的相同的变量名(例如,ThalwgFAC和ThalwgSlop)。
dat2 <- data.frame(
ThalwgFAC = rnorm(100,3,5),
ThalwgSlop = rnorm(100,3,2),
ThalwgEv = rnorm(100,2,2)
)
pred <- predict(fit, newdata = dat2)
predict
函数将拾取fit
对象的类,因此不需要指定要使用的方法(即predict.gam)。