逻辑回归最佳子集:由于跳跃设置导致 bestglm 错误
Logistic regression best subset: Error in bestglm due to leaps setup
当 运行 使用 bestglm
库
的最佳子集 glm 时出现错误
有了这个数据
https://www.mediafire.com/file/9d8fj2p9wpqnf62/dat5.xlsx/file
在 excel 中只有 5 (YES/NO) 个变量和年龄,只有 25 行但它重现了错误。
这是代码
library(readxl)
library(bestglm)
lbw <- read_xlsx("C:/Users/DOL11/dat5.xlsx")
lbw.for.bestglm <- within(lbw, {
id <- NULL # Delete
y <- PA # PA into y
PA <- NULL # Delete PA
})
## Reorder variables
lbw.for.bestglm <-
lbw.for.bestglm[, c("Age","Migrant_origin","GenderFemale","GenderMale","GenderNOBIN", "y")]
lbw.for.bestglm$Migrant_origin<- as.factor(lbw.for.bestglm$Migrant_origin)
lbw.for.bestglm$GenderFemale<- as.factor(lbw.for.bestglm$GenderFemale)
lbw.for.bestglm$GenderMale<- as.factor(lbw.for.bestglm$GenderMale)
lbw.for.bestglm$GenderNOBIN<- as.factor(lbw.for.bestglm$GenderNOBIN)
lbw.for.bestglm$y<- as.factor(lbw.for.bestglm$y)
lbw.for.bestglm<-as.data.frame(lbw.for.bestglm)
#Xy<-as.data.frame(cbind(lbw.for.bestglm,y))
res.bestglm <-
bestglm(Xy = lbw.for.bestglm,
family = gaussian,
IC = "AIC", # Information criteria for
method = "exhaustive")
我从本教程中获得了代码
https://rstudio-pubs-static.s3.amazonaws.com/2897_9220b21cfc0c43a396ff9abf122bb351.html
我尝试了不同的方法来组合 X 矩阵和 y,但总是出现错误
binary categorical variables converted to 0-1 so 'leaps' could be used.
Error in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, :
NA/NaN/Inf in foreign function call (arg 4)
我认为错误与您指定的家庭有关,如果您使用family = binomial()
,则没有错误。
library(readxl)
library(bestglm)
lbw <- read_xlsx("dat5_error.xlsx") # your data
lbw.for.bestglm <- within(lbw, {
id <- NULL # Delete
y <- PA # PA into y
PA <- NULL # Delete PA
})
## Reorder variables
lbw.for.bestglm <-
lbw.for.bestglm[, c("Age","Migrant_origin","GenderFemale","GenderMale","GenderNOBIN", "y")]
lbw.for.bestglm$Migrant_origin<- as.factor(lbw.for.bestglm$Migrant_origin)
lbw.for.bestglm$GenderFemale<- as.factor(lbw.for.bestglm$GenderFemale)
lbw.for.bestglm$GenderMale<- as.factor(lbw.for.bestglm$GenderMale)
lbw.for.bestglm$GenderNOBIN<- as.factor(lbw.for.bestglm$GenderNOBIN)
lbw.for.bestglm$y<- as.factor(lbw.for.bestglm$y)
lbw.for.bestglm<-as.data.frame(lbw.for.bestglm)
## produces error
res.bestglm <-
bestglm(Xy = lbw.for.bestglm,
family = gaussian(),
IC = "AIC", # Information criteria for
method = "exhaustive")
## no error
res.bestglm <-
bestglm(Xy = lbw.for.bestglm,
family = binomial(),
IC = "AIC", # Information criteria for
method = "exhaustive")
当 运行 使用 bestglm
库
有了这个数据
https://www.mediafire.com/file/9d8fj2p9wpqnf62/dat5.xlsx/file
在 excel 中只有 5 (YES/NO) 个变量和年龄,只有 25 行但它重现了错误。
这是代码
library(readxl)
library(bestglm)
lbw <- read_xlsx("C:/Users/DOL11/dat5.xlsx")
lbw.for.bestglm <- within(lbw, {
id <- NULL # Delete
y <- PA # PA into y
PA <- NULL # Delete PA
})
## Reorder variables
lbw.for.bestglm <-
lbw.for.bestglm[, c("Age","Migrant_origin","GenderFemale","GenderMale","GenderNOBIN", "y")]
lbw.for.bestglm$Migrant_origin<- as.factor(lbw.for.bestglm$Migrant_origin)
lbw.for.bestglm$GenderFemale<- as.factor(lbw.for.bestglm$GenderFemale)
lbw.for.bestglm$GenderMale<- as.factor(lbw.for.bestglm$GenderMale)
lbw.for.bestglm$GenderNOBIN<- as.factor(lbw.for.bestglm$GenderNOBIN)
lbw.for.bestglm$y<- as.factor(lbw.for.bestglm$y)
lbw.for.bestglm<-as.data.frame(lbw.for.bestglm)
#Xy<-as.data.frame(cbind(lbw.for.bestglm,y))
res.bestglm <-
bestglm(Xy = lbw.for.bestglm,
family = gaussian,
IC = "AIC", # Information criteria for
method = "exhaustive")
我从本教程中获得了代码
https://rstudio-pubs-static.s3.amazonaws.com/2897_9220b21cfc0c43a396ff9abf122bb351.html
我尝试了不同的方法来组合 X 矩阵和 y,但总是出现错误
binary categorical variables converted to 0-1 so 'leaps' could be used.
Error in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, :
NA/NaN/Inf in foreign function call (arg 4)
我认为错误与您指定的家庭有关,如果您使用family = binomial()
,则没有错误。
library(readxl)
library(bestglm)
lbw <- read_xlsx("dat5_error.xlsx") # your data
lbw.for.bestglm <- within(lbw, {
id <- NULL # Delete
y <- PA # PA into y
PA <- NULL # Delete PA
})
## Reorder variables
lbw.for.bestglm <-
lbw.for.bestglm[, c("Age","Migrant_origin","GenderFemale","GenderMale","GenderNOBIN", "y")]
lbw.for.bestglm$Migrant_origin<- as.factor(lbw.for.bestglm$Migrant_origin)
lbw.for.bestglm$GenderFemale<- as.factor(lbw.for.bestglm$GenderFemale)
lbw.for.bestglm$GenderMale<- as.factor(lbw.for.bestglm$GenderMale)
lbw.for.bestglm$GenderNOBIN<- as.factor(lbw.for.bestglm$GenderNOBIN)
lbw.for.bestglm$y<- as.factor(lbw.for.bestglm$y)
lbw.for.bestglm<-as.data.frame(lbw.for.bestglm)
## produces error
res.bestglm <-
bestglm(Xy = lbw.for.bestglm,
family = gaussian(),
IC = "AIC", # Information criteria for
method = "exhaustive")
## no error
res.bestglm <-
bestglm(Xy = lbw.for.bestglm,
family = binomial(),
IC = "AIC", # Information criteria for
method = "exhaustive")