【问题标题】:Inputting a whole data frame as independent variables in a logistic regression [duplicate]在逻辑回归中输入整个数据框作为自变量
【发布时间】:2012-12-27 18:12:29
【问题描述】:

可能重复:
short formula call for many variables when building a model

我有一个大数据框(112 个变量),我想对使用 R 进行逐步逻辑回归。我知道如何设置 glm 模型和 stepAIC 模型,但我更愿意不要输入所有标题来输入自变量。有没有一种快速的方法可以为glm 模型提供一个完整的数据框作为自变量,以便它将每一列识别为要包含在模型中的 x 变量?我试过了:

ft<-glm(MFDUdep~MFDUind, family=binomial)

但它不起作用(错误的数据类型)。 MFDUdep 和 MFDUind 都是数据帧,MFDUind 包含 111 个“x”变量,MFDUdep 包含一个“y”。

【问题讨论】:

  • 我可以提出一个相当强烈的建议,除非你有一个真的很好的相反理由,否则你使用某种形式的惩罚回归(例如glmnet包)而不是逐步回归?
  • 我会考虑到这一点,但这并不能真正回答我的问题。
  • 这不是为了回答你的问题,但如果有人问我去机场的路线,我注意到他们的头发着火了,我还是要提一下。跨度>
  • 使用逐步回归相当于发了火吧?我在较小的数据样本上使用了最佳子集,并且通常在实践中没有发现太大的差异(在那个和 f-b 逐步之间)。
  • 嗨@TomR 我注意到尽管感谢人们的良好回应,但您尚未接受对您的 5 个Stack Overflow 问题的任何答案。请参阅faqHow to Ask 部分,了解有关如何接受答案及其有用的详细信息。请注意,您没有义务这样做,并且只有当它确实回答了您的问题时,您才应该接受答案。

标签: r dataframe regression


【解决方案1】:

您希望在公式表示法中使用 . 特殊符号。此外,将响应和预测变量放在单个数据框中可能会更好。

试试:

MFDU <- cbind(MFDUdep, MFDUind)
ft <- glm(y ~ ., data = MFDU, family = binomial)

既然我已经给了你绳子,我有义务至少警告你可能会被吊死......

您所采用的方法通常不是推荐的方法,除非模型的目的可能是预测。所选变量的回归系数可能有很大的偏差,因此如果您将其用于启发,请重新考虑您的方法。

您还需要大量观察才能在模型中允许 100 多个术语。

存在更好的选择;例如请参阅 glmnet 包以了解一种这样的方法,该方法允许对一组系数进行脊、套索或两者(弹性网络)约束,这允许以牺牲少量额外成本为代价来最小化模型误差偏见。

【讨论】:

  • 感谢您的回答。我用它来识别两个人群之间差异的重要变量,以及几种类型的决策树。我会进一步研究 glmnet。
  • 在这种情况下,不要相信stepAIC 在这方面告诉你的任何事情;许多统计学家会认为它是一个随机显着变量选择器。
  • 感谢您的建议...您能推荐一个关于为什么会这样的参考吗?从我在统计和信息论中读到的内容来看,AIC 是一个有用的标准。
  • @TomR Gavin 将是比我更好的参考来源,但正如您所知,AIC 本身并不是一个糟糕的衡量标准,而是程序本身的逐步性质是有问题的。
  • 教授stepAIC 的幼稚用法是MASS(书籍和包装/捆绑包)的弱点之一。我一直想知道为什么布赖恩·里普利(Brian Ripley),否则会抱怨所有不防水的东西,而且大多有充分的理由,在两次修订中让它通过。
猜你喜欢
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
相关资源
最近更新 更多