library(tidyverse)
library(openintro)
download.file("http://www.openintro.org/stat/data/mlb11.RData", destfile = "mlb11.RData")
load("mlb11.RData")

Exercise 1

I would use a scatterplot to display the relationship between runs and another numerical variable. The function for this in R is “plot(x,y)”. The relationship looks relatively linear, and the correlation coefficient indicates the same, so I would feel comfortable using a linear model to predict runs given an adequate margin of error.

cor(mlb11$runs, mlb11$at_bats)
## [1] 0.610627
plot(mlb11$at_bats, mlb11$runs)

Exercise 2 and 3

Form: Linear
Direction: Positive
Strength: Moderate

Sum of Squares: 123721.9

plot_ss(x = mlb11$at_bats, y = mlb11$runs, showSquares = TRUE)

## Click two points to make a line.
                                
## Call:
## lm(formula = y ~ x, data = pts)
## 
## Coefficients:
## (Intercept)            x  
##  -2789.2429       0.6305  
## 
## Sum of Squares:  123721.9
m1 <- lm(runs ~ at_bats, data = mlb11)
summary(m1)
## 
## Call:
## lm(formula = runs ~ at_bats, data = mlb11)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -125.58  -47.05  -16.59   54.40  176.87 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2789.2429   853.6957  -3.267 0.002871 ** 
## at_bats         0.6305     0.1545   4.080 0.000339 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 66.47 on 28 degrees of freedom
## Multiple R-squared:  0.3729, Adjusted R-squared:  0.3505 
## F-statistic: 16.65 on 1 and 28 DF,  p-value: 0.0003388

Exercise 4

equation: y_hat = 415.239 + 1.835*homeruns

The slope tells us that homeruns and runs are positively correlated. I don’t understand baseball so I can’t interpret what exactly this means lol. Maybe its just saying that the measures of success of the teams are related directly?

plot_ss(x = mlb11$homeruns, y = mlb11$runs, showSquares = TRUE)

## Click two points to make a line.
                                
## Call:
## lm(formula = y ~ x, data = pts)
## 
## Coefficients:
## (Intercept)            x  
##     415.239        1.835  
## 
## Sum of Squares:  73671.99
m2 <- lm(runs ~ homeruns, data = mlb11)

Exercise 5

The data shows 713 runs at 5579 at-bats, but the model could predict it to be higher by roughly 14.686 runs than it may actually be.

plot(mlb11$runs ~ mlb11$at_bats)
abline(m1)

713 - (-2789.2429+0.6305*5578)
## [1] -14.6861

Exercise 6

There appears to be no pattern in the plot, and the correlation coefficient confirms this. You could use a linear model with slope zero to model the relationship but that wouldn’t mean much.

plot(m1$residuals ~ mlb11$at_bats)
abline(h = 0, lty = 3)  # adds a horizontal dashed line at y = 0

cor(m1$residuals, mlb11$at_bats)
## [1] 1.386089e-15
hist(m1$residuals)

