Preliminaries
library(mosaic)
library(broom)
library(tidyverse)
library(openintro)
library(Stat2Data)
package ‘Stat2Data’ was built under R version 3.5.2
data("Perch")
Introduction
Please read example 3.10 on page 118 of the textbook for the description of the dataset Perch
.
Explore data
Again, we use the following code ensure we get the right version of Perch
:
Perch
str(Perch)
'data.frame': 56 obs. of 4 variables:
$ Obs : int 104 105 106 107 108 109 110 111 112 113 ...
$ Weight: num 5.9 32 40 51.5 70 100 78 80 85 85 ...
$ Length: num 8.8 14.7 16 17.2 18.5 19.2 19.4 20.2 20.8 21 ...
$ Width : num 1.4 2 2.4 2.6 2.9 3.3 3.1 3.1 3 2.8 ...
Individual Relationship
Draw a scatterplot between Weight and Length:
ggplot(Perch, aes(y = Weight, x = Length)) +
geom_point()

Draw a scatterplot between Weight and Width:
ggplot(Perch, aes(y = Weight, x = Width)) +
geom_point()

The interaction model
Build a multiple linear regression model WITHOUT the interation term between length and width:
Perch_lm <- lm(Weight ~ Length + Width, data = Perch)
Perch_lm
Call:
lm(formula = Weight ~ Length + Width, data = Perch)
Coefficients:
(Intercept) Length Width
-578.76 14.31 113.50
Build a multiple linear regression model WITH the interation term between length and width:
#Perch2_lm <- lm(Weight ~ Length + Width + Length:Width, data = Perch)
Perch2_lm <- lm(Weight ~ Length * Width, data = Perch)
Perch2_lm
Call:
lm(formula = Weight ~ Length * Width, data = Perch)
Coefficients:
(Intercept) Length Width Length:Width
113.935 -3.483 -94.631 5.241
Please interpret all coefficients in this interaction model:
tidy
tidy(Perch_lm)
tidy(Perch2_lm)
ASSESS
- Please calculate R^2 in both two models and then answer if the interaction model is improved to explain the variability of the data:
# Use glance to calculate R^2 for the model without the interaction term.
Perch_glance <- glance(Perch_lm)
Perch_glance
Perch2_glance <- glance(Perch2_lm)
# Use glance to calculate R^2 for the model with the interaction term.
Perch2_glance
- Please draw two residuals plots between predicted value and standardized residuals in both two models and then compare these two residual plots :
# Use augment to residuals for the model without the interaction term.
Perch_aug <- augment(Perch_lm)
Perch_aug
# Draw residual plot for the model without the interaction term
ggplot(Perch_aug, aes(y = .std.resid, x = .fitted )) +
geom_point() +
geom_hline(yintercept = 0)

Perch2_aug <- augment(Perch2_lm)
# Use augment to residuals for the model with the interaction term.
Perch2_aug
# Draw residual plot for the model with the interaction term
ggplot(Perch2_aug, aes(y = .std.resid, x = .fitted )) +
geom_point() +
geom_hline(yintercept = 0)

