In [9]:
from statsmodels import api as sm
from my_libs import *
Regress the SPY and VIX index
- Need to translate the result into np.array
- Need to change type to float
In [51]:
spy = get_price_data(["SPY"],method='day',back_day=20).dropna().Return.values.astype(float)
spy_ = spy*30
All price data of Close is actually Adj Close Connection Successful Finished SPY
Constructed a model of vix = intercept + b0 * spy + b1 * spy * 30
In [52]:
ip = pd.DataFrame({"spy":spy,"spy_":spy_})
dp = get_price_data(["^VIX"],method='day',back_day=20).dropna().Return.values.astype(float)
All price data of Close is actually Adj Close Connection Successful no data for ^VIX 'NoneType' object has no attribute 'index' switching to realtimeday method Finished ^VIX
In [53]:
ip = sm.add_constant(ip)
/home/ken/.local/lib/python2.7/site-packages/numpy/core/fromnumeric.py:2389: FutureWarning: Method .ptp is deprecated and will be removed in a future version. Use numpy.ptp instead. return ptp(axis=axis, out=out, **kwargs)
In [54]:
sm.OLS(dp,ip).fit().summary()
/home/ken/.local/lib/python2.7/site-packages/scipy/stats/stats.py:1416: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=13 "anyway, n=%i" % int(n))
Out[54]:
Dep. Variable: | y | R-squared: | 0.737 |
---|---|---|---|
Model: | OLS | Adj. R-squared: | 0.713 |
Method: | Least Squares | F-statistic: | 30.80 |
Date: | Sun, 04 Aug 2019 | Prob (F-statistic): | 0.000173 |
Time: | 19:40:53 | Log-Likelihood: | 25.241 |
No. Observations: | 13 | AIC: | -46.48 |
Df Residuals: | 11 | BIC: | -45.35 |
Df Model: | 1 | ||
Covariance Type: | nonrobust |
coef | std err | t | P>|t| | [0.025 | 0.975] | |
---|---|---|---|---|---|---|
const | 0.0033 | 0.011 | 0.305 | 0.766 | -0.021 | 0.027 |
spy | -0.0109 | 0.002 | -5.550 | 0.000 | -0.015 | -0.007 |
spy_ | -0.3256 | 0.059 | -5.550 | 0.000 | -0.455 | -0.196 |
Omnibus: | 9.222 | Durbin-Watson: | 1.071 |
---|---|---|---|
Prob(Omnibus): | 0.010 | Jarque-Bera (JB): | 4.912 |
Skew: | -1.262 | Prob(JB): | 0.0858 |
Kurtosis: | 4.641 | Cond. No. | 5.85e+17 |
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The smallest eigenvalue is 3.82e-35. This might indicate that there are
strong multicollinearity problems or that the design matrix is singular.