In [5]:
#Import Packages
import pandas as pd
import numpy as np
from Schedule.Schedule import Schedule
from Schedule.Stats import Stats
from Regression.Game_Scores_v2 import Game_Scores
%matplotlib inline


//anaconda/lib/python2.7/site-packages/pandas/computation/__init__.py:19: UserWarning: The installed version of numexpr 2.4.4 is not supported in pandas and will be not be used

  UserWarning)

In [6]:
#Get schedule of games
sched_2014 = Schedule(b_dt = '10/1/2014')
sched_2015 = Schedule(b_dt = '10/1/2015')

In [7]:
#Add four factors
sched_2014.add_four_factors()
sched_2015.add_four_factors()


Out[7]:
GAME_DATE Game_ID H_WL A_WL Home Team Away Team H_PTS A_PTS Pts_diff FGM_home ... H_BLK A_BLK H_FF_EFG H_FF_ORB H_FF_FTFGA H_FF_TOV A_FF_EFG A_FF_ORB A_FF_FTFGA A_FF_TOV
0 2016-04-09 21501188 1 0 ATL BOS 118 107 11 46 ... 10 6 0.619318 0.142857 0.102273 0.162152 0.505556 0.204082 0.177778 0.142099
1 2016-04-07 21501173 1 0 ATL TOR 95 87 8 33 ... 12 4 0.513158 0.116279 0.223684 0.139425 0.428571 0.181818 0.178571 0.114823
2 2016-04-05 21501157 1 0 ATL PHX 103 90 13 39 ... 3 4 0.468421 0.245283 0.147368 0.150432 0.444444 0.229167 0.222222 0.223881
3 2016-04-01 21501131 0 1 ATL CLE 108 110 -2 38 ... 8 6 0.447368 0.098039 0.242105 0.128822 0.459184 0.203704 0.204082 0.106534
4 2016-03-25 21501076 1 0 ATL MIL 101 90 11 41 ... 6 9 0.448454 0.340000 0.144330 0.111698 0.434524 0.363636 0.202381 0.158831
5 2016-03-21 21501048 0 1 ATL WAS 102 117 -15 38 ... 6 3 0.570513 0.054054 0.166667 0.143619 0.576923 0.225000 0.131868 0.090180
6 2016-03-19 21501029 1 0 ATL HOU 109 97 12 44 ... 6 3 0.579545 0.200000 0.079545 0.159553 0.422619 0.326087 0.309524 0.170614
7 2016-03-17 21501015 1 0 ATL DEN 116 98 18 40 ... 8 4 0.575000 0.189189 0.300000 0.123305 0.482759 0.214286 0.160920 0.140732
8 2016-03-13 21500984 1 0 ATL IND 104 75 29 40 ... 6 5 0.558824 0.225000 0.105882 0.157233 0.408046 0.145833 0.045977 0.161486
9 2016-03-12 21500974 1 0 ATL MEM 95 83 12 36 ... 12 5 0.494048 0.173913 0.142857 0.116427 0.378947 0.338983 0.115789 0.164677
10 2016-02-28 21500878 1 0 ATL CHA 87 76 11 38 ... 5 4 0.545455 0.162162 0.038961 0.170068 0.376543 0.192308 0.185185 0.068871
11 2016-02-26 21500865 1 0 ATL CHI 103 88 15 37 ... 11 2 0.455056 0.288889 0.247191 0.112751 0.392045 0.326923 0.215909 0.198649
12 2016-02-22 21500836 0 1 ATL GSW 92 102 -10 36 ... 7 8 0.476744 0.177778 0.116279 0.166601 0.516854 0.133333 0.112360 0.128357
13 2016-02-20 21500819 0 1 ATL MIL 109 117 -8 44 ... 8 10 0.457547 0.172414 0.113208 0.133422 0.456731 0.303571 0.211538 0.143970
14 2016-02-19 21500808 0 1 ATL MIA 111 115 -4 41 ... 4 1 0.563218 0.181818 0.149425 0.198638 0.545455 0.227273 0.215909 0.134202
15 2016-02-08 21500780 0 1 ATL ORL 110 117 -7 43 ... 4 8 0.532609 0.163265 0.130435 0.131086 0.543011 0.133333 0.172043 0.118527
16 2016-02-05 21500750 1 0 ATL IND 102 96 6 39 ... 5 4 0.578947 0.081081 0.184211 0.154959 0.489011 0.395833 0.076923 0.200084
17 2016-02-01 21500723 1 0 ATL DAL 112 97 15 42 ... 6 2 0.612500 0.156250 0.175000 0.152501 0.405882 0.181818 0.329412 0.061400
18 2016-01-27 21500687 0 1 ATL LAC 83 85 -2 33 ... 3 5 0.481013 0.177778 0.088608 0.221864 0.417647 0.180000 0.164706 0.114298
19 2016-01-18 21500620 1 0 ATL ORL 98 81 17 41 ... 6 5 0.568750 0.114286 0.087500 0.174538 0.379310 0.203704 0.172414 0.132924
20 2016-01-16 21500602 1 0 ATL BKN 114 86 28 44 ... 5 3 0.607595 0.147059 0.227848 0.105753 0.474359 0.166667 0.153846 0.176422
21 2016-01-09 21500551 1 0 ATL CHI 120 105 15 49 ... 13 6 0.574468 0.190476 0.127660 0.139405 0.475904 0.272727 0.313253 0.198788
22 2016-01-05 21500521 0 1 ATL NYK 101 107 -6 37 ... 4 6 0.511494 0.285714 0.137931 0.137770 0.505952 0.289474 0.261905 0.097234
23 2015-12-26 21500442 1 0 ATL NYK 117 98 19 47 ... 4 8 0.579545 0.250000 0.170455 0.094817 0.524691 0.307692 0.160494 0.223396
24 2015-12-23 21500429 1 0 ATL DET 107 100 7 43 ... 4 9 0.516854 0.232558 0.168539 0.128968 0.466292 0.288889 0.191011 0.133946
25 2015-12-21 21500413 1 0 ATL POR 106 97 9 37 ... 1 4 0.538961 0.052632 0.298701 0.102754 0.500000 0.325581 0.197531 0.190114
26 2015-12-16 21500376 1 0 ATL PHI 127 106 21 48 ... 7 2 0.679487 0.074074 0.269231 0.121753 0.600000 0.233333 0.213333 0.218775
27 2015-12-14 21500360 0 1 ATL MIA 88 100 -12 33 ... 4 5 0.440476 0.152174 0.166667 0.143443 0.488764 0.333333 0.146067 0.156904
28 2015-12-12 21500347 0 1 ATL SAS 78 103 -25 30 ... 3 2 0.406250 0.140000 0.162500 0.175185 0.554054 0.187500 0.283784 0.228447
29 2015-12-04 21500286 1 0 ATL LAL 100 87 13 37 ... 9 7 0.567568 0.250000 0.216216 0.187225 0.447674 0.306122 0.116279 0.172563
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1200 2016-02-25 21500860 0 1 UTA SAS 78 96 -18 33 ... 2 5 0.448052 0.105263 0.116883 0.123208 0.537975 0.250000 0.139241 0.127492
1201 2016-02-23 21500843 1 0 UTA HOU 117 114 3 38 ... 4 4 0.581081 0.250000 0.418919 0.202468 0.477011 0.250000 0.356322 0.129582
1202 2016-02-19 21500817 1 0 UTA BOS 111 93 18 37 ... 8 3 0.617647 0.235294 0.397059 0.158966 0.413580 0.156863 0.320988 0.073038
1203 2016-02-05 21500758 1 0 UTA MIL 84 81 3 30 ... 8 7 0.441558 0.260870 0.207792 0.166445 0.471831 0.175000 0.197183 0.214500
1204 2016-02-03 21500743 1 0 UTA DEN 85 81 4 33 ... 10 2 0.479730 0.200000 0.189189 0.157658 0.400000 0.230769 0.357143 0.156390
1205 2016-02-01 21500728 1 0 UTA CHI 105 96 9 38 ... 4 7 0.488235 0.227273 0.258824 0.135240 0.461111 0.166667 0.144444 0.133588
1206 2016-01-29 21500704 1 0 UTA MIN 103 90 13 40 ... 5 2 0.592105 0.285714 0.171053 0.151093 0.480000 0.302326 0.240000 0.160110
1207 2016-01-27 21500690 1 0 UTA CHA 102 73 29 40 ... 6 0 0.567901 0.189189 0.123457 0.110375 0.411765 0.116279 0.250000 0.199468
1208 2016-01-25 21500673 0 1 UTA DET 92 95 -3 34 ... 4 1 0.452941 0.255319 0.176471 0.138416 0.526667 0.159091 0.213333 0.108085
1209 2016-01-16 21500608 1 0 UTA LAL 109 82 27 41 ... 8 4 0.566265 0.282051 0.180723 0.111210 0.394444 0.285714 0.122222 0.145955
1210 2016-01-14 21500591 0 1 UTA SAC 101 103 -2 35 ... 3 2 0.457831 0.200000 0.301205 0.128764 0.493243 0.333333 0.405405 0.160462
1211 2016-01-09 21500555 1 0 UTA MIA 98 83 15 39 ... 7 8 0.612676 0.172414 0.154930 0.177936 0.451220 0.319149 0.109756 0.185833
1212 2016-01-04 21500518 0 1 UTA HOU 91 93 -2 30 ... 4 2 0.480000 0.348837 0.253333 0.174419 0.566176 0.171429 0.235294 0.183402
1213 2016-01-02 21500503 1 0 UTA MEM 92 87 5 31 ... 7 4 0.473333 0.219512 0.280000 0.169635 0.450617 0.170213 0.172840 0.115256
1214 2015-12-31 21500489 1 0 UTA POR 109 96 13 43 ... 5 0 0.587209 0.279070 0.093023 0.059637 0.551282 0.210526 0.128205 0.116063
1215 2015-12-28 21500467 1 0 UTA PHI 95 91 4 28 ... 9 9 0.375000 0.340909 0.380952 0.150240 0.447674 0.173913 0.162791 0.172480
1216 2015-12-26 21500452 0 1 UTA LAC 104 109 -5 36 ... 4 6 0.554054 0.228571 0.297297 0.170430 0.563291 0.200000 0.253165 0.126904
1217 2015-12-21 21500417 1 0 UTA PHX 110 89 21 36 ... 6 0 0.512658 0.261905 0.367089 0.106067 0.436709 0.200000 0.253165 0.140268
1218 2015-12-18 21500395 1 0 UTA DEN 97 88 9 34 ... 1 4 0.534247 0.147059 0.260274 0.150538 0.430380 0.306122 0.253165 0.157303
1219 2015-12-16 21500380 0 1 UTA NOP 94 104 -10 32 ... 4 2 0.529851 0.151515 0.343284 0.138313 0.534247 0.216216 0.356164 0.114521
1220 2015-12-11 21500341 0 1 UTA OKC 90 94 -4 33 ... 4 2 0.474359 0.244444 0.205128 0.124210 0.506329 0.282051 0.177215 0.147660
1221 2015-12-09 21500327 1 0 UTA NYK 106 85 21 39 ... 2 3 0.543750 0.236842 0.237500 0.147183 0.448718 0.142857 0.192308 0.107666
1222 2015-12-05 21500297 1 0 UTA IND 122 119 3 43 ... 3 2 0.510870 0.372549 0.304348 0.143843 0.494624 0.255319 0.290323 0.135184
1223 2015-12-03 21500279 0 1 UTA ORL 94 103 -9 31 ... 8 4 0.527778 0.138889 0.250000 0.196769 0.494382 0.209302 0.168539 0.103520
1224 2015-11-30 21500259 0 1 UTA GSW 103 106 -3 40 ... 2 5 0.483146 0.243902 0.191011 0.082747 0.573171 0.358974 0.146341 0.167411
1225 2015-11-28 21500243 1 0 UTA NOP 101 87 14 38 ... 9 4 0.518293 0.279070 0.195122 0.159168 0.456522 0.097561 0.347826 0.169851
1226 2015-11-23 21500208 0 1 UTA OKC 89 111 -22 28 ... 3 10 0.417808 0.302326 0.383562 0.212982 0.616883 0.176471 0.207792 0.168563
1227 2015-11-18 21500173 1 0 UTA TOR 93 89 4 35 ... 5 4 0.534722 0.200000 0.222222 0.185428 0.456250 0.209302 0.200000 0.150667
1228 2015-11-07 21500091 1 0 UTA MEM 89 79 10 31 ... 10 1 0.500000 0.225000 0.202703 0.223595 0.362637 0.245283 0.142857 0.142624
1229 2015-11-04 21500068 0 1 UTA POR 92 108 -16 33 ... 8 7 0.403409 0.313725 0.238636 0.094221 0.603896 0.351351 0.194805 0.195715

