The Photon - 6 months ago 57

Python Question

If I use the seaborn library in Python to plot the result of a linear regression, is there a way to find out the numerical results of the regression? For example, I might want to know the fitting coefficients or the R^{2} of the fit.

I could re-run the same fit using the underlying statsmodels interface, but that would seem to be unnecessary duplicate effort, and anyway I'd want to be able to compare the resulting coefficients to be sure the numerical results are the same as what I'm seeing in the plot.

Answer

There's no way to do this.

In my opinion, asking a visualization library to give you statistical modeling results is backwards. `statsmodels`

, a modeling library, lets you fit a model and then draw a plot that corresponds exactly to the model you fit. If you want that exact correspondence, this order of operations makes more sense to me.

You might say "but the plots in `statsmodels`

don't have as many aesthetic options as `seaborn`

". But I think that makes sense — `statsmodels`

is a modeling library that sometimes uses visualization in the service of modeling. `seaborn`

is a visualization library that sometimes uses modeling in the service of visualization. It is good to specialize, and bad to try to do everything.

Fortunately, both `seaborn`

and `statsmodels`

use tidy data. That means that you really need very little effort duplication to get both plots and models through the appropriate tools.