我有一段代码可以创建线性回归摘要,如statsmodels.api.OLS(X,y).fit().summary()
lm = LinearRegression()
lm.fit(X,y)
params = np.append(lm.intercept_,lm.coef_)
predictions = lm.predict(X)
X_const = pd.concat([X,pd.DataFrame({'const: np.ones(len(X))})\
.set_index(X.index)],axis = 1)
MSE = sum((y - predictions) ** 2) / len(X_const)
var_b = MSE * (np.linalg.inv(np.dot(X_const.T,X_const)).diagonal())
std = np.round(np.sqrt(var_b),3)
tval = np.round(params / std,3)
pval = np.round([2 * (1 - stats.t.cdf(np.abs(i),(len(X_const) - 1))) for i in tval],3)
summary = pd.DataFrame({'feature_name': ['const'] + X.columns.tolist(),'coef': params,'std': std,'t': tval,'p_value': pval})
print(summary)
该代码的输出是一个表:
feature_name coef std t p_value
0 const -70.491203 1.481 -47.597 0.000
1 season 13.668229 9.790 1.396 0.163
2 holiday -7.823670 3.498 -2.237 0.025
3 workingday -0.228692 0.193 -1.185 0.236
4 atemp 8.020878 0.195 41.133 0.000
5 windspeed 3.003974 6.554 0.458 0.647
但是,如果我使用statsmodels.api.OLS(X,y).fit(cov_type = 'HC0')
会获得可靠的标准错误,则统计信息与cov_type = 'HC0
的值会有所不同。
有什么方法可以在sklearn的线性回归中实现相同的cov_type = 'HC0'
吗?