1230 rows × 39 columns


In [8]:
# Create last n statistics
games = sched_2014.get_games().append(sched_2015.get_games()).reset_index(drop=True)
stats = Stats(games, 'avg', 'GAME_DATE', 'Home Team', 'Away Team', 'Pts_diff', ['Game_ID'])

In [12]:
# Creates stats for last 5 games
stats_5 = stats.get_lastn_stats(5)
stats_5.to_csv('stats_5.csv', index=False)
stats_5 = pd.read_csv('stats_5.csv')

In [16]:
#filters out games with insufficient data
print len(stats_5)

stats_5 = stats_5[stats_5['H_5_games']==5]
print len(stats_5)

stats_5 = stats_5[stats_5['A_5_games']==5]
print len(stats_5)


2460
2312
2303

In [18]:
# Gets correlation of variables to target variable
stats.get_correl(stats_5)


Out[18]:
Correlation
H_WL_5 0.227799
H_O_WL_5 -0.227799
A_WL_5 -0.191590
A_O_WL_5 0.191590
H_PTS_5 0.183920
H_O_PTS_5 -0.107057
A_PTS_5 -0.137535
A_O_PTS_5 0.125194
H_AST_5 0.139224
H_O_AST_5 -0.118724
A_AST_5 -0.134060
A_O_AST_5 0.081061
H_STL_5 0.068865
H_O_STL_5 -0.068849
A_STL_5 -0.039482
A_O_STL_5 0.043412
H_BLK_5 0.074494
H_O_BLK_5 -0.140005
A_BLK_5 -0.058525
A_O_BLK_5 0.097600
H_FF_EFG_5 0.200893
H_O_FF_EFG_5 -0.122501
A_FF_EFG_5 -0.164281
A_O_FF_EFG_5 0.135848
H_FF_ORB_5 0.016767
H_O_FF_ORB_5 -0.034089
A_FF_ORB_5 -0.005869
A_O_FF_ORB_5 0.046602
H_FF_FTFGA_5 -0.014306
H_O_FF_FTFGA_5 -0.007291
A_FF_FTFGA_5 0.008323
A_O_FF_FTFGA_5 0.058261
H_FF_TOV_5 -0.065029
H_O_FF_TOV_5 0.023297
A_FF_TOV_5 0.036441
A_O_FF_TOV_5 -0.001842
H_BTB -0.033433
A_BTB 0.022548
H_5_games NaN
A_5_games NaN
Game_ID 0.019631

