from stattools import unitroot_adf import scikits.statsmodels.datasets.macrodata.data as macro macrod = macro.load().data print macro.NOTE print macrod.dtype.names datatrendli = [ ("realgdp", 1), ("realcons", 1), ("realinv", 1), ("realgovt", 1), ("realdpi", 1), ("cpi", 1), ("m1", 1), ("tbilrate", 0), ("unemp", 0), ("pop", 1), ("infl", 0), ("realint", 0), ] print "%-10s %5s %-8s" % ("variable", "trend", " adf") for name, torder in datatrendli: print "%-10s %5d %8.4f" % (name, torder, unitroot_adf(macrod[name], trendorder=torder))
# License: Creative Commons Zero (almost public domain) http://scpyce.org/cc0 '''examples for orthogonal polynomial trend using scikits.statsmodels and matplotlib Author: Josef Perktold ''' import numpy as np from scipy import special import scikits.statsmodels.api as sm from scikits.statsmodels.datasets.macrodata import data dta = data.load() gdp = np.log(dta.data['realgdp']) from numpy import polynomial from scipy import special maxorder = 20 polybase = special.chebyt polybase = special.legendre t = np.linspace(-1, 1, len(gdp)) exog = np.column_stack([polybase(i)(t) for i in range(maxorder)]) fitted = [ sm.OLS(gdp, exog[:, :maxr]).fit().fittedvalues for maxr in range(2, maxorder) ]
from diagnostic import unitroot_adf import scikits.statsmodels.datasets.macrodata.data as macro macrod = macro.load().data print macro.NOTE print macrod.dtype.names datatrendli = [('realgdp', 1), ('realcons', 1), ('realinv', 1), ('realgovt', 1), ('realdpi', 1), ('cpi', 1), ('m1', 1), ('tbilrate', 0), ('unemp', 0), ('pop', 1), ('infl', 0), ('realint', 0)] print '%-10s %5s %-8s' % ('variable', 'trend', ' adf') for name, torder in datatrendli: adf_, pval = unitroot_adf(macrod[name], trendorder=torder)[:2] print '%-10s %5d %8.4f %8.4f' % (name, torder, adf_, pval)
import numpy as np #import scikits.statsmodels.linear_model.regression as smreg from scipy import special import scikits.statsmodels.api as sm from scikits.statsmodels.datasets.macrodata import data dta = data.load() gdp = np.log(dta.data['realgdp']) from numpy import polynomial from scipy import special maxorder = 20 polybase = special.chebyt polybase = special.legendre t = np.linspace(-1,1,len(gdp)) exog = np.column_stack([polybase(i)(t) for i in range(maxorder)]) fitted = [sm.OLS(gdp, exog[:, :maxr]).fit().fittedvalues for maxr in range(2,maxorder)] print (np.corrcoef(exog[:,1:6], rowvar=0)*10000).astype(int) import matplotlib.pyplot as plt