You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

变量选择函数Var_Selection定义需求及代码翻译与技术问询改写

求助:完善R语言变量选择函数Var_Selection的实现

各位大佬好,我正在编写一个用于变量选择的R函数Var_Selection,目标是通过逐步添加变量、计算模型AIC值的方式,筛选出最优的逻辑回归模型变量组合。目前已经完成了部分代码框架,但还有不少细节和逻辑问题需要解决,具体情况如下:

现有代码框架

Var_Selection = function(data, target){
  target = as.character(target)
  form = paste(target, '~ ')
  vect = c()
  # 注:此处原本意图排除目标变量,但写法有误,当前是排除字符串"target"而非传入的目标变量名
  valid.names <- names(data)[names(data) != "target"]
  myAIC = data.frame(var = as.character(), AIC = as.numeric())
  repeat{
    a=Sys.time()
    Perf = data.frame(variable = as.character(), AIC = as.numeric())
    for(i in 2:length(valid.names)){
      # 针对每个变量拟合逻辑回归模型(原注释为法语,已翻译)
      # 注:当前公式拼接和glm参数存在语法问题,未完成
      mylogit = glm(as.formula(paste(form, i)), data=data, family="binomial")
      # 后续需计算AIC并存入Perf数据框,但此部分逻辑未实现
    }
    # 后续需选择AIC最小的变量添加到公式中,更新候选变量列表与form,同时设置循环终止条件,但未实现
  }
}

我遇到的具体问题

  • 公式拼接错误:不知道如何正确将当前遍历的变量名拼接到已有公式form中,当前写法paste(form, i)使用索引而非变量名,逻辑错误;
  • 变量筛选逻辑错误:valid.names的定义有误,当前是排除字符串"target",实际需要排除传入的target参数对应的变量名;
  • AIC存储逻辑缺失:不清楚如何在循环中计算每个候选变量对应模型的AIC,并将变量名与对应AIC存入Perf数据框;
  • 循环终止与更新逻辑缺失:不知道该设置何种终止条件(比如添加新变量后AIC不再下降、所有变量遍历完成),也不清楚每次循环后如何更新公式、候选变量列表等。

希望各位能帮忙指正代码中的问题,完善这个变量选择函数的实现,谢谢大家!

内容的提问来源于stack exchange,提问作者Naï

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:07:30