-
Notifications
You must be signed in to change notification settings - Fork 0
/
draftReg.py
59 lines (40 loc) · 1.64 KB
/
draftReg.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
__author__ = 'cparlin'
import pandas as pd
import numpy as np
from pandas.tseries.offsets import CustomBusinessMonthBegin
from pandas.tseries.holiday import USFederalHolidayCalendar
import statsmodels.tsa.stattools as ts
import statsmodels.api as sm
bmth_us = CustomBusinessMonthBegin(calendar=USFederalHolidayCalendar())
data = pd.read_csv('../data/apple2010to2015daily.csv')
mi = pd.read_csv('../data/sp500.csv')
data = data.set_index(pd.to_datetime(data['Date']))
data.drop('Date', axis=1, inplace=True)
mi = mi.set_index(pd.to_datetime(mi['Date']))
mi.drop('Date', axis=1, inplace=True)
print(mi.head())
def cumret(ts):
ts=np.add(ts,1)
ts=np.cumprod(ts)[len(ts)-1]
ts = ts-1
return ts
data = data.resample(bmth_us, how=cumret)
mi = mi.resample(bmth_us, how=cumret)
data_stattest = ts.adfuller(data['Adj. Close'], regression='c', autolag="BIC", store=True, regresults=True)
mi_stattest = ts.adfuller(mi['Adj Close'], regression='c', autolag="BIC", store=True, regresults=True)
print("Stock Stationarity Test:")
print(data_stattest)
print("Market Index Stationarity Test:")
print(mi_stattest)
alldata = np.concatenate((data, mi), axis=1)
alldata = sm.add_constant(alldata)
print(alldata[0:5])
print(alldata[1:len(alldata),1].shape)
print(alldata[0:(len(alldata)-1), [0,2]].shape)
linreg = sm.OLS(alldata[1:len(alldata),1], alldata[0:(len(alldata)-1), [0,2]])
results = linreg.fit()
print(results.summary())
residuals = results.resid
res_stattest = ts.adfuller(residuals, regression='c', autolag="BIC", store=True, regresults=True)
print("Residuals Stationarity Test:")
print(res_stattest)