r - 逻辑回归 (GLM) 输出:apa.reg.table
问题描述
我一直在使用逻辑回归,并且想用完报告几个模型(“块”),以便我可以比较它们。
我发现 apa.reg.table 可以创建我希望看到的那种输出,但是,唉,当我运行 glm 模型时,我收到错误消息。当我运行回归时没有这样的错误消息。我对通过百分比变化比较这些块模型特别感兴趣,这在常规回归中运行良好。
问题:
- 有什么方法可以使用逻辑回归运行 apa.reg.table 吗?
- 如果没有,是否有人知道可用于帮助我实现目标的任何软件包或技术?
...在研究问题时,我运行了 iris 数据库:
data(iris)
...然后运行一系列四个连续的逻辑回归:
#Logistic regression models
MODEL_A<-glm(species~sepal.len, data=iris,, family=binomial())
MODEL_B<-glm(species~sepal.len+sepal.wid, data=iris, family=binomial())
MODEL_C<-glm(species~sepal.len+sepal.wid+petal.len, data=iris, family=binomial())
MODEL_D<-glm(species~sepal.len+sepal.wid+petal.len+petal.wid, data=iris, family=binomial())
apa.reg.table(MODEL_A,MODEL_B,MODEL_C,MODEL_D)
...但我收到以下错误消息:
#Error in if (F.value < 0) stop("Your 'F.value' is not correctly specified.") :
# argument is of length zero
#In addition: Warning messages:
#1: Unknown or uninitialised column: 'r.squared'.
#2: Unknown or uninitialised column: 'p.value'.
...它在常规回归分析中运行良好:
#regression models:
MODEL_B2<-lm(sepal.len~sepal.wid, data=iris)
MODEL_C2<-lm(sepal.len~sepal.wid+petal.len, data=iris)
MODEL_D2<-lm(sepal.len~sepal.wid+petal.len+petal.wid, data=iris)
#create table with regression models--no error messages:
apa.reg.table(MODEL_B2,MODEL_C2,MODEL_D2)
任何帮助将不胜感激。
解决方案
您可以尝试使用扫帚:
library(broom)
colnames(iris) =c("sepal.len","sepal.wid","petal.len","petal.wid","species")
MODEL_A<-glm(species~sepal.len, data=iris,, family=binomial())
MODEL_B<-glm(species~sepal.len+sepal.wid, data=iris, family=binomial())
MODEL_C<-glm(species~sepal.len+sepal.wid+petal.len, data=iris, family=binomial())
MODEL_D<-glm(species~sepal.len+sepal.wid+petal.len+petal.wid, data=iris, family=binomial())
您可以将它们放在列表中:
lapply(list(MODEL_A,MODEL_B,MODEL_C,MODEL_D),tidy)
或者:
library(dplyr)
library(purrr)
res = tibble(name=c("MODEL_A","MODEL_B","MODEL_C","MODEL_D"),
models=list(MODEL_A,MODEL_BMODEL_C,MODEL_D)) %>%
mutate(coef=map(models,tidy),stats=map(models,glance))
`
然后:
res %>% unnest(coef)
res %>% unnest(stats)
推荐阅读
- c++ - _get_second() 中的 xutility 堆栈溢出
- trace - 如何使用 sleuth/brave 传播具有不同标头名称的标头值
- node.js - MulterError:意外的字段,reactjs,vuejs,nodejs
- java - 从数组中返回 K 个最大的元素。(JAVA)
- ios - Swift 4 使用外部网络框架时将结果传输到主线程
- android - 升级到 roboelectric 4.0 并给出依赖错误
- r - 如何将数字向量转换为字符,使每个字符元素在 R 中具有相同的十进制长度?
- java - 在两个构造函数中初始化最终变量
- node.js - 错误:5 NOT_FOUND:在 LongRunningRecognize 上找不到请求的实体
- c# - Linq-to-SQL 中的多个 JOIN