我一直在使用 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.
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())