<p>您可以尝试statsmodels使用的<a href="https://patsy.readthedocs.io/en/latest/formulas.html#from-terms-to-matrices" rel="nofollow noreferrer">patsy</a>:</p>
<pre><code>import statsmodels.api as sm
import pandas as pd
import statsmodels.formula.api as smf
from patsy import dmatrix
mtcars = sm.datasets.get_rdataset("mtcars", "datasets", cache=True).data
mat = dmatrix("disp + qsec + C(cyl)", mtcars)
</code></pre>
<p>看起来像这样,我们可以省略第一列截取,因为它包含在sklearn中:</p>
<pre><code>mat
DesignMatrix with shape (32, 5)
Intercept C(cyl)[T.6] C(cyl)[T.8] disp qsec
1 1 0 160.0 16.46
1 1 0 160.0 17.02
1 0 0 108.0 18.61
1 1 0 258.0 19.44
1 0 1 360.0 17.02
X = pd.DataFrame(mat[:,1:],columns = mat.design_info.column_names[1:])
from sklearn.linear_model import LinearRegression
model = LinearRegression().fit(X,mtcars['mpg'])
</code></pre>
<p>但是<code>model.coef_</code>中的参数名称将不会命名。你只需要把它们编成一个系列来阅读,也许:</p>
<pre><code>pd.Series(model.coef_,index = X.columns)
C(cyl)[T.6] -5.087564
C(cyl)[T.8] -5.535554
disp -0.025860
qsec -0.162425
</code></pre>
<p>sklearn线性回归中的Pvalues,没有现成的方法,您可以查看这些<a href="https://stackoverflow.com/questions/27928275/find-p-value-significance-in-scikit-learn-linearregression">answers</a>,也许其中一个就是您正在寻找的</p>