forked from pandas-dev/pandas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathregressions.py
49 lines (32 loc) · 988 Bytes
/
regressions.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
from datetime import datetime
import string
import numpy as np
from pandas.core.api import Series, DataFrame, DateRange
from pandas.stats.api import ols
N = 100
start = datetime(2009, 9, 2)
dateRange = DateRange(start, periods=N)
def makeDataFrame():
data = DataFrame(np.random.randn(N, 7),
columns=list(string.ascii_uppercase[:7]),
index=dateRange)
return data
def makeSeries():
return Series(np.random.randn(N), index=dateRange)
#-------------------------------------------------------------------------------
# Standard rolling linear regression
X = makeDataFrame()
Y = makeSeries()
model = ols(y=Y, x=X)
print model
#-------------------------------------------------------------------------------
# Panel regression
data = {
'A' : makeDataFrame(),
'B' : makeDataFrame(),
'C' : makeDataFrame()
}
Y = makeDataFrame()
panelModel = ols(y=Y, x=data, window=50)
model = ols(y=Y, x=data)
print panelModel