LS0tCnRpdGxlOiAiREFUQSAzNTAtIE11bHRpcGxlIFJlZ3Jlc3Npb24gLSBJbnRlcmF0aW9uIgpvdXRwdXQ6CiAgICBodG1sX25vdGVib29rOgogICAgICAgIHRvYzogeWVzCiAgICAgICAgdG9jX2Zsb2F0OiB5ZXMKLS0tCgoKIyMgUHJlbGltaW5hcmllcwoKYGBge3IsIG1lc3NhZ2UgPSBGQUxTRX0KbGlicmFyeShtb3NhaWMpCmxpYnJhcnkoYnJvb20pCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KG9wZW5pbnRybykKbGlicmFyeShTdGF0MkRhdGEpCmRhdGEoIlBlcmNoIikKYGBgCgoKIyMgSW50cm9kdWN0aW9uCgpQbGVhc2UgcmVhZCBleGFtcGxlIDMuMTAgb24gcGFnZSAxMTggb2YgdGhlIHRleHRib29rIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGRhdGFzZXQgYFBlcmNoYC4KCgojIyBFeHBsb3JlIGRhdGEKCkFnYWluLCB3ZSB1c2UgdGhlIGZvbGxvd2luZyBjb2RlIGVuc3VyZSB3ZSBnZXQgdGhlIHJpZ2h0IHZlcnNpb24gb2YgYFBlcmNoYDoKCmBgYHtyfQpQZXJjaApgYGAKCmBgYHtyfQpzdHIoUGVyY2gpCmBgYAoKIyMgSW5kaXZpZHVhbCBSZWxhdGlvbnNoaXAKCkRyYXcgYSBzY2F0dGVycGxvdCBiZXR3ZWVuIFdlaWdodCBhbmQgTGVuZ3RoOgoKYGBge3J9CmdncGxvdChQZXJjaCwgYWVzKHkgPSBXZWlnaHQsIHggPSBMZW5ndGgpKSArCiAgICBnZW9tX3BvaW50KCkgCmBgYAoKRHJhdyBhIHNjYXR0ZXJwbG90IGJldHdlZW4gV2VpZ2h0IGFuZCBXaWR0aDoKCmBgYHtyfQpnZ3Bsb3QoUGVyY2gsIGFlcyh5ID0gV2VpZ2h0LCB4ID0gV2lkdGgpKSArCiAgICBnZW9tX3BvaW50KCkgCmBgYAoKCiMjIFRoZSBpbnRlcmFjdGlvbiBtb2RlbAoKQnVpbGQgYSBtdWx0aXBsZSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCBXSVRIT1VUIHRoZSBpbnRlcmF0aW9uIHRlcm0gYmV0d2VlbiBsZW5ndGggYW5kIHdpZHRoOgoKYGBge3J9ClBlcmNoX2xtIDwtIGxtKFdlaWdodCB+IExlbmd0aCArIFdpZHRoLCBkYXRhID0gUGVyY2gpClBlcmNoX2xtCmBgYAoKCkJ1aWxkIGEgbXVsdGlwbGUgbGluZWFyIHJlZ3Jlc3Npb24gbW9kZWwgV0lUSCB0aGUgaW50ZXJhdGlvbiB0ZXJtIGJldHdlZW4gbGVuZ3RoIGFuZCB3aWR0aDoKCmBgYHtyfQojUGVyY2gyX2xtIDwtIGxtKFdlaWdodCB+IExlbmd0aCArIFdpZHRoICsgTGVuZ3RoOldpZHRoLCBkYXRhID0gUGVyY2gpClBlcmNoMl9sbSA8LSBsbShXZWlnaHQgfiBMZW5ndGggKiBXaWR0aCwgZGF0YSA9IFBlcmNoKQpQZXJjaDJfbG0KYGBgCgoKUGxlYXNlIGludGVycHJldCBhbGwgY29lZmZpY2llbnRzIGluIHRoaXMgaW50ZXJhY3Rpb24gbW9kZWw6Cgo8ZGl2IGNsYXNzID0gImFuc3dlciI+Cgo8L2Rpdj4KCnRpZHkKCmBgYHtyfQp0aWR5KFBlcmNoX2xtKQpgYGAKCmBgYHtyfQp0aWR5KFBlcmNoMl9sbSkKYGBgCgojIyBBU1NFU1MKCgooYSkgUGxlYXNlIGNhbGN1bGF0ZSBSXjIgaW4gYm90aCB0d28gbW9kZWxzIGFuZCB0aGVuIGFuc3dlciBpZiB0aGUgaW50ZXJhY3Rpb24gbW9kZWwgaXMgaW1wcm92ZWQgdG8gZXhwbGFpbiB0aGUgdmFyaWFiaWxpdHkgb2YgdGhlIGRhdGE6CgpgYGB7cn0KIyBVc2UgZ2xhbmNlIHRvIGNhbGN1bGF0ZSBSXjIgZm9yIHRoZSBtb2RlbCB3aXRob3V0IHRoZSBpbnRlcmFjdGlvbiB0ZXJtLgpQZXJjaF9nbGFuY2UgPC0gZ2xhbmNlKFBlcmNoX2xtKQpQZXJjaF9nbGFuY2UKYGBgCgpgYGB7cn0KUGVyY2gyX2dsYW5jZSA8LSBnbGFuY2UoUGVyY2gyX2xtKQojIFVzZSBnbGFuY2UgdG8gY2FsY3VsYXRlIFJeMiBmb3IgdGhlIG1vZGVsIHdpdGggdGhlIGludGVyYWN0aW9uIHRlcm0uClBlcmNoMl9nbGFuY2UKYGBgCgo8ZGl2IGNsYXNzID0gImFuc3dlciI+Cgo8L2Rpdj4KCihiKSBQbGVhc2UgZHJhdyB0d28gcmVzaWR1YWxzIHBsb3RzIGJldHdlZW4gcHJlZGljdGVkIHZhbHVlIGFuZCBzdGFuZGFyZGl6ZWQgcmVzaWR1YWxzIGluIGJvdGggdHdvIG1vZGVscyBhbmQgdGhlbiBjb21wYXJlIHRoZXNlIHR3byByZXNpZHVhbCBwbG90cyA6CgpgYGB7cn0KIyBVc2UgYXVnbWVudCB0byByZXNpZHVhbHMgZm9yIHRoZSBtb2RlbCB3aXRob3V0IHRoZSBpbnRlcmFjdGlvbiB0ZXJtLgpQZXJjaF9hdWcgPC0gYXVnbWVudChQZXJjaF9sbSkKUGVyY2hfYXVnCmBgYAoKYGBge3J9CiMgRHJhdyByZXNpZHVhbCBwbG90IGZvciB0aGUgbW9kZWwgd2l0aG91dCB0aGUgaW50ZXJhY3Rpb24gdGVybQpnZ3Bsb3QoUGVyY2hfYXVnLCBhZXMoeSA9IC5zdGQucmVzaWQsIHggPSAuZml0dGVkICkpICsgCiAgZ2VvbV9wb2ludCgpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwKQpgYGAKCmBgYHtyfQpQZXJjaDJfYXVnIDwtIGF1Z21lbnQoUGVyY2gyX2xtKQojIFVzZSBhdWdtZW50IHRvIHJlc2lkdWFscyBmb3IgdGhlIG1vZGVsIHdpdGggdGhlIGludGVyYWN0aW9uIHRlcm0uClBlcmNoMl9hdWcKYGBgCgpgYGB7cn0KIyBEcmF3IHJlc2lkdWFsIHBsb3QgZm9yIHRoZSBtb2RlbCB3aXRoIHRoZSBpbnRlcmFjdGlvbiB0ZXJtCmdncGxvdChQZXJjaDJfYXVnLCBhZXMoeSA9IC5zdGQucmVzaWQsIHggPSAuZml0dGVkICkpICsgCiAgZ2VvbV9wb2ludCgpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwKQpgYGAKCjxkaXYgY2xhc3MgPSAiYW5zd2VyIj4KCjwvZGl2Pgo=