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

  1. 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
  1. 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=