【问题标题】:statsmodels metric for comparing logistic regression models?用于比较逻辑回归模型的 statsmodels 指标?
【发布时间】:2021-11-08 17:54:15
【问题描述】:

我正在通过在statsmodels 中构建模型来学习逻辑回归。

我知道,如果我在 statsmodels lin_mod = sm.OLS(y_var, X_vars).fit() 中构建线性回归模型,我可以轻松获得调整后的 R 平方 lin_mod.rsquared_adj。在比较我的线性回归模型时,我发现调整后的 R 平方非常有用。

现在对于逻辑回归模型,log_mod = sm.Logit(y_var, X_vars).fit()。我知道有一个伪 R 平方度量,log_mod.prsquared,但我觉得它不是很有说服力。 statsmodels 中是否还有其他一些易于访问的指标可能有助于比较逻辑回归模型?

【问题讨论】:

    标签: python logistic-regression statsmodels


    【解决方案1】:

    statsmodel 你可以选择

    print(lin_mod.summary())
    

    收集有关您的模型的更多信息。 否则,如果您可以使用sklearn.metrics,请尝试使用confusion_matrix 或/和accuracy_score

    【讨论】:

      【解决方案2】:

      教授。 Frank Harrell 在他的博客Statistically Efficient Ways to Quantify Added Predictive Value of New Measurements 中详细描述了用于量化新模型中预测变量的附加值以及目视检查测试前和测试后概率的不同选项。伪 R 平方确实难以解释。

      但是,您可以使用似然比检验,比较两个模型的对数似然。 重要的假设是模型是嵌套的,这意味着较大的模型应该包含来自较小模型的所有预测变量 + 一个新的预测变量。



      乘以 -2 确保卡方分布(威尔克斯定理),因此我们可以计算 p 值。

      这是我受Likelihood ratio test in Python 启发的代码。它输出 chi2-statistic 和 p-value,类似于许多 scipy.stats 测试,以便于报告。

      from scipy.stats.distributions import chi2
      from statsmodels.discrete.discrete_model import BinaryResultsWrapper
      import statsmodels.api as sm 
      
      
      def likelihood_ratio(ll0, ll1):
          return -2 * (ll0-ll1)
      
      def lrtest(fitted_model0: BinaryResultsWrapper, 
                 fitted_model1: BinaryResultsWrapper) -> (float, float):
          
          L0, L1 = fitted_model0.llf, fitted_model1.llf
          df0, df1 = fitted_model0.df_model, fitted_model1.df_model
          
          chi2_stat = likelihood_ratio(L0,L1)
          p = chi2.sf(chi2_stat, df1-df0)
      
          return (chi2_stat, p)
      
      log_mod0 = sm.Logit(y_var, X_vars0).fit()
      log_mod1 = sm.Logit(y_var, X_vars1).fit()
      
      chi2_stat, p = lrtest(log_mod0, log_mod1)
      

      【讨论】:

        猜你喜欢
        • 2016-10-05
        • 2015-04-18
        • 1970-01-01
        • 2016-02-09
        • 2022-08-17
        • 1970-01-01
        • 2018-08-10
        • 2019-02-15
        • 2020-12-22
        相关资源
        最近更新 更多