以CSV格式编写回归摘要,包括模型统计信息

问题描述

问题在于听起来;目前,我使用broom包整理我的回归摘要,然后使用write_csv摘要自然转换为csv。但是,问题在于,此“整理的”摘要不包含有用的统计信息,例如R平方,残差分布和F统计信息的p值。

有人知道如何将回归摘要写到包含此有用信息的csv中吗?

谢谢。

解决方法

一种替代方法是创建一个函数,该函数在list中存储您需要的所有信息,如下所示:

lm(mpg ~ cyl,mtcars) -> model

model_stats <- function(model) {
  
  data.frame(model = toString(model$call),broom::augment(model)) -> info1
  
  data.frame(model = toString(model$call),broom::tidy(model)) -> info2
  
  data.frame(model = toString(model$call),broom::glance(model)) -> info3
  
  list(info1,info2,info3) -> info_all
  
  return(info_all)
  
}

out <- model_stats(model)

sapply(seq_along(out),function(i) write.csv(model_stats(model)[[i]],paste0('info',i,'.csv')))
,

我认为,您的问题的核心问题是您不将所有汇总表都作为data.frames或list(通过编译所有信息)来处理,不是吗??

因此,如果您只想在csv中编写特定的统计信息摘要(aov,TukeyHSD,增强,浏览等),则应将其更改为data.frame

“扫帚”小插图中的一些示例:https://cran.r-project.org/web/packages/broom/vignettes/broom.html

glmfit <- glm(am ~ wt,mtcars,family = "binomial")
tidy(glmfit)
fit1 <- as.data.frame(augment(glmfit))
write.csv(fit1,"test.csv")