In [20]:
# Creates model
x_5 = stats_5.drop(['Game_ID','Pts_diff'], axis=1)
gs_5 = Game_Scores(stats_5, x, 'Pts_diff')

In [21]:
gs_5.create_rank_order_graph()


//anaconda/lib/python2.7/site-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  if self._edgecolors == str('face'):

In [22]:
gs_5.get_model().get_mse()


Out[22]:
144.64567035857036

In [12]:
# Creates stats for last 10 games
stats_10 = stats.get_lastn_stats(10)
stats_10.to_csv('stats_10.csv', index=False)
stats_10 = pd.read_csv('stats_10.csv')

In [16]:
#filters out games with insufficient data
print len(stats_10)

stats_10 = stats_10[stats_10['H_10_games']==10]
print len(stats_10)

stats_10 = stats_10[stats_10['A_10_games']==10]
print len(stats_10)


2460
2312
2303

In [18]:
# Gets correlation of variables to target variable
stats.get_correl(stats_10)


Out[18]:
Correlation
H_WL_5 0.227799
H_O_WL_5 -0.227799
A_WL_5 -0.191590
A_O_WL_5 0.191590
H_PTS_5 0.183920
H_O_PTS_5 -0.107057
A_PTS_5 -0.137535
A_O_PTS_5 0.125194
H_AST_5 0.139224
H_O_AST_5 -0.118724
A_AST_5 -0.134060
A_O_AST_5 0.081061
H_STL_5 0.068865
H_O_STL_5 -0.068849
A_STL_5 -0.039482
A_O_STL_5 0.043412
H_BLK_5 0.074494
H_O_BLK_5 -0.140005
A_BLK_5 -0.058525
A_O_BLK_5 0.097600
H_FF_EFG_5 0.200893
H_O_FF_EFG_5 -0.122501
A_FF_EFG_5 -0.164281
A_O_FF_EFG_5 0.135848
H_FF_ORB_5 0.016767
H_O_FF_ORB_5 -0.034089
A_FF_ORB_5 -0.005869
A_O_FF_ORB_5 0.046602
H_FF_FTFGA_5 -0.014306
H_O_FF_FTFGA_5 -0.007291
A_FF_FTFGA_5 0.008323
A_O_FF_FTFGA_5 0.058261
H_FF_TOV_5 -0.065029
H_O_FF_TOV_5 0.023297
A_FF_TOV_5 0.036441
A_O_FF_TOV_5 -0.001842
H_BTB -0.033433
A_BTB 0.022548
H_5_games NaN
A_5_games NaN
Game_ID 0.019631

In [ ]:
# Creates model
x_10 = stats_10.drop(['Game_ID','Pts_diff'], axis=1)
gs_10 = Game_Scores(stats_10, x, 'Pts_diff')

In [ ]:
gs_10.create_rank_order_graph()

In [ ]:
gs_10.get_model().get_mse()