Plotly:如何在 plotly express 中找到趋势线的系数?

2022-01-21 00:00:00 python pandas plotly statsmodels

问题描述

How do you find the coefficient of the trend line in plotly express?

For example I used the code below to chart the trend line but now I want to know the coefficient.

import plotly.express as px

px.scatter(df, x='x_data', y='y_data', trendline="ols")

解决方案

Here you need to have a look at plotly doc in plotly and statsmodels one. I think the example in the plotly example should be fixed. Anyway

import plotly.express as px

df = px.data.tips()
fig = px.scatter(df, x="total_bill", y="tip", trendline="ols")
fig.show()

For the results you should run

results = px.get_trendline_results(fig)
results = results.iloc[0]["px_fit_results"].summary()
print(results)

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.457
Model:                            OLS   Adj. R-squared:                  0.454
Method:                 Least Squares   F-statistic:                     203.4
Date:                Mon, 10 Aug 2020   Prob (F-statistic):           6.69e-34
Time:                        12:28:52   Log-Likelihood:                -350.54
No. Observations:                 244   AIC:                             705.1
Df Residuals:                     242   BIC:                             712.1
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          0.9203      0.160      5.761      0.000       0.606       1.235
x1             0.1050      0.007     14.260      0.000       0.091       0.120
==============================================================================
Omnibus:                       20.185   Durbin-Watson:                   1.811
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               37.750
Skew:                           0.443   Prob(JB):                     6.35e-09
Kurtosis:                       4.711   Cond. No.                         53.0
==============================================================================

While for the coefficients

results.iloc[0]["px_fit_results"].params

array([0.92026961, 0.10502452])

Where the fist one is the constant while the second is the slope.

相关文章