Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Plotting Pandas OLS linear regression results

How would I plot my linear regression results for this linear regression I did from pandas?

import pandas as pd
from pandas.stats.api import ols

df = pd.read_csv('Samples.csv', index_col=0)
control = ols(y=df['Control'], x=df['Day'])
one = ols(y=df['Sample1'], x=df['Day'])
two = ols(y=df['Sample2'], x=df['Day'])

I tried plot() but it did not work. I want to plot all three samples on one plot are there any pandas code or matplotlib code to hadle data in the format of these summaries?

Anyways the results look like this:

Control

------------------------Summary of Regression Analysis-------------------------

Formula: Y ~ <x> + <intercept>

Number of Observations:         7
Number of Degrees of Freedom:   2

R-squared:         0.5642
Adj R-squared:     0.4770

Rmse:              4.6893

F-stat (1, 5):     6.4719, p-value:     0.0516

Degrees of Freedom: model 1, resid 5

-----------------------Summary of Estimated Coefficients------------------------
      Variable       Coef    Std Err     t-stat    p-value    CI 2.5%   CI 97.5%
--------------------------------------------------------------------------------
             x    -0.4777     0.1878      -2.54     0.0516    -0.8457    -0.1097
     intercept    41.4621     2.9518      14.05     0.0000    35.6766    47.2476
---------------------------------End of Summary---------------------------------

one

-------------------------Summary of Regression Analysis-------------------------

Formula: Y ~ <x> + <intercept>

Number of Observations:         6
Number of Degrees of Freedom:   2

R-squared:         0.8331
Adj R-squared:     0.7914

Rmse:              2.0540

F-stat (1, 4):    19.9712, p-value:     0.0111

Degrees of Freedom: model 1, resid 4

-----------------------Summary of Estimated Coefficients------------------------
      Variable       Coef    Std Err     t-stat    p-value    CI 2.5%   CI 97.5%
--------------------------------------------------------------------------------
             x    -0.4379     0.0980      -4.47     0.0111    -0.6300    -0.2459
     intercept    29.6731     1.6640      17.83     0.0001    26.4116    32.9345
---------------------------------End of Summary---------------------------------

two

-------------------------Summary of Regression Analysis-------------------------

Formula: Y ~ <x> + <intercept>

Number of Observations:         5
Number of Degrees of Freedom:   2

R-squared:         0.8788
Adj R-squared:     0.8384

Rmse:              1.0774

F-stat (1, 3):    21.7542, p-value:     0.0186

Degrees of Freedom: model 1, resid 3

-----------------------Summary of Estimated Coefficients------------------------
      Variable       Coef    Std Err     t-stat    p-value    CI 2.5%   CI 97.5%
--------------------------------------------------------------------------------
             x    -0.2399     0.0514      -4.66     0.0186    -0.3407    -0.1391
     intercept    24.0902     0.9009      26.74     0.0001    22.3246    25.8559
---------------------------------End of Summary---------------------------------
like image 725
ccsv Avatar asked Oct 01 '22 04:10

ccsv


1 Answers

You may find this question of mine helpful Getting the regression line to plot from a Pandas regression

I tried to find some of my code doing a ols plot with Pandas,, but could not lay my hand on it, In general you would probably be better off using Statsmodels for this, it knows about Pandas datastructures.. so the transition is not too hard. Then my answer and the referenced examples will make more sense..

See also: http://nbviewer.ipython.org/gist/dartdog/9008026

like image 143
dartdog Avatar answered Oct 05 '22 12:10

dartdog