r - 创建游戏模型的 r 数据框
问题描述
如果我适合以下三种不同的游戏模型:
library(mgcv)
set.seed(0)
df <- data.frame(count = rpois(100,1),
pred1 = rnorm(100, 10, 1),
pred2 = rnorm(100, 0, 1),
pred3 = rnorm(100, 0, 1))
m1 <- gam(count ~ s(pred1),
data = dat,
family = poisson(link="log"),
method = "REML",
select = TRUE)
m2 <- gam(count ~ s(pred2),
data = dat,
family = poisson(link="log"),
method = "REML",
select = TRUE)
m3 <- gam(count ~ s(pred3),
data = dat,
family = poisson(link="log"),
method = "REML",
select = TRUE)
然后尝试将它们放入单个数据框中:
models <- data.frame(m = c(m1,m2,m3))
我收到此错误:
Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) :
cannot coerce class ‘"family"’ to a data.frame
任何想法如何解决这一问题?我想创建一个结构,我可以循环从中做出一些预测。
解决方案
如文档所示,返回值mgcv::gam
是gam
类的对象。这gamObject
继承自基础 R 的类对象 ( lm
and glm
),因此包括许多无法轻易绑定到 a 的二维中的底层元素data frame
:
拟合 Gam 对象
由函数返回的拟合 GAM 对象
gam
以及从类“glm”和“lm”继承的“gam”类。方法函数anova
,logLik
,influence
,plot
,predict
,residuals
和summary
此类存在。
通常要从这些模型对象中检索估计值,您会运行summary
以返回命名元素的列表,例如系数、残差等。从那里,提取所需的组件,可以是向量、矩阵或列表到数据帧中。注意:由于基础组件的长度和类型的不同性质,没有简单的方法可以将模型的所有估计提取到数据框中。
你将不得不问自己:
我想在数据框中对模型进行哪些具体估计?
我是将所有三个模型估计值保存在一个数据框中还是使用数据框列表?
存储哪些指标数据(数据、公式等)以区别于其他数据?
StackOverflow R 帖子包含许多关于如何将模型估计值(如系数)提取到数据帧中的示例。
一种实现是定义一种方法来提取模型估计,其中输入参数是一个似乎只是所有三个模型之间差异的公式。
run_gam_models <- function(my_formula) {
fit <- gam(my_formula,
data = dat,
family = poisson(link="log"),
method = "REML",
select = TRUE)
results <- summary(fit)
df <- data.frame(results$coefficients, ...)
return(df)
}
# LIST OF DATA FRAMES
coeffs_df_list <- sapply(names(dat)[-1], function(col) {
f <- as.formula(paste0("count ~ ", col))
run_gam_models(f)
}, simplify = FALSE)
# INDIVIDUAL DATA FRAMES
coeffs_df_list$pred1
coeffs_df_list$pred2
coeffs_df_list$pred3
Online Demo (使用glm
)
推荐阅读
- dstore - 如何缓存 dstore 的过滤结果以进行客户端分页?
- api - Azure DevOps REST Api - 有没有办法发布本地包以通过 REST API 提供?
- r - Geom_points 在 ggplot 中使用 colnames as.numeric x 轴和变量作为 y 轴绘制
- ios - 在 iOS App Store 中创建电子书独立应用程序 - 免费使用外部访问代码
- python-3.x - Tkinter 检查窗口是否可见
- ios - CIAreaHistogram 未返回预期结果
- c# - 如何获取列表中所有 SiteMapNodes 的列表(c#)
- ios - 系统警报“无邮件帐户”未显示 iOS 13 / 14
- javascript - 选项卡按钮内的关闭按钮
- javascript - D3 有向图编辑器 - v5 到 v6 迁移问题