amphibian-dev / toad

ESC Team's credit scorecard tools.
https://toad.readthedocs.io
MIT License
474 stars 173 forks source link

关于selection.py中StatsModel的loglikelihood方法 #115

Open NKNaN opened 1 year ago

NKNaN commented 1 year ago

我尝试借助statsmodels库里封装的逻辑回归,以aic为criteria,自己写了lr的stepwise regression,发现与toad的stepwise中得出的最终结果不一致,最后发现用toad筛选出的模型的aic与statsmodels中计算得到的aic值不同。

在看过源码后,发现selection.py中StatsModel的loglikelihood计算方法是统一用了mse,按我的理解源码里的公式应该只能用在estimator是ols的情况,lr的loglikelihood的计算应为 sum over i( yi beta^t xi - log( 1 + exp( beta^t * xi )))。

而且对于lasso和ridge来说,同样用ols的mse计算方式来计算loglikelihood应该也不合适,我目前还在查找lasso和ridge的aic和bic应该怎么算比较合理。

Secbone commented 6 months ago

@NKNaN 抱歉很晚才回复,这部分内容确实存在问题,最初为了实现方便没有单独对不同模型重写 loglikelihood,欢迎提PR进行更正~ 😄