def summary(self): """Summary table of model estimation results""" smry = super(PanelEffectsResults, self).summary is_invalid = np.isfinite(self.f_pooled.stat) f_pool = _str(self.f_pooled.stat) if is_invalid else '--' f_pool_pval = pval_format(self.f_pooled.pval) if is_invalid else '--' f_pool_name = self.f_pooled.dist_name if is_invalid else '--' extra_text = [] if is_invalid: extra_text.append('F-test for Poolability: {0}'.format(f_pool)) extra_text.append('P-value: {0}'.format(f_pool_pval)) extra_text.append('Distribution: {0}'.format(f_pool_name)) extra_text.append('') if self.included_effects: effects = ', '.join(self.included_effects) extra_text.append('Included effects: ' + effects) if self.other_info is not None: ncol = self.other_info.shape[1] extra_text.append('Model includes {0} other effects'.format(ncol)) for c in self.other_info.T: col = self.other_info.T[c] extra_text.append('Other Effect {0}:'.format(c)) stats = 'Avg Obs: {0}, Min Obs: {1}, Max Obs: {2}, Groups: {3}' stats = stats.format(_str(col['mean']), _str(col['min']), _str(col['max']), int(col['total'])) extra_text.append(stats) smry.add_extra_txt(extra_text) return smry
def summary(self): """Equation summary""" title = self._method + ' Estimation Summary' top_left = [('Eq. Label:', self.equation_label), ('Dep. Variable:', self.dependent), ('Estimator:', self._method), ('No. Observations:', self.nobs), ('Date:', self._datetime.strftime('%a, %b %d %Y')), ('Time:', self._datetime.strftime('%H:%M:%S')), ('', '')] top_right = [('R-squared:', _str(self.rsquared)), ('Adj. R-squared:', _str(self.rsquared_adj)), ('Cov. Estimator:', self._cov_type), ('F-statistic:', _str(self.f_statistic.stat)), ('P-value (F-stat)', pval_format(self.f_statistic.pval)), ('Distribution:', str(self.f_statistic.dist_name)), ('', '')] stubs = [] vals = [] for stub, val in top_left: stubs.append(stub) vals.append([val]) table = SimpleTable(vals, txt_fmt=fmt_2cols, title=title, stubs=stubs) # create summary table instance smry = Summary() # Top Table # Parameter table fmt = fmt_2cols fmt['data_fmts'][1] = '%10s' top_right = [('%-21s' % (' ' + k), v) for k, v in top_right] stubs = [] vals = [] for stub, val in top_right: stubs.append(stub) vals.append([val]) table.extend_right(SimpleTable(vals, stubs=stubs)) smry.tables.append(table) smry.tables.append(param_table(self, 'Parameter Estimates', pad_bottom=True)) return smry
def summary(self): """:obj:`statsmodels.iolib.summary.Summary` : Summary table of model estimation results Supports export to csv, html and latex using the methods ``summary.as_csv()``, ``summary.as_html()`` and ``summary.as_latex()``. """ title = self.name + ' Estimation Summary' mod = self.model top_left = [('Dep. Variable:', mod.dependent.vars[0]), ('Estimator:', self.name), ('No. Observations:', self.nobs), ('Date:', self._datetime.strftime('%a, %b %d %Y')), ('Time:', self._datetime.strftime('%H:%M:%S')), ('Cov. Estimator:', self._cov_type), ('', ''), ('Entities:', str(int(self.entity_info['total']))), ('Avg Obs:', _str(self.entity_info['mean'])), ('Min Obs:', _str(self.entity_info['min'])), ('Max Obs:', _str(self.entity_info['max'])), ('', ''), ('Time periods:', str(int(self.time_info['total']))), ('Avg Obs:', _str(self.time_info['mean'])), ('Min Obs:', _str(self.time_info['min'])), ('Max Obs:', _str(self.time_info['max'])), ('', '')] is_invalid = np.isfinite(self.f_statistic.stat) f_stat = _str(self.f_statistic.stat) if is_invalid else '--' f_pval = pval_format(self.f_statistic.pval) if is_invalid else '--' f_dist = self.f_statistic.dist_name if is_invalid else '--' f_robust = _str(self.f_statistic_robust.stat) if is_invalid else '--' f_robust_pval = pval_format(self.f_statistic_robust.pval) if is_invalid else '--' f_robust_name = self.f_statistic_robust.dist_name if is_invalid else '--' top_right = [('R-squared:', _str(self.rsquared)), ('R-squared (Between):', _str(self.rsquared_between)), ('R-squared (Within):', _str(self.rsquared_within)), ('R-squared (Overall):', _str(self.rsquared_overall)), ('Log-likelihood', _str(self._loglik)), ('', ''), ('F-statistic:', f_stat), ('P-value', f_pval), ('Distribution:', f_dist), ('', ''), ('F-statistic (robust):', f_robust), ('P-value', f_robust_pval), ('Distribution:', f_robust_name), ('', ''), ('', ''), ('', ''), ('', ''), ] stubs = [] vals = [] for stub, val in top_left: stubs.append(stub) vals.append([val]) table = SimpleTable(vals, txt_fmt=fmt_2cols, title=title, stubs=stubs) # create summary table instance smry = Summary() # Top Table # Parameter table fmt = fmt_2cols fmt['data_fmts'][1] = '%18s' top_right = [('%-21s' % (' ' + k), v) for k, v in top_right] stubs = [] vals = [] for stub, val in top_right: stubs.append(stub) vals.append([val]) table.extend_right(SimpleTable(vals, stubs=stubs)) smry.tables.append(table) param_data = np.c_[self.params.values[:, None], self.std_errors.values[:, None], self.tstats.values[:, None], self.pvalues.values[:, None], self.conf_int()] data = [] for row in param_data: txt_row = [] for i, v in enumerate(row): f = _str if i == 3: f = pval_format txt_row.append(f(v)) data.append(txt_row) title = 'Parameter Estimates' table_stubs = list(self.params.index) header = ['Parameter', 'Std. Err.', 'T-stat', 'P-value', 'Lower CI', 'Upper CI'] table = SimpleTable(data, stubs=table_stubs, txt_fmt=fmt_params, headers=header, title=title) smry.tables.append(table) return smry
def summary(self): """:obj:`statsmodels.iolib.summary.Summary` : Summary table of model estimation results Supports export to csv, html and latex using the methods ``summary.as_csv()``, ``summary.as_html()`` and ``summary.as_latex()``. """ title = self._method + ' Estimation Summary' top_left = [('Eq. Label:', self.equation_label), ('Dep. Variable:', self.dependent), ('Estimator:', self._method), ('No. Observations:', self.nobs), ('Date:', self._datetime.strftime('%a, %b %d %Y')), ('Time:', self._datetime.strftime('%H:%M:%S')), ('', '')] top_right = [('R-squared:', _str(self.rsquared)), ('Adj. R-squared:', _str(self.rsquared_adj)), ('Cov. Estimator:', self._cov_type), ('F-statistic:', _str(self.f_statistic.stat)), ('P-value (F-stat)', pval_format(self.f_statistic.pval)), ('Distribution:', str(self.f_statistic.dist_name)), ('', '')] stubs = [] vals = [] for stub, val in top_left: stubs.append(stub) vals.append([val]) table = SimpleTable(vals, txt_fmt=fmt_2cols, title=title, stubs=stubs) # create summary table instance smry = Summary() # Top Table # Parameter table fmt = fmt_2cols fmt['data_fmts'][1] = '%10s' top_right = [('%-21s' % (' ' + k), v) for k, v in top_right] stubs = [] vals = [] for stub, val in top_right: stubs.append(stub) vals.append([val]) table.extend_right(SimpleTable(vals, stubs=stubs)) smry.tables.append(table) smry.tables.append( param_table(self, 'Parameter Estimates', pad_bottom=True)) extra_text = [] instruments = self._instruments if instruments: endog = self._endog extra_text = [] extra_text.append('Endogenous: ' + ', '.join(endog)) extra_text.append('Instruments: ' + ', '.join(instruments)) extra_text.append('Covariance Estimator:') for line in str(self._cov_estimator).split('\n'): extra_text.append(line) if self._weight_estimator: extra_text.append('Weight Estimator:') for line in str(self._weight_estimator).split('\n'): extra_text.append(line) smry.add_extra_txt(extra_text) return smry
def summary(self): """:obj:`statsmodels.iolib.summary.Summary` : Summary table of model estimation results Supports export to csv, html and latex using the methods ``summary.as_csv()``, ``summary.as_html()`` and ``summary.as_latex()``. """ title = self.name + ' Estimation Summary' top_left = [('No. Test Portfolios:', len(self._portfolio_names)), ('No. Factors:', len(self._factor_names)), ('No. Observations:', self.nobs), ('Date:', self._datetime.strftime('%a, %b %d %Y')), ('Time:', self._datetime.strftime('%H:%M:%S')), ('Cov. Estimator:', self._cov_type), ('', '')] j_stat = _str(self.j_statistic.stat) j_pval = pval_format(self.j_statistic.pval) j_dist = self.j_statistic.dist_name top_right = [('R-squared:', _str(self.rsquared)), ('J-statistic:', j_stat), ('P-value', j_pval), ('Distribution:', j_dist), ('', ''), ('', ''), ('', '')] stubs = [] vals = [] for stub, val in top_left: stubs.append(stub) vals.append([val]) table = SimpleTable(vals, txt_fmt=fmt_2cols, title=title, stubs=stubs) # create summary table instance smry = Summary() # Top Table # Parameter table fmt = fmt_2cols fmt['data_fmts'][1] = '%18s' top_right = [('%-21s' % (' ' + k), v) for k, v in top_right] stubs = [] vals = [] for stub, val in top_right: stubs.append(stub) vals.append([val]) table.extend_right(SimpleTable(vals, stubs=stubs)) smry.tables.append(table) rp = np.asarray(self.risk_premia)[:, None] se = np.asarray(self.risk_premia_se)[:, None] tstats = np.asarray(self.risk_premia / self.risk_premia_se) pvalues = 2 - 2 * stats.norm.cdf(np.abs(tstats)) ci = rp + se * stats.norm.ppf([[0.025, 0.975]]) param_data = np.c_[rp, se, tstats[:, None], pvalues[:, None], ci] data = [] for row in param_data: txt_row = [] for i, v in enumerate(row): f = _str if i == 3: f = pval_format txt_row.append(f(v)) data.append(txt_row) title = 'Risk Premia Estimates' table_stubs = list(self.risk_premia.index) header = [ 'Parameter', 'Std. Err.', 'T-stat', 'P-value', 'Lower CI', 'Upper CI' ] table = SimpleTable(data, stubs=table_stubs, txt_fmt=fmt_params, headers=header, title=title) smry.tables.append(table) smry.add_extra_txt([ 'Covariance estimator:', str(self._cov_est), 'See full_summary for complete results' ]) return smry
def summary(self) -> Summary: """ Model estimation summary. Returns ------- Summary Summary table of model estimation results Supports export to csv, html and latex using the methods ``summary.as_csv()``, ``summary.as_html()`` and ``summary.as_latex()``. """ title = self._method + " Estimation Summary" top_left = [ ("Eq. Label:", self.equation_label), ("Dep. Variable:", self.dependent), ("Estimator:", self._method), ("No. Observations:", self.nobs), ("Date:", self._datetime.strftime("%a, %b %d %Y")), ("Time:", self._datetime.strftime("%H:%M:%S")), ("", ""), ] top_right = [ ("R-squared:", _str(self.rsquared)), ("Adj. R-squared:", _str(self.rsquared_adj)), ("Cov. Estimator:", self._cov_type), ("F-statistic:", _str(self.f_statistic.stat)), ("P-value (F-stat)", pval_format(self.f_statistic.pval)), ("Distribution:", str(self.f_statistic.dist_name)), ("", ""), ] stubs = [] vals = [] for stub, val in top_left: stubs.append(stub) vals.append([val]) table = SimpleTable(vals, txt_fmt=fmt_2cols, title=title, stubs=stubs) # create summary table instance smry = Summary() # Top Table # Parameter table fmt = fmt_2cols fmt["data_fmts"][1] = "%10s" top_right = [("%-21s" % (" " + k), v) for k, v in top_right] stubs = [] vals = [] for stub, val in top_right: stubs.append(stub) vals.append([val]) table.extend_right(SimpleTable(vals, stubs=stubs)) smry.tables.append(table) smry.tables.append( param_table(self, "Parameter Estimates", pad_bottom=True)) extra_text = [] instruments = self._instruments if instruments: endog = self._endog extra_text = [ "Endogenous: " + ", ".join(endog), "Instruments: " + ", ".join(instruments), ] extra_text.append("Covariance Estimator:") for line in str(self._cov_estimator).split("\n"): extra_text.append(line) if self._weight_estimator: extra_text.append("Weight Estimator:") for line in str(self._weight_estimator).split("\n"): extra_text.append(line) smry.add_extra_txt(extra_text) return smry
def summary(self): """Summary table of model estimation results""" title = self._method + ' Estimation Summary' mod = self.model top_left = [('Dep. Variable:', mod.dependent.cols[0]), ('Estimator:', self._method), ('No. Observations:', self.nobs), ('Date:', self._datetime.strftime('%a, %b %d %Y')), ('Time:', self._datetime.strftime('%H:%M:%S')), ('Cov. Estimator:', self._cov_type), ('', '')] top_right = [('R-squared:', _str(self.rsquared)), ('Adj. R-squared:', _str(self.rsquared_adj)), ('F-statistic:', _str(self.f_statistic.stat)), ('P-value (F-stat)', pval_format(self.f_statistic.pval)), ('Distribution:', str(self.f_statistic.dist_name)), ('', ''), ('', '')] stubs = [] vals = [] for stub, val in top_left: stubs.append(stub) vals.append([val]) table = SimpleTable(vals, txt_fmt=fmt_2cols, title=title, stubs=stubs) # create summary table instance smry = Summary() # Top Table # Parameter table fmt = fmt_2cols fmt['data_fmts'][1] = '%18s' top_right = [('%-21s' % (' ' + k), v) for k, v in top_right] stubs = [] vals = [] for stub, val in top_right: stubs.append(stub) vals.append([val]) table.extend_right(SimpleTable(vals, stubs=stubs)) smry.tables.append(table) param_data = c_[self.params.values[:, None], self.std_errors.values[:, None], self.tstats.values[:, None], self.pvalues.values[:, None], self.conf_int()] data = [] for row in param_data: txt_row = [] for i, v in enumerate(row): f = _str if i == 3: f = pval_format txt_row.append(f(v)) data.append(txt_row) title = 'Parameter Estimates' table_stubs = list(self.params.index) header = [ 'Parameters', 'Std. Err.', 'T-stat', 'P-value', 'Lower CI', 'Upper CI' ] table = SimpleTable(data, stubs=table_stubs, txt_fmt=fmt_params, headers=header, title=title) smry.tables.append(table) instruments = self.model.instruments if instruments.shape[1] > 0: extra_text = [] endog = self.model.endog extra_text.append('Endogenous: ' + ', '.join(endog.cols)) extra_text.append('Instruments: ' + ', '.join(instruments.cols)) cov_descr = str(self._cov_estimator) for line in cov_descr.split('\n'): extra_text.append(line) smry.add_extra_txt(extra_text) return smry
def summary(self) -> Summary: """ Model estimation summary. Returns ------- Summary Summary table of model estimation results Supports export to csv, html and latex using the methods ``summary.as_csv()``, ``summary.as_html()`` and ``summary.as_latex()``. """ title = self.name + " Estimation Summary" top_left = [ ("No. Test Portfolios:", len(self._portfolio_names)), ("No. Factors:", len(self._factor_names)), ("No. Observations:", self.nobs), ("Date:", self._datetime.strftime("%a, %b %d %Y")), ("Time:", self._datetime.strftime("%H:%M:%S")), ("Cov. Estimator:", self._cov_type), ("", ""), ] j_stat = _str(self.j_statistic.stat) j_pval = pval_format(self.j_statistic.pval) j_dist = self.j_statistic.dist_name top_right = [ ("R-squared:", _str(self.rsquared)), ("J-statistic:", j_stat), ("P-value", j_pval), ("Distribution:", j_dist), ("", ""), ("", ""), ("", ""), ] stubs = [] vals = [] for stub, val in top_left: stubs.append(stub) vals.append([val]) table = SimpleTable(vals, txt_fmt=fmt_2cols, title=title, stubs=stubs) # create summary table instance smry = Summary() # Top Table # Parameter table fmt = fmt_2cols fmt["data_fmts"][1] = "%18s" top_right = [("%-21s" % (" " + k), v) for k, v in top_right] stubs = [] vals = [] for stub, val in top_right: stubs.append(stub) vals.append([val]) table.extend_right(SimpleTable(vals, stubs=stubs)) smry.tables.append(table) rp = np.asarray(self.risk_premia)[:, None] se = np.asarray(self.risk_premia_se)[:, None] tstats = np.asarray(self.risk_premia / self.risk_premia_se) pvalues = 2 - 2 * stats.norm.cdf(np.abs(tstats)) ci = rp + se * stats.norm.ppf([[0.025, 0.975]]) param_data = np.c_[rp, se, tstats[:, None], pvalues[:, None], ci] data = [] for row in param_data: txt_row = [] for i, v in enumerate(row): f = _str if i == 3: f = pval_format txt_row.append(f(v)) data.append(txt_row) title = "Risk Premia Estimates" table_stubs = list(self.risk_premia.index) header = ["Parameter", "Std. Err.", "T-stat", "P-value", "Lower CI", "Upper CI"] table = SimpleTable( data, stubs=table_stubs, txt_fmt=fmt_params, headers=header, title=title ) smry.tables.append(table) smry.add_extra_txt( [ "Covariance estimator:", str(self._cov_est), "See full_summary for complete results", ] ) return smry