Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
self.rsquared, self.rsquared_within, self.rsquared_between,
self.rsquared_overall, self.f_statistic], 1)
vals = [[i for i in v] for v in vals.T.values]
vals[2] = [str(v) for v in vals[2]]
for i in range(4, len(vals)):
f = _str
if i == 9:
f = pval_format
vals[i] = [f(v) for v in vals[i]]
params = self.params
precision = getattr(self, self._precision)
params_fmt = []
params_stub = []
for i in range(len(params)):
params_fmt.append([_str(v) for v in params.values[i]])
precision_fmt = []
for v in precision.values[i]:
v_str = _str(v)
v_str = '({0})'.format(v_str) if v_str.strip() else v_str
precision_fmt.append(v_str)
params_fmt.append(precision_fmt)
params_stub.append(params.index[i])
params_stub.append(' ')
vals = table_concat((vals, params_fmt))
stubs = stub_concat((stubs, params_stub))
all_effects = []
for key in self._results:
res = self._results[key]
effects = getattr(res, 'included_effects', [])
def _top_right(self):
f_stat = _str(self.f_statistic.stat)
if isnan(self.f_statistic.stat):
f_stat = ' N/A'
return [('R-squared:', _str(self.rsquared)),
('Adj. R-squared:', _str(self.rsquared_adj)),
('F-statistic:', f_stat),
('P-value (F-stat):', pval_format(self.f_statistic.pval)),
('Distribution:', str(self.f_statistic.dist_name)),
('R-squared (No Effects):', _str(round(self.absorbed_rsquared, 5))),
('Varaibles Absorbed:', _str(self.df_absorbed))
]
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)),
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()``.
"""
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]
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()
('', '')]
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 = []
def _top_right(self):
f_stat = _str(self.f_statistic.stat)
if isnan(self.f_statistic.stat):
f_stat = ' N/A'
return [('R-squared:', _str(self.rsquared)),
('Adj. R-squared:', _str(self.rsquared_adj)),
('F-statistic:', f_stat),
('P-value (F-stat):', pval_format(self.f_statistic.pval)),
('Distribution:', str(self.f_statistic.dist_name)),
('R-squared (No Effects):', _str(round(self.absorbed_rsquared, 5))),
('Varaibles Absorbed:', _str(self.df_absorbed))
]
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])
('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),
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