def get_table3(df): ### regressions: rslt = smf.ols(formula="stdgrade ~ treat + pol1+ pol1t", data=df, weights=df["kwgt"]).fit( cov_type='cluster', cov_kwds={'groups': df["studentid"]}) rslt1 = rslt formula2 = "stdgrade ~ treat + treatmentvol + treatmentfor + volcourse + forcourse + pol1 + pol1t + pol1vol + pol1tvol + pol1for + pol1tfor" rslt = smf.ols(formula=formula2, data=df, weights=df["kwgt"]).fit( cov_type='cluster', cov_kwds={'groups': df["studentid"]}) rslt2 = rslt ### Table stargazer: stargazer = Stargazer([rslt1, rslt2]) stargazer.custom_columns(["column 1", "column 4"], [1, 1]) stargazer.title("Table 3 - Effects on standardized grades") stargazer.show_model_numbers(False) stargazer.significant_digits(2) stargazer.covariate_order(["treat", "treatmentvol", "treatmentfor"]) stargazer.rename_covariates({ "treat": "1st-year GPA is below 7", "treatmentvol": "Attendance is voluntary x treatment", "treatmentfor": "Absence is penalized x treatment" }) stargazer.show_degrees_of_freedom(False) stargazer.add_line('Fixed Effects', ['No', 'No']) return stargazer
x_withfemale = sm.add_constant(x2) model1 = sm.OLS(y, x).fit() model2 = sm.OLS(y, x_withfemale).fit() model1.summary() model2.summary() # ============================================================================= # STARGAZER MODEL OUTPUTS # ============================================================================= from stargazer.stargazer import Stargazer stargazer = Stargazer([model1, model2]) stargazer.custom_columns(['Base Model', 'Spesified Model'], [1, 1]) stargazer.significant_digits(2) stargazer.covariate_order([ 'const', 'propwomen', 'oppospower', 'gdpcap', 'sepowerdist', 'youthunemp' ]) stargazer.rename_covariates({ 'const': 'Constant', 'oppospower': 'Opposition Power', 'gdpcap': 'GDP($)', 'sepowerdist': 'Class Political Power', 'youthunemp': 'Unemployed Youth %', 'propwomen': 'Female Property Rights' }) stargazer.cov_spacing = 3 print(stargazer.render_latex())