shapiro.test(m1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  m1$residuals
## W = 0.96144, p-value = 0.337

Exercise 7

Yes, it does and this is evident from the p-value of 0.337 from the Shapiro-Wilks test.

Exercise 8

The data does not appear to cluster, at least visually, so I feel comfortable saying that it is constantly variable.

On Your Own

At a glance there doesn’t appear to be some sort of linear relationship to me. The relationship is inverse compared to that of runs and at_bats (there is a negative correlation). The R^2 value is smaller, at 13.97% of the variability of runs being explained by strikeouts (as compared to 37.3%). My variable does not seem to predict runs better than at_bats because both the R^2 and correlation coefficient are lower.The variable bat_avg appears to predict runs the best with a correlation coefficient of 0.801 (out of the traditional variables). Out of the new variables, new_obs seems to predict runs the best, with a correlation coefficient of 0.967, the best of all the variables. The conditions of constant variability and normal distribution of residuals appear to be met based on the scatterplot and shapiro-wilks test of the residuals of model 4 which uses new_obs as a predictor of runs, and therefore I believe that this is the most reliable linear model for runs in the dataset.

cor(mlb11$runs, mlb11$strikeouts)
## [1] -0.4115312
plot_ss(x = mlb11$strikeouts, y = mlb11$runs, showSquares = TRUE)

## Click two points to make a line.
                                
## Call:
## lm(formula = y ~ x, data = pts)
## 
## Coefficients:
## (Intercept)            x  
##   1054.7342      -0.3141  
## 
## Sum of Squares:  163870.1
m3 <- lm(runs ~ strikeouts, data = mlb11)
summary(m3)
## 
## Call:
## lm(formula = runs ~ strikeouts, data = mlb11)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -132.27  -46.95  -11.92   55.14  169.76 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1054.7342   151.7890   6.949 1.49e-07 ***
## strikeouts    -0.3141     0.1315  -2.389   0.0239 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 76.5 on 28 degrees of freedom
## Multiple R-squared:  0.1694, Adjusted R-squared:  0.1397 
## F-statistic: 5.709 on 1 and 28 DF,  p-value: 0.02386
plot(mlb11$runs ~ mlb11$strikeouts)
abline(m3)

plot(m3$residuals ~ mlb11$strikeouts)
abline(h = 0, lty = 3)  # adds a horizontal dashed line at y = 0

cor(m3$residuals, mlb11$at_bats)
## [1] 0.4607368
hist(m3$residuals)

shapiro.test(m3$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  m3$residuals
## W = 0.96885, p-value = 0.5083
cor(mlb11$runs, mlb11$hits)
## [1] 0.8012108
cor(mlb11$runs, mlb11$bat_avg)
## [1] 0.8099859
cor(mlb11$runs, mlb11$stolen_bases)
## [1] 0.05398141
cor(mlb11$runs, mlb11$wins)
## [1] 0.6008088
cor(mlb11$runs, mlb11$new_onbase)
## [1] 0.9214691
cor(mlb11$runs, mlb11$new_slug)
## [1] 0.9470324
cor(mlb11$runs, mlb11$new_obs)
## [1] 0.9669163
plot_ss(x = mlb11$new_obs, y = mlb11$runs, showSquares = TRUE)

## Click two points to make a line.
                                
## Call:
## lm(formula = y ~ x, data = pts)
## 
## Coefficients:
## (Intercept)            x  
##      -686.6       1919.4  
## 
## Sum of Squares:  12837.66
m4 <- lm(runs ~ new_obs, data = mlb11)
summary(m4)
## 
## Call:
## lm(formula = runs ~ new_obs, data = mlb11)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -43.456 -13.690   1.165  13.935  41.156 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -686.61      68.93  -9.962 1.05e-10 ***
## new_obs      1919.36      95.70  20.057  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 21.41 on 28 degrees of freedom
## Multiple R-squared:  0.9349, Adjusted R-squared:  0.9326 
## F-statistic: 402.3 on 1 and 28 DF,  p-value: < 2.2e-16
plot(mlb11$runs ~ mlb11$new_obs)
abline(m4)

plot(m4$residuals ~ mlb11$new_obs)
abline(h = 0, lty = 3)  # adds a horizontal dashed line at y = 0

cor(m4$residuals, mlb11$at_bats)
## [1] 0.01368748
hist(m4$residuals)

shapiro.test(m4$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  m4$residuals
## W = 0.98068, p-value = 0.8434
LS0tDQp0aXRsZTogIkludHJvZHVjdGlvbiB0byBMaW5lYXIgUmVncmVzc2lvbiINCmF1dGhvcjogIkFkaSBWLiINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogb3BlbmludHJvOjpsYWJfcmVwb3J0DQotLS0NCg0KYGBge3IgbG9hZC1wYWNrYWdlcywgbWVzc2FnZT1GQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShvcGVuaW50cm8pDQpkb3dubG9hZC5maWxlKCJodHRwOi8vd3d3Lm9wZW5pbnRyby5vcmcvc3RhdC9kYXRhL21sYjExLlJEYXRhIiwgZGVzdGZpbGUgPSAibWxiMTEuUkRhdGEiKQ0KbG9hZCgibWxiMTEuUkRhdGEiKQ0KYGBgDQoNCiMjIyBFeGVyY2lzZSAxDQoNCkkgd291bGQgdXNlIGEgc2NhdHRlcnBsb3QgdG8gZGlzcGxheSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcnVucyBhbmQgYW5vdGhlcg0KbnVtZXJpY2FsIHZhcmlhYmxlLiBUaGUgZnVuY3Rpb24gZm9yIHRoaXMgaW4gUiBpcyAicGxvdCh4LHkpIi4gVGhlIHJlbGF0aW9uc2hpcA0KbG9va3MgcmVsYXRpdmVseSBsaW5lYXIsIGFuZCB0aGUgY29ycmVsYXRpb24gY29lZmZpY2llbnQgaW5kaWNhdGVzIHRoZSBzYW1lLCBzbw0KSSB3b3VsZCBmZWVsIGNvbWZvcnRhYmxlIHVzaW5nIGEgbGluZWFyIG1vZGVsIHRvIHByZWRpY3QgcnVucyBnaXZlbiBhbiBhZGVxdWF0ZQ0KbWFyZ2luIG9mIGVycm9yLg0KDQpgYGB7ciBjb2RlLWNodW5rLTF9DQpjb3IobWxiMTEkcnVucywgbWxiMTEkYXRfYmF0cykNCnBsb3QobWxiMTEkYXRfYmF0cywgbWxiMTEkcnVucykNCmBgYA0KDQojIyMgRXhlcmNpc2UgMiBhbmQgMw0KDQpGb3JtOiBMaW5lYXIgIA0KRGlyZWN0aW9uOiBQb3NpdGl2ZSAgDQpTdHJlbmd0aDogTW9kZXJhdGUgIA0KDQpTdW0gb2YgU3F1YXJlczogMTIzNzIxLjkNCg0KYGBge3IgY29kZS1jaHVuay0yKzN9DQpwbG90X3NzKHggPSBtbGIxMSRhdF9iYXRzLCB5ID0gbWxiMTEkcnVucywgc2hvd1NxdWFyZXMgPSBUUlVFKQ0KbTEgPC0gbG0ocnVucyB+IGF0X2JhdHMsIGRhdGEgPSBtbGIxMSkNCnN1bW1hcnkobTEpDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDQNCg0KZXF1YXRpb246IHlfaGF0ID0gNDE1LjIzOSArIDEuODM1KmhvbWVydW5zICANCg0KVGhlIHNsb3BlIHRlbGxzIHVzIHRoYXQgaG9tZXJ1bnMgYW5kIHJ1bnMgYXJlIHBvc2l0aXZlbHkgY29ycmVsYXRlZC4gSSBkb24ndA0KdW5kZXJzdGFuZCBiYXNlYmFsbCBzbyBJIGNhbid0IGludGVycHJldCB3aGF0IGV4YWN0bHkgdGhpcyBtZWFucyBsb2wuIE1heWJlIGl0cw0KanVzdCBzYXlpbmcgdGhhdCB0aGUgbWVhc3VyZXMgb2Ygc3VjY2VzcyBvZiB0aGUgdGVhbXMgYXJlIHJlbGF0ZWQgZGlyZWN0bHk/DQoNCmBgYHtyIGNvZGUtY2h1bmstNH0NCnBsb3Rfc3MoeCA9IG1sYjExJGhvbWVydW5zLCB5ID0gbWxiMTEkcnVucywgc2hvd1NxdWFyZXMgPSBUUlVFKQ0KbTIgPC0gbG0ocnVucyB+IGhvbWVydW5zLCBkYXRhID0gbWxiMTEpDQpgYGANCg0KIyMjIEV4ZXJjaXNlIDUNCg0KVGhlIGRhdGEgc2hvd3MgNzEzIHJ1bnMgYXQgNTU3OSBhdC1iYXRzLCBidXQgdGhlIG1vZGVsIGNvdWxkIHByZWRpY3QgaXQgdG8gYmUNCmhpZ2hlciBieSByb3VnaGx5IDE0LjY4NiBydW5zIHRoYW4gaXQgbWF5IGFjdHVhbGx5IGJlLg0KDQpgYGB7ciBjb2RlLWNodW5rLTV9DQpwbG90KG1sYjExJHJ1bnMgfiBtbGIxMSRhdF9iYXRzKQ0KYWJsaW5lKG0xKQ0KDQo3MTMgLSAoLTI3ODkuMjQyOSswLjYzMDUqNTU3OCkNCmBgYA0KDQojIyMgRXhlcmNpc2UgNg0KDQpUaGVyZSBhcHBlYXJzIHRvIGJlIG5vIHBhdHRlcm4gaW4gdGhlIHBsb3QsIGFuZCB0aGUgY29ycmVsYXRpb24gY29lZmZpY2llbnQNCmNvbmZpcm1zIHRoaXMuIFlvdSBjb3VsZCB1c2UgYSBsaW5lYXIgbW9kZWwgd2l0aCBzbG9wZSB6ZXJvIHRvIG1vZGVsIHRoZQ0KcmVsYXRpb25zaGlwIGJ1dCB0aGF0IHdvdWxkbid0IG1lYW4gbXVjaC4NCg0KYGBge3IgY29kZS1jaHVuay02fQ0KcGxvdChtMSRyZXNpZHVhbHMgfiBtbGIxMSRhdF9iYXRzKQ0KYWJsaW5lKGggPSAwLCBsdHkgPSAzKSAgIyBhZGRzIGEgaG9yaXpvbnRhbCBkYXNoZWQgbGluZSBhdCB5ID0gMA0KDQpjb3IobTEkcmVzaWR1YWxzLCBtbGIxMSRhdF9iYXRzKQ0KaGlzdChtMSRyZXNpZHVhbHMpDQpzaGFwaXJvLnRlc3QobTEkcmVzaWR1YWxzKQ0KYGBgDQoNCiMjIyBFeGVyY2lzZSA3DQoNClllcywgaXQgZG9lcyBhbmQgdGhpcyBpcyBldmlkZW50IGZyb20gdGhlIHAtdmFsdWUgb2YgMC4zMzcgZnJvbSB0aGUgU2hhcGlyby1XaWxrcw0KdGVzdC4NCg0KIyMjIEV4ZXJjaXNlIDgNCg0KVGhlIGRhdGEgZG9lcyBub3QgYXBwZWFyIHRvIGNsdXN0ZXIsIGF0IGxlYXN0IHZpc3VhbGx5LCBzbyBJIGZlZWwgY29tZm9ydGFibGUNCnNheWluZyB0aGF0IGl0IGlzIGNvbnN0YW50bHkgdmFyaWFibGUuDQoNCiMjIyBPbiBZb3VyIE93bg0KDQpBdCBhIGdsYW5jZSB0aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBzb21lIHNvcnQgb2YgbGluZWFyIHJlbGF0aW9uc2hpcCB0byBtZS4NClRoZSByZWxhdGlvbnNoaXAgaXMgaW52ZXJzZSBjb21wYXJlZCB0byB0aGF0IG9mIHJ1bnMgYW5kIGF0X2JhdHMgKHRoZXJlIGlzIGEgDQpuZWdhdGl2ZSBjb3JyZWxhdGlvbikuIFRoZSBSXjIgdmFsdWUgaXMgc21hbGxlciwgYXQgMTMuOTclIG9mIHRoZSB2YXJpYWJpbGl0eQ0Kb2YgcnVucyBiZWluZyBleHBsYWluZWQgYnkgc3RyaWtlb3V0cyAoYXMgY29tcGFyZWQgdG8gMzcuMyUpLiBNeSB2YXJpYWJsZSBkb2VzDQpub3Qgc2VlbSB0byBwcmVkaWN0IHJ1bnMgYmV0dGVyIHRoYW4gYXRfYmF0cyBiZWNhdXNlIGJvdGggdGhlIFJeMiBhbmQgY29ycmVsYXRpb24NCmNvZWZmaWNpZW50IGFyZSBsb3dlci5UaGUgdmFyaWFibGUgYmF0X2F2ZyBhcHBlYXJzIHRvIHByZWRpY3QgcnVucyB0aGUgYmVzdCB3aXRoDQphIGNvcnJlbGF0aW9uIGNvZWZmaWNpZW50IG9mIDAuODAxIChvdXQgb2YgdGhlIHRyYWRpdGlvbmFsIHZhcmlhYmxlcykuIE91dCBvZg0KdGhlIG5ldyB2YXJpYWJsZXMsIG5ld19vYnMgc2VlbXMgdG8gcHJlZGljdCBydW5zIHRoZSBiZXN0LCB3aXRoIGEgY29ycmVsYXRpb24NCmNvZWZmaWNpZW50IG9mIDAuOTY3LCB0aGUgYmVzdCBvZiBhbGwgdGhlIHZhcmlhYmxlcy4gVGhlIGNvbmRpdGlvbnMgb2YgY29uc3RhbnQNCnZhcmlhYmlsaXR5IGFuZCBub3JtYWwgZGlzdHJpYnV0aW9uIG9mIHJlc2lkdWFscyBhcHBlYXIgdG8gYmUgbWV0IGJhc2VkIG9uIHRoZQ0Kc2NhdHRlcnBsb3QgYW5kIHNoYXBpcm8td2lsa3MgdGVzdCBvZiB0aGUgcmVzaWR1YWxzIG9mIG1vZGVsIDQgd2hpY2ggdXNlcw0KbmV3X29icyBhcyBhIHByZWRpY3RvciBvZiBydW5zLCBhbmQgdGhlcmVmb3JlIEkgYmVsaWV2ZSB0aGF0IHRoaXMgaXMgdGhlIG1vc3QNCnJlbGlhYmxlIGxpbmVhciBtb2RlbCBmb3IgcnVucyBpbiB0aGUgZGF0YXNldC4NCg0KYGBge3IgY29kZS1jaHVuay1PWU99DQpjb3IobWxiMTEkcnVucywgbWxiMTEkc3RyaWtlb3V0cykNCnBsb3Rfc3MoeCA9IG1sYjExJHN0cmlrZW91dHMsIHkgPSBtbGIxMSRydW5zLCBzaG93U3F1YXJlcyA9IFRSVUUpDQptMyA8LSBsbShydW5zIH4gc3RyaWtlb3V0cywgZGF0YSA9IG1sYjExKQ0Kc3VtbWFyeShtMykNCg0KcGxvdChtbGIxMSRydW5zIH4gbWxiMTEkc3RyaWtlb3V0cykNCmFibGluZShtMykNCg0KcGxvdChtMyRyZXNpZHVhbHMgfiBtbGIxMSRzdHJpa2VvdXRzKQ0KYWJsaW5lKGggPSAwLCBsdHkgPSAzKSAgIyBhZGRzIGEgaG9yaXpvbnRhbCBkYXNoZWQgbGluZSBhdCB5ID0gMA0KY29yKG0zJHJlc2lkdWFscywgbWxiMTEkYXRfYmF0cykNCmhpc3QobTMkcmVzaWR1YWxzKQ0Kc2hhcGlyby50ZXN0KG0zJHJlc2lkdWFscykNCg0KY29yKG1sYjExJHJ1bnMsIG1sYjExJGhpdHMpDQpjb3IobWxiMTEkcnVucywgbWxiMTEkYmF0X2F2ZykNCmNvcihtbGIxMSRydW5zLCBtbGIxMSRzdG9sZW5fYmFzZXMpDQpjb3IobWxiMTEkcnVucywgbWxiMTEkd2lucykNCmNvcihtbGIxMSRydW5zLCBtbGIxMSRuZXdfb25iYXNlKQ0KY29yKG1sYjExJHJ1bnMsIG1sYjExJG5ld19zbHVnKQ0KY29yKG1sYjExJHJ1bnMsIG1sYjExJG5ld19vYnMpDQoNCnBsb3Rfc3MoeCA9IG1sYjExJG5ld19vYnMsIHkgPSBtbGIxMSRydW5zLCBzaG93U3F1YXJlcyA9IFRSVUUpDQptNCA8LSBsbShydW5zIH4gbmV3X29icywgZGF0YSA9IG1sYjExKQ0Kc3VtbWFyeShtNCkNCg0KcGxvdChtbGIxMSRydW5zIH4gbWxiMTEkbmV3X29icykNCmFibGluZShtNCkNCg0KcGxvdChtNCRyZXNpZHVhbHMgfiBtbGIxMSRuZXdfb2JzKQ0KYWJsaW5lKGggPSAwLCBsdHkgPSAzKSAgIyBhZGRzIGEgaG9yaXpvbnRhbCBkYXNoZWQgbGluZSBhdCB5ID0gMA0KY29yKG00JHJlc2lkdWFscywgbWxiMTEkYXRfYmF0cykNCmhpc3QobTQkcmVzaWR1YWxzKQ0Kc2hhcGlyby50ZXN0KG00JHJlc2lkdWFscykNCmBgYA0KDQo=