【问题标题】:Automatically drop variables with p-value greater than 5% from linear regression model从线性回归模型中自动删除 p 值大于 5% 的变量
【发布时间】:2021-10-30 07:33:19
【问题描述】:

我想从我的线性回归模型中删除变量(使用循环)。

import statsmodels.api as sm

train_x = sm.add_constant(train_x)
lm = sm.OLS(train_y,train_x).fit()

【问题讨论】:

  • 你几乎肯定不想做这样的分析,例如:stat.columbia.edu/~gelman/research/unpublished/p_hacking.pdf 和类似的论文
  • 如果您要尝试这种方法,请先删除最高 p 值,然后重复进行测试,直到所有值都小于 5%。有时这比同时丢弃所有大于 5% 的值更好。这可以在循环中自动完成,有时很有用。
  • 我想先删除 p 值最高的变量

标签: python linear-regression


【解决方案1】:
# Filter only those with a P-value less than 5% - this will be a pandas series
keep_pvals = lm.pvalues[lm.pvalues <= .005]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2011-04-11
    • 2019-03-30
    • 1970-01-01
    • 2017-01-24
    • 2011-08-01
    相关资源
    最近更新 更多