【问题标题】:representing variable as a polynomial in logistic regression in R将变量表示为 R 中逻辑回归中的多项式
【发布时间】:2015-04-08 18:37:55
【问题描述】:

我的材料中有年龄作为协变量。一个连续变量。年龄在 18-70 岁之间。

我正在进行逻辑回归,并决定将年龄表示为多项式。

在数据中我有 4021 个观察结果,所以我只是复制了一个给你看看它们的样子:

头部(两者)

   gender       passinggrade age    prog
1    man          FALSE      69     FRIST
2    man             NA      70     FRIST
3 woman             NA       65     FRIST
4 woman           TRUE       68      FRIST
5 woman             NA       65     NMFIK
6    man          FALSE      70     FRIST

我的模型;

mod.fit<-glm(passinggrade ~prog+gender+age,family=binomial,data=both)

summary(mod.fit)

所以我想知道的是,我应该如何将年龄视为多项式? 不知道我是否需要更改我的 R 代码中的某些内容? 没有在 R 中做任何事情来“使年龄成为多项式”,我的问题很简单;你是怎么做到的?

【问题讨论】:

  • SO 上存在许多使用poly 的示例以及不要使用I(x^2) 的警告。还有一个“多项式”包,但这里不需要。

标签: r logistic-regression


【解决方案1】:

您可以通过几种不同的方式做到这一点:

glm(passinggrade ~ prog + gender + poly(age, 3), ...

# Less preferred...
glm(passinggrade ~ prog + gender + age + I(age^2) + I(age^3), ...
glm(passinggrade ~ prog + gender + cbind(age, age^2, age^3), ...

有关更多信息和讨论,请参阅this post

【讨论】:

  • 我认为你应该编辑你的答案以弃用最后两个。
  • @BondedDust 我宁愿在示例/讨论中发布为什么要避免使用最后两个以供其他人学习...尤其是因为I(x^2) 在许多示例中仍然很普遍。
  • 我怎么知道我应该有多项式的次数?多项式的回归?还是我应该尝试添加 GLM,然后在它们不重要时退出?如果我添加一个 4 次多项式,我得到所有显着但如果我获得 5 级,它们不是显着的......你怎么办? @BondedDust
  • @JasonAizkalns 我怎么知道我应该有多项式的次数?多项式的回归?还是我应该尝试添加 GLM,然后在它们不重要时退出?如果我添加一个 4 次多项式,我得到所有显着但如果我获得 5 级,它们不是显着的......你怎么办?
  • 您可能应该使用一种方法,该方法考虑到您在执行此操作时可能正在执行某种数据挖掘。已经开发了几种方法,试图为此提供统计学原则的自动化方法。 mgcv 包是一种颇受推崇的自动多项式回归方法。查看单个项的 p 值不是正确的方法。如果您坚持“手动”过程,那么在评估显着性时使用对多重比较的惩罚来对偏差进行模型比较会更好。
猜你喜欢
  • 2021-05-02
  • 1970-01-01
  • 2015-01-03
  • 2014-06-26
  • 2017-07-30
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
  • 2020-12-30
相关资源
最近更新 更多