我正在运行一个ols模型,我需要知道所有系数,所以我可以在我的分析中使用它们。如何以与科学记数法不同的格式显示/保存系数?
model = sm.ols(formula="sales ~ product_category + quantity_bought + quantity_ordered + quantity_returned + season", data=final_email).fit()
print model.summary()
OLS Regression Results
==============================================================================
Dep. Variable: sales R-squared: 0.974
Model: OLS Adj. R-squared: 0.938
Method: Least Squares F-statistic: 27.26
Date: Tue, 18 Apr 2017 Prob (F-statistic): 5.39e-13
Time: 11:43:36 Log-Likelihood: -806.04
No. Observations: 60 AIC: 1682.
Df Residuals: 25 BIC: 1755.
Df Model: 34
Covariance Type: nonrobust
======================================================================================
coef std err t P>|t| [95.0% Conf. Int.]
--------------------------------------------------------------------------------------
Intercept -2.79e+05 2.883e+05 -0.987 0.333 -8.92e+05 3.14e+05
Product_category[A] 4.343e+04 2.456e+05 0.186 0.854 -4.95e+05 5.93e+05
Product_category[B] 2.784e+05 1.23e+05 1.128 0.270 -1.68e+05 5.75e+05
quantity_bought -74678 1.754e+05 -0.048 0.962 -3.4e+05 3.24e+05
quantity_ordered 3.543e+05 1.363e+05 1.827 0.080 -4.21e+04 7.05e+05
quantity_returned 1.285e+05 2.154e+05 0.512 0.613 -4.61e+05 7.66e+05
season -1.983e+04 1.76e+05 -0.133 0.895 -2.69e+05
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The smallest eigenvalue is 1.19e-29. This might indicate that there are
strong multicollinearity problems or that the design matrix is singular.
这没有帮助:
pd.set_option('display.float_format', lambda x: '%3.f' % x)
答案 0 :(得分:5)
所以这是硬编码到statsmodels源代码的东西。但是,获得系数的最佳方法是使用model.params
。查看RegressionResults
的来源,特别是所有属性,它们将向您展示如何访问模型拟合的所有相关信息。
答案 1 :(得分:3)
现在使用statsmodels version 0.8.0
无法实现,因为RegressionResultsWrapper.summary()
方法没有得到对此功能的良好支持。只有xname, yname, alpha, title
可用。
所以,有一个名为RegressionResultsWrapper.summary()
的实验函数,它有一个参数float_format
,可以让你意识到你需要做什么。
但是因为这是一个实验功能。使用它时可能会出现错误。指定float_format
时,某些结果的行为可能与预期不符。
我查看了源代码,发现某些格式的结果是hard-coded
。因此,如果float_format
不起作用。编辑源文件可能是您的最后一个选项。别担心,你可能并不困难。随意问更多。
答案 2 :(得分:2)
从版本0.10.2开始,存在一个实验函数summary2()
,该函数采用float_format
。
这是source code中该函数的文档字符串:
def summary2(self, yname=None, xname=None, title=None, alpha=.05,
float_format="%.4f"):
"""
Experimental summary function to summarize the regression results.
Parameters
----------
yname : str
The name of the dependent variable (optional).
xname : list[str], optional
Names for the exogenous variables. Default is `var_##` for ## in
the number of regressors. Must match the number of parameters
in the model.
title : str, optional
Title for the top table. If not None, then this replaces the
default title.
alpha : float
The significance level for the confidence intervals.
float_format : str
The format for floats in parameters summary.
Returns
-------
Summary
Instance holding the summary tables and text, which can be printed
or converted to various output formats.