#-------------------- # import packages #-------------------- import numpy as np import pandas as pd from sas7bdat import SAS7BDAT as sas from math import pi, log, isnan, isinf from matplotlib import pyplot as plt from scipy.optimize import minimize from scipy.linalg import inv import datetime #-------------------------- # read in the data; #-------------------------- data = sas('sp500.sas7bdat') data = data.to_data_frame() data = data.set_index(data['date']) # subset the data sp500_rtn = np.asarray( data[datetime.date(1955, 01, 03):datetime.date(2004, 12, 31)]['return']) #------------------------ # determine the spline #------------------------ def spline(tau_parms, T, knots): trend = np.array([t for t in xrange(1, T + 1)]) tau = np.resize(np.repeat(trend, knots), (T, knots)) pts = np.array([round(T / knots * i, 0) for i in xrange(knots)])
#-------------------- # import packages #-------------------- import numpy as np import pandas as pd from sas7bdat import SAS7BDAT as sas from math import pi, log, isnan, isinf from matplotlib import pyplot as plt from scipy.optimize import minimize from scipy.linalg import inv import datetime #-------------------------- # read in the data; #-------------------------- data = sas('sp500.sas7bdat') data = data.to_data_frame() data = data.set_index(data['date']) # subset the data sp500_rtn = np.asarray(data[datetime.date(1955,01,03):datetime.date(2004,12,31)]['return']) #------------------------ # determine the spline #------------------------ def spline(tau_parms, T, knots): trend = np.array([t for t in xrange(1,T+1)]) tau = np.resize(np.repeat(trend,knots),(T,knots)) pts = np.array([round(T/knots*i,0) for i in xrange(knots)]) factors = 1.0*(tau - pts > 0) tau = np.hstack(((trend*tau_parms[1]/T)[np.newaxis].T, tau_parms[2:]*factors*((tau - pts)/T)**2)) # scaled spline from Oxmetrics
from matplotlib import pyplot as plt from sas7bdat import SAS7BDAT as sas from scipy.optimize import minimize from math import pi, isnan, isinf, sqrt from scipy.linalg import inv from scipy import stats # read in a date helper function # modeled on sas intnx function execfile("intnx.py") #------------------ # read in the data #------------------ # S&P 500 returns daily = sas('sp500.sas7bdat') daily = daily.to_data_frame() daily = daily[1:] #---------------------- # lag helper function #---------------------- def lag_array(series, lag, c=1): # begin buildinglags T = series.size final = np.array([]) if type(lag)==int: for i in xrange(1,lag+1):