r——逻辑回归(GLM)输出:apa.reg.table



我一直在研究逻辑回归,并希望运行该报告几个模型("块"(,这样我就可以对它们进行比较。

我找到了一个.reg.table,它创建了我想要看到的那种输出,但是,唉,当我运行glm模型时,我会收到错误消息。当我运行回归时没有这样的错误消息。我特别感兴趣的是通过百分比变化来比较这些块体模型,这在规则回归中运行良好。

问题:

  1. 有什么方法可以用逻辑回归运行app.reg.table吗
  2. 如果没有,有人知道可以用来帮助我实现目标的任何软件包或技术吗

。。。在研究这个问题时,我运行了虹膜数据库:

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)

最新更新