120 lines
3.2 KiB
Python
120 lines
3.2 KiB
Python
|
'''examples to check summary, not converted to tests yet
|
||
|
|
||
|
|
||
|
'''
|
||
|
|
||
|
import numpy as np # noqa: F401
|
||
|
import pytest
|
||
|
from numpy.testing import assert_equal
|
||
|
|
||
|
from statsmodels.datasets import macrodata
|
||
|
from statsmodels.tools.tools import add_constant
|
||
|
from statsmodels.regression.linear_model import OLS
|
||
|
|
||
|
|
||
|
def test_escaped_variable_name():
|
||
|
# Rename 'cpi' column to 'CPI_'
|
||
|
data = macrodata.load().data
|
||
|
data.rename(columns={'cpi': 'CPI_'}, inplace=True)
|
||
|
|
||
|
mod = OLS.from_formula('CPI_ ~ 1 + np.log(realgdp)', data=data)
|
||
|
res = mod.fit()
|
||
|
assert 'CPI\\_' in res.summary().as_latex()
|
||
|
assert 'CPI_' in res.summary().as_text()
|
||
|
|
||
|
|
||
|
def test_wrong_len_xname(reset_randomstate):
|
||
|
y = np.random.randn(100)
|
||
|
x = np.random.randn(100, 2)
|
||
|
res = OLS(y, x).fit()
|
||
|
with pytest.raises(ValueError):
|
||
|
res.summary(xname=['x1'])
|
||
|
with pytest.raises(ValueError):
|
||
|
res.summary(xname=['x1', 'x2', 'x3'])
|
||
|
|
||
|
|
||
|
class TestSummaryLatex:
|
||
|
def test__repr_latex_(self):
|
||
|
desired = r'''
|
||
|
\begin{center}
|
||
|
\begin{tabular}{lcccccc}
|
||
|
\toprule
|
||
|
& \textbf{coef} & \textbf{std err} & \textbf{t} & \textbf{P$> |$t$|$} & \textbf{[0.025} & \textbf{0.975]} \\
|
||
|
\midrule
|
||
|
\textbf{const} & 7.2248 & 0.866 & 8.346 & 0.000 & 5.406 & 9.044 \\
|
||
|
\textbf{x1} & -0.6609 & 0.177 & -3.736 & 0.002 & -1.033 & -0.289 \\
|
||
|
\bottomrule
|
||
|
\end{tabular}
|
||
|
\end{center}
|
||
|
'''
|
||
|
x = [1, 5, 7, 3, 5, 5, 8, 3, 3, 4, 6, 4, 2, 7, 4, 2, 1, 9, 2, 6]
|
||
|
x = add_constant(x)
|
||
|
y = [6, 4, 2, 7, 4, 2, 1, 9, 2, 6, 1, 5, 7, 3, 5, 5, 8, 3, 3, 4]
|
||
|
reg = OLS(y, x).fit()
|
||
|
|
||
|
actual = reg.summary().tables[1]._repr_latex_()
|
||
|
actual = '\n%s\n' % actual
|
||
|
assert_equal(actual, desired)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
|
||
|
from statsmodels.regression.tests.test_regression import TestOLS
|
||
|
|
||
|
#def mytest():
|
||
|
aregression = TestOLS()
|
||
|
TestOLS.setup_class()
|
||
|
results = aregression.res1
|
||
|
r_summary = str(results.summary_old())
|
||
|
print(r_summary)
|
||
|
olsres = results
|
||
|
|
||
|
print('\n\n')
|
||
|
|
||
|
r_summary = str(results.summary())
|
||
|
print(r_summary)
|
||
|
print('\n\n')
|
||
|
|
||
|
|
||
|
from statsmodels.discrete.tests.test_discrete import TestProbitNewton
|
||
|
|
||
|
aregression = TestProbitNewton()
|
||
|
TestProbitNewton.setup_class()
|
||
|
results = aregression.res1
|
||
|
r_summary = str(results.summary())
|
||
|
print(r_summary)
|
||
|
print('\n\n')
|
||
|
|
||
|
probres = results
|
||
|
|
||
|
from statsmodels.robust.tests.test_rlm import TestHampel
|
||
|
|
||
|
aregression = TestHampel()
|
||
|
#TestHampel.setup_class()
|
||
|
results = aregression.res1
|
||
|
r_summary = str(results.summary())
|
||
|
print(r_summary)
|
||
|
rlmres = results
|
||
|
|
||
|
print('\n\n')
|
||
|
|
||
|
from statsmodels.genmod.tests.test_glm import TestGlmBinomial
|
||
|
|
||
|
aregression = TestGlmBinomial()
|
||
|
#TestGlmBinomial.setup_class()
|
||
|
results = aregression.res1
|
||
|
r_summary = str(results.summary())
|
||
|
print(r_summary)
|
||
|
|
||
|
#print(results.summary2(return_fmt='latex'))
|
||
|
#print(results.summary2(return_fmt='csv'))
|
||
|
|
||
|
smry = olsres.summary()
|
||
|
print(smry.as_csv())
|
||
|
|
||
|
# import matplotlib.pyplot as plt
|
||
|
# plt.plot(rlmres.model.endog,'o')
|
||
|
# plt.plot(rlmres.fittedvalues,'-')
|
||
|
#
|
||
|
# plt.show()
|