我一直在研究逻辑回归,并希望运行该报告几个模型("块"(,这样我就可以对它们进行比较。
我找到了一个.reg.table,它创建了我想要看到的那种输出,但是,唉,当我运行glm模型时,我会收到错误消息。当我运行回归时没有这样的错误消息。我特别感兴趣的是通过百分比变化来比较这些块体模型,这在规则回归中运行良好。
问题:
- 有什么方法可以用逻辑回归运行app.reg.table吗
- 如果没有,有人知道可以用来帮助我实现目标的任何软件包或技术吗
。。。在研究这个问题时,我运行了虹膜数据库:
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)