将列表作为参数传递给 MASS 包中 stepAIC 函数的方向参数
Passing a list as a parameter for the direction argument of the stepAIC function in the MASS package
我想基于不同的变量选择方法构建三个逻辑回归模型:一个反向选择模型、一个正向选择模型和一个逐步选择模型。
我使用 base R glm() 设置回归模型,使用 MASS 包中的 stepAIC() 进行模型选择。 stepAIC() 有一个方向参数,可以设置为 'backward'(向后选择)、'forward'(向前选择)或 'both'(逐步选择)。
我试图将不同变量选择方法的列表('backward'、'forward'、'both')传递给方向参数,但我收到一条错误消息。
我已经检查过 https://www.rdocumentation.org/packages/MASS/versions/7.3-51.4/topics/stepAIC 但我 none 更聪明。
# Loading toy dataset
mtcars
# Loading packages
library(dplyr)
library(MASS)
# The list of variable selection methods
my_model_types = list(c("both","backward","forward"))
# Model building function
my_modelling_function = function(direction, model) {
model = glm(am ~ mpg + disp + hp + drat + wt + qsec, data = mtcars,
family = binomial) %>%
stepAIC(trace = FALSE, direction = my_model_types)
}
# Building models using different variable selection methods
lapply(my_model_types, my_modelling_function)
# Error message
Error in match.arg(direction) : 'arg' must be NULL or a character vector
我本来期望三种不同模型的输出,但我收到一条错误消息: match.arg(方向) 错误:'arg' 必须为 NULL 或字符向量。
我哪里错了?感谢您的帮助!
您在函数中引用了 my_model_types
,而不是函数参数 direction
。此外,您还有第二个函数参数 model
,它没有传递给函数,也没有被使用。
这是对您的代码的更正
# Loading toy dataset
mtcars
# Loading packages
library(dplyr)
library(MASS)
# The list of variable selection methods
my_model_types = list("both","backward","forward")
# Model building function
my_modelling_function = function(direction) {
glm(am ~ mpg + disp + hp + drat + wt + qsec, data = mtcars,
family = binomial) %>%
stepAIC(trace = FALSE, direction = direction)
}
# Building models using different variable selection methods
lapply(my_model_types, my_modelling_function)
我想基于不同的变量选择方法构建三个逻辑回归模型:一个反向选择模型、一个正向选择模型和一个逐步选择模型。
我使用 base R glm() 设置回归模型,使用 MASS 包中的 stepAIC() 进行模型选择。 stepAIC() 有一个方向参数,可以设置为 'backward'(向后选择)、'forward'(向前选择)或 'both'(逐步选择)。
我试图将不同变量选择方法的列表('backward'、'forward'、'both')传递给方向参数,但我收到一条错误消息。
我已经检查过 https://www.rdocumentation.org/packages/MASS/versions/7.3-51.4/topics/stepAIC 但我 none 更聪明。
# Loading toy dataset
mtcars
# Loading packages
library(dplyr)
library(MASS)
# The list of variable selection methods
my_model_types = list(c("both","backward","forward"))
# Model building function
my_modelling_function = function(direction, model) {
model = glm(am ~ mpg + disp + hp + drat + wt + qsec, data = mtcars,
family = binomial) %>%
stepAIC(trace = FALSE, direction = my_model_types)
}
# Building models using different variable selection methods
lapply(my_model_types, my_modelling_function)
# Error message
Error in match.arg(direction) : 'arg' must be NULL or a character vector
我本来期望三种不同模型的输出,但我收到一条错误消息: match.arg(方向) 错误:'arg' 必须为 NULL 或字符向量。
我哪里错了?感谢您的帮助!
您在函数中引用了 my_model_types
,而不是函数参数 direction
。此外,您还有第二个函数参数 model
,它没有传递给函数,也没有被使用。
这是对您的代码的更正
# Loading toy dataset
mtcars
# Loading packages
library(dplyr)
library(MASS)
# The list of variable selection methods
my_model_types = list("both","backward","forward")
# Model building function
my_modelling_function = function(direction) {
glm(am ~ mpg + disp + hp + drat + wt + qsec, data = mtcars,
family = binomial) %>%
stepAIC(trace = FALSE, direction = direction)
}
# Building models using different variable selection methods
lapply(my_model_types, my_modelling_function)