SQL Session

/** Output results of SQL query below to external CSV for R input... **/

SELECT

  S.team,

  SUM(DECODE(S.wlt, 'WIN',1.0, 'LOSS',0, 'TIE',0.5, 0)) AS wins,

  MIN(T.margin) AS to_diff,

  MIN(T.take_tot) AS takeaways,

  MIN(T.take_int) - MIN(T.give_int) AS int_diff,

  MIN(T.take_int) AS ints,

  MIN(T.take_fum) - MIN(T.give_fum) AS fum_diff,

  MIN(T.take_fum) AS fumbles

FROM nfl2012_scores S, nfl2012_turnovers T

WHERE S.team = T.team

GROUP BY S.team

ORDER BY 2 DESC;

/

R Session

-- read in turnover data from Oracle-generated CSV file...

> nflto <- read.csv("nfl2012_turnovers.csv", header=TRUE, sep=",", as.is=TRUE)

>

-- calc statistical correlations with winning for six turnover variables...

> cor(nflto$WINS, nflto$TAKEAWAYS)

[1] 0.4749539

> cor(nflto$WINS, nflto$INTS)

[1] 0.43393

> cor(nflto$WINS, nflto$FUMBLES)

[1] 0.3552009

> cor(nflto$WINS, nflto$TO_DIFF)

[1] 0.6862379

> cor(nflto$WINS, nflto$INT_DIFF)

[1] 0.6809065

> cor(nflto$WINS, nflto$FUM_DIFF)

[1] 0.5451064

-- display 2012 Turnover data frame...

-- teams in green made playoffs

-- red:     positive T.O. margin average of at least +1 per game

-- magenta: negative T.O. margin average of at best -1 per game

> nflto

   TEAM WINS TO_DIFF TAKEAWAYS INT_DIFF INTS FUM_DIFF FUMBLES

1   DEN 13.0      -1        24        5   16       -6       8

2   ATL 13.0      13        31        6   20        7      11

3   HOU 12.0      12        29        2   15       10      14

4    NE 12.0      25        41       11   20       14      21

5    SF 11.5       9        25        6   14        3      11

6    GB 11.0       7        23       10   18       -3       5

7   SEA 11.0      13        31        8   18        5      13

8   WAS 10.0      16        30       13   21        3       9

9   CHI 10.0      20        44        8   24       12      20

10  MIN 10.0      -1        22       -2   10        1      12

11  CIN 10.0       4        30       -2   14        6      16

12  BAL 10.0       9        25        2   13        7      12

13  IND 10.0     -12        15       -6   12       -6       3

14  NYG  9.0      14        35        6   21        8      14

15  DAL  8.0     -13        16      -12    7       -1       9

16  PIT  8.0     -10        20       -4   10       -6      10

17  STL  7.5      -1        21        3   17       -4       4

18   NO  7.0       2        26       -4   15        6      11

19  MIA  7.0     -10        16       -3   10       -7       6

20  CAR  7.0       1        23       -1   11        2      12

21   SD  7.0       2        28       -1   14        3      14

22   TB  7.0       3        26        1   18        2       8

23  NYJ  6.0     -14        23       -8   11       -6      12

24  TEN  6.0      -4        24        3   19       -7       5

25  BUF  6.0     -13        21       -5   12       -8       9

26  CLE  5.0       3        29       -1   17        4      12

27   AZ  5.0      -1        33        1   22       -2      11

28  OAK  4.0      -7        19       -5   11       -2       8

29  PHI  4.0     -24        13       -7    8      -17       5

30  DET  4.0     -16        17       -6   11      -10       6

31   KC  2.0     -24        13      -13    7      -11       6

32  JAC  2.0      -3        23       -5   12        2      11

>

 

--R code for 1st plot (pure takeaways)...

> par(mar = c(5,5,2,5), bg="wheat")

> plot(nflto$WINS,main="NFL 2012 Takeaways",las=1,pch=19,xlab="TEAMS",ylab="WINS",ylim=c(2,13))

> lines(nflto$WINS, col="black", lty=2, lwd=1)

> par(new = TRUE)

> plot(nflto$TAKEAWAYS,col="purple",lty=1,axes=FALSE,xlab=NA,ylab=NA,ylim=c(1,48))

> lines(nflto$INTS, col="red", lwd=2)

> lines(nflto$FUMBLES, col="blue", lwd=2)

> lines(nflto$TAKEAWAYS, col="purple", lwd=2)

> axis(side=4, at=c(0,5,10,15,20,25,30,35,40,45), las=1)

> mtext(side=4, line=3, "TURNOVERS")

> abline(h=30, col="green")

> legend("topright",col=c("black","purple","red","blue"),lty=c(2,1,1,1),lwd=2,legend=c

+ ("win","takeaway","int","fumble"))

>

--R code for 2nd plot (takeaways minus giveaways)...

> par(mar = c(5,5,2,5), bg="wheat")

> plot(nflto$WINS,main="NFL 2012 Turnover Margins",las=1,pch=19,xlab="TEAMS",ylab="WINS",ylim=c(2,13))

> lines(nflto$WINS, col="black", lty=2, lwd=1)

> par(new = TRUE)

> plot(nflto$TO_DIFF,col="purple",lty=1,axes=FALSE,xlab=NA,ylab=NA,ylim=c(-25,25))

> lines(nflto$INT_DIFF, col="red", lwd=2)

> lines(nflto$FUM_DIFF, col="blue", lwd=2)

> lines(nflto$TO_DIFF, col="purple", lwd=2)

> axis(side=4, at=c(-25,-20,-15,-10,-5,0,5,10,15,20,25), las=1)

> mtext(side=4, line=3, "TURNOVER DIFFERENTIAL")

> legend("topright",col=c("black","purple","red","blue"),lty=c(2,1,1,1),lwd=2,legend=c

+ ("win","TO-diff","int-diff","fum-diff"))

> abline(h=0, col="gray")

>