【发布时间】:2020-03-09 15:36:33
【问题描述】:
我对逐步回归有疑问,我的理解是我没有正确传递参数Data。
我有这个功能:
ForwardStep <- function(df,yName, Xs, XsMin) {
Data <- df[, c(yName,Xs)]
fit <- glm(formula = paste(yName, " ~ ", paste0(XsMin, collapse = " + ")),
data = Data, family = binomial(link = "logit") )
ScopeFormula <- list(lower = paste(yName, " ~ ", paste0(XsMin, collapse = " + ")),
upper = paste(yName, " ~ ", paste0(Xs, collapse = " + ")))
result <- step(fit, direction = "forward", scope = ScopeFormula, trace = 1 )
return(result)
}
当我尝试使用以下参数运行它时
df <- data.frame(Y= rep(c(0,1),25),time = rpois(50,2), x1 = rnorm(50, 0,1),
x2 = rnorm(50,.5,2), x3 = rnorm(50,0,1))
yName = "Y"
Xs <- c("x1","x2","x3")
XsMin <- 1
res <- ForwardStep(df,Yname,Xs,XsMin)
我收到一个错误: is.data.frame(data) 中的错误:找不到对象“数据”
但是,如果我首先在 Global Env 中定义 Data,它就可以正常工作了。
Data <- df[, c(yName,Xs)]
res <- ForwardStep(df,Yname,Xs,XsMin)
我猜我的功能步骤实现有误,但是我不完全知道如何以正确的方式进行操作。
【问题讨论】:
-
yName/Yname?
标签: r logistic-regression glm