Coder Social home page Coder Social logo

cnavarreteliz / stargazer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from statsreporting/stargazer

0.0 0.0 0.0 357 KB

Python implementation of the R stargazer multiple regression model creation tool

License: Other

Python 40.51% Jupyter Notebook 59.49%

stargazer's Introduction

Stargazer

This is a python port of the R stargazer package that can be found on CRAN. I was disappointed that there wasn't equivalent functionality in any python packages I was aware of so I'm re-implementing it here.

There is an experimental function in the statsmodels.regression.linear_model.OLSResults.summary2 that can report single regression model results in HTML/CSV/LaTeX/etc, but it still didn't quite fulfill what I was looking for.

The python package is object oriented now with chained commands to make changes to the rendering parameters, which is hopefully more pythonic and the user doesn't have to put a bunch of arguments in a single function.

Installation

You can install this package through PyPi with pip install stargazer or just clone the repo and take the stargazer.py file since it's the only one in the package.

Dependencies

It depends on statsmodels, which in turn depends on several other libraries like pandas, numpy, etc

Editing Features

This library implements many of the customization features found in the original package. Examples of most can be found in the examples jupyter notebook and a full list of the methods/features is here below:

  • title: custom title
  • show_header: display or hide model header data
  • show_model_numbers: display or hide model numbers
  • custom_columns: custom model names and model groupings
  • significance_levels: change statistical significance thresholds
  • significant_digits: change number of significant digits
  • show_confidence_intervals: display confidence intervals instead of variance
  • dependent_variable_name: rename dependent variable
  • rename_covariates: rename covariates
  • covariate_order: reorder covariates
  • reset_covariate_order: reset covariate order to original ordering
  • show_degrees_of_freedom: display or hide degrees of freedom
  • custom_note_label: label notes section at bottom of table
  • add_custom_notes: add custom notes to section at bottom of the table
  • add_line: add a custom line to the table
  • append_notes: display or hide statistical significance thresholds

These features are agnostic of the rendering type and will be applied whether the user outputs in HTML, LaTeX, etc

Example

Here is an examples of how to quickly get started with the library. More examples can be found in the examples.ipynb file in the github repo. The examples all use the scikit-learn diabetes dataset, but it is not a dependency for the package.

OLS Models Preparation

import pandas as pd
from sklearn import datasets
import statsmodels.api as sm
from stargazer.stargazer import Stargazer

diabetes = datasets.load_diabetes()
df = pd.DataFrame(diabetes.data)
df.columns = ['Age', 'Sex', 'BMI', 'ABP', 'S1', 'S2', 'S3', 'S4', 'S5', 'S6']
df['target'] = diabetes.target

est = sm.OLS(endog=df['target'], exog=sm.add_constant(df[df.columns[0:4]])).fit()
est2 = sm.OLS(endog=df['target'], exog=sm.add_constant(df[df.columns[0:6]])).fit()


stargazer = Stargazer([est, est2])

HTML Example

stargazer.render_html()
Dependent variable:
(1)(2)
ABP416.674***397.583***
(69.495)(70.87)
Age37.24124.704
(64.117)(65.411)
BMI787.179***789.742***
(65.424)(66.887)
S1197.852
(143.812)
S2-169.251
(142.744)
Sex-106.578*-82.862
(62.125)(64.851)
const152.133***152.133***
(2.853)(2.853)
Observations442.0442.0
R20.40.403
Adjusted R20.3950.395
Residual Std. Error59.976(df = 437.0)59.982(df = 435.0)
F Statistic72.913***(df = 4.0; 437.0)48.915***(df = 6.0; 435.0)
Note:p<0.1; p<0.05; p<0.01

LaTeX Example

stargazer.render_latex()

stargazer's People

Contributors

toobaz avatar maxghenis avatar mwburke avatar csemken avatar brandonek15 avatar cnavarreteliz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.