【问题标题】:function for removing nonsignificant variables at one step in RR中一步删除不重要变量的函数
【发布时间】:2012-04-15 15:53:16
【问题描述】:

我正在尝试在 R 中自动化逻辑回归。 基本上,随着输入数据的更新,我的源代码每天都会生成一个新方程, (变量,数据格式等相同)并打印出具有相应系数的重要变量。 当我使用阶跃函数时,有时得到的系数并不显着。因此,我想更新我的系数集并去掉所有不够重要的系数。 有没有一种功能或自动化的方式来做到这一点? 如果不是,我能想到的唯一方法是用另一种语言编写脚本,获取系数和相应的 P 值并检查重要性,然后相应地重新运行 R。但即便如此,你知道我怎样才能只得到 P 值和变量系数。我可以使用“摘要”功能打印回归结果的整个摘要。我不能只达到 P 值。

非常感谢

【问题讨论】:

  • 我相信人们会给你很好的技术建议,告诉你如何做你所要求的,但我的建议是认真重新考虑这样做。进行逐步回归的(非常)少数充分理由,以及不这样做的许多充分理由:参见例如stata.com/support/faqs/stat/stepwise.html 开始...
  • 是的,也许不是自动提取 P 值,而是考虑自动提取可能性和参数数量。 K. Burnham 和 D. Anderson 发表了很多关于模型选择和 AIC 的论文和书籍。
  • @BenBolker 感谢您的链接。为了自动化,我首先想到的是逐步函数。 MarkMiller,感谢您的参考。我会在申请之前阅读它们
  • 了解为什么您正在构建这些逻辑回归 - 用于预测(在这种情况下,您可能希望使用多模型平均 á la Burnham 和 Anderson ,或者通过glmnet 包中的惩罚回归可能更好)?假设检验?分类?

标签: r regression


【解决方案1】:

没有示例代码和数据对我来说有点困难,但是您可以像这样基于变量值进行子集化,

newdata <- data[ which(data$p.value < 0.5), ]

您可以使用 str 检查您的 R 对象,请参阅 ?str 以了解如何选择要在您的子集中使用的任何内容 $p.value$residuals

如果这不能回答您的问题,请尝试提交一些示例代码和数据。

最好, 埃里克

【讨论】:

  • 谢谢,这可能有效。我会在星期一试一试,然后告诉你。
猜你喜欢
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 2015-01-26
  • 1970-01-01
  • 2016-06-07
相关资源
最近更新 更多