汇总数据 - 统计模型,正则化拟合

问题描述 投票:0回答:2

我一直在使用 statsmodels 创建线性回归模型。我正在尝试打印摘要数据。对于 OLS,所需的函数是

.summary()
,但是,我已经对模型进行了正则化:

model = sm.OLS(Y_train, X_train)
res=model.fit_regularized(alpha=0.04, L1_wt=0)

对此的总结是

summary = sm.regression.linear_model.OLSResults()
如下所示:https://www.statsmodels.org/stable/ generated/statsmodels.regression.linear_model.OLSResults.html

我似乎不知道如何计算

normalized_cov_params
。我尝试了以下方法:

summary = sm.regression.linear_model.OLSResults(model,res.params,model.normalized_cov_params)

但我收到以下错误:

AttributeError: 'OLS' object has no attribute 'cov_params'

有人知道如何获得归一化协方差参数吗?

感谢所有帮助,

C.

data-science linear-regression statsmodels
2个回答
3
投票
from statsmodels.tools.tools import pinv_extended  

    model = sm.OLS(Y_train, X_train)
    res=model.fit_regularized(alpha=0.04, L1_wt=0)
    ...
    ...
    ...
    pinv_wexog,_ = pinv_extended(model.wexog)
    normalized_cov_params = np.dot(pinv_wexog, np.transpose(pinv_wexog))
    summary = sm.regression.linear_model.OLSResults(model,res.params,normalized_cov_params)
    print(summary.summary())

0
投票

fit_regularized 没有 cov_params 响应。但是,sm.OLS.fit() 是的!

要了解您如何收到任何回复:尝试打印出来:

print(dir(model.fit())),按照下图操作...

© www.soinside.com 2019 - 2024. All rights reserved.