# Clear workspace
rm(list=ls()) 
Warning message:
running command '/usr/bin/otool -L /Library/Frameworks/R.framework/Versions/3.3/Resources/library/pbdZMQ/libs/pbdZMQ.so' had status 1 
# interpreting interaction coefficients from lm first case two categorical variables
set.seed(12)
f1 <- gl(n = 2, k = 30, labels = c("Low", "High"))
f2 <- as.factor(rep(c("A", "B", "C"), times = 20))
modmat <- model.matrix(~f1 * f2, data.frame(f1 = f1, f2 = f2))
coeff <- c(1, 3, -2, -4, 1, -1.2)
y <- rnorm(n = 60, mean = modmat %*% coeff, sd = 0.1)
dat <- data.frame(y = y, f1 = f1, f2 = f2)
summary(lm(y ~ f1 * f2))

Call:
lm(formula = y ~ f1 * f2)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.199479 -0.063752 -0.001089  0.058162  0.222229 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.97849    0.02865   34.15   <2e-16 ***
f1High       3.00306    0.04052   74.11   <2e-16 ***
f2B         -1.97878    0.04052  -48.83   <2e-16 ***
f2C         -4.00206    0.04052  -98.77   <2e-16 ***
f1High:f2B   0.98924    0.05731   17.26   <2e-16 ***
f1High:f2C  -1.16620    0.05731  -20.35   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.09061 on 54 degrees of freedom
Multiple R-squared:  0.9988,    Adjusted R-squared:  0.9987 
F-statistic:  8785 on 5 and 54 DF,  p-value: < 2.2e-16
# second case one categorical and one continuous variable
x <- runif(50, 0, 10)
f1 <- gl(n = 2, k = 25, labels = c("Low", "High"))
modmat <- model.matrix(~x * f1, data.frame(f1 = f1, x = x))
coeff <- c(1, 3, -2, 1.5)
y <- rnorm(n = 50, mean = modmat %*% coeff, sd = 0.5)
dat <- data.frame(y = y, f1 = f1, x = x)
summary(lm(y ~ x * f1))

Call:
lm(formula = y ~ x * f1)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.9222 -0.2663 -0.0347  0.3586  1.0077 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.17129    0.26207   4.469 5.09e-05 ***
x            2.98763    0.03772  79.196  < 2e-16 ***
f1High      -2.09249    0.33376  -6.270 1.14e-07 ***
x:f1High     1.49238    0.05394  27.670  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4757 on 46 degrees of freedom
Multiple R-squared:  0.9977,    Adjusted R-squared:  0.9975 
F-statistic:  6593 on 3 and 46 DF,  p-value: < 2.2e-16

# third case interaction between two continuous variables
x1 <- runif(50, 0, 10)
x2 <- rnorm(50, 10, 3)
modmat <- model.matrix(~x1 * x2, data.frame(x1 = x1, x2 = x2))
coeff <- c(1, 2, -1, 1.5)
y <- rnorm(50, mean = modmat %*% coeff, sd = 0.5)
dat <- data.frame(y = y, x1 = x1, x2 = x2)
summary(lm(y ~ x1 * x2))

################################################################################
################################################################################
# Clear workspace
rm(list=ls()) 
#read data into variable
datavar <- read.csv("/Users/oba2311/Desktop/Minerva/Junior/SS154/6/nba_2017_nba_players_with_salary.csv")
#attach data variable
attach(datavar)
The following objects are masked from datavar (pos = 3):

    AGE, AST, BLK, DRB, DRPM, eFG., FG, FG., FGA, FT, FT., FTA, GP, MP, MPG, ORB, ORPM,
    PACE, PF, PIE, PLAYER, POINTS, POSITION, Rk, RPM, SALARY_MILLIONS, STL, TEAM, TOV,
    TRB, W, WINS_RPM, X, X2P, X2P., X2PA, X3P, X3P., X3PA
#display all data
head(datavar)
#create the interaction variable
#step 1: center the input variables
age_c <- AGE - mean(AGE)
fg_c <- FG - mean(FG)
#step 2: multiply the input variables
fg_age_i <- age_c * fg_c
#create the interaction model using lm(FORMULA, DATAVAR)
interactionModel <- lm(SALARY_MILLIONS ~ age_c+fg_c+fg_age_i, datavar)
#display summary information about the model
summary(interactionModel)

Call:
lm(formula = SALARY_MILLIONS ~ age_c + fg_c + fg_age_i, data = datavar)

Residuals:
     Min       1Q   Median       3Q      Max 
-12.1657  -2.4803  -0.5117   1.9955  16.8275 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  7.23666    0.22998  31.467  < 2e-16 ***
age_c        0.58610    0.05466  10.723  < 2e-16 ***
fg_c         1.92038    0.10525  18.246  < 2e-16 ***
fg_age_i     0.19574    0.02626   7.454 7.68e-13 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.251 on 338 degrees of freedom
Multiple R-squared:  0.5782,    Adjusted R-squared:  0.5745 
F-statistic: 154.5 on 3 and 338 DF,  p-value: < 2.2e-16
LS0tCnRpdGxlOiAiNi4yIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCmBgYHtyfQojIENsZWFyIHdvcmtzcGFjZQpybShsaXN0PWxzKCkpIAoKIyBpbnRlcnByZXRpbmcgaW50ZXJhY3Rpb24gY29lZmZpY2llbnRzIGZyb20gbG0gZmlyc3QgY2FzZSB0d28gY2F0ZWdvcmljYWwgdmFyaWFibGVzCnNldC5zZWVkKDEyKQpmMSA8LSBnbChuID0gMiwgayA9IDMwLCBsYWJlbHMgPSBjKCJMb3ciLCAiSGlnaCIpKQpmMiA8LSBhcy5mYWN0b3IocmVwKGMoIkEiLCAiQiIsICJDIiksIHRpbWVzID0gMjApKQptb2RtYXQgPC0gbW9kZWwubWF0cml4KH5mMSAqIGYyLCBkYXRhLmZyYW1lKGYxID0gZjEsIGYyID0gZjIpKQpjb2VmZiA8LSBjKDEsIDMsIC0yLCAtNCwgMSwgLTEuMikKeSA8LSBybm9ybShuID0gNjAsIG1lYW4gPSBtb2RtYXQgJSolIGNvZWZmLCBzZCA9IDAuMSkKZGF0IDwtIGRhdGEuZnJhbWUoeSA9IHksIGYxID0gZjEsIGYyID0gZjIpCnN1bW1hcnkobG0oeSB+IGYxICogZjIpKQpgYGAKCmBgYHtyfQojIHNlY29uZCBjYXNlIG9uZSBjYXRlZ29yaWNhbCBhbmQgb25lIGNvbnRpbnVvdXMgdmFyaWFibGUKeCA8LSBydW5pZig1MCwgMCwgMTApCmYxIDwtIGdsKG4gPSAyLCBrID0gMjUsIGxhYmVscyA9IGMoIkxvdyIsICJIaWdoIikpCm1vZG1hdCA8LSBtb2RlbC5tYXRyaXgofnggKiBmMSwgZGF0YS5mcmFtZShmMSA9IGYxLCB4ID0geCkpCmNvZWZmIDwtIGMoMSwgMywgLTIsIDEuNSkKeSA8LSBybm9ybShuID0gNTAsIG1lYW4gPSBtb2RtYXQgJSolIGNvZWZmLCBzZCA9IDAuNSkKZGF0IDwtIGRhdGEuZnJhbWUoeSA9IHksIGYxID0gZjEsIHggPSB4KQpzdW1tYXJ5KGxtKHkgfiB4ICogZjEpKQpgYGAKCgpgYGB7cn0KCiMgdGhpcmQgY2FzZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHR3byBjb250aW51b3VzIHZhcmlhYmxlcwp4MSA8LSBydW5pZig1MCwgMCwgMTApCngyIDwtIHJub3JtKDUwLCAxMCwgMykKbW9kbWF0IDwtIG1vZGVsLm1hdHJpeCh+eDEgKiB4MiwgZGF0YS5mcmFtZSh4MSA9IHgxLCB4MiA9IHgyKSkKY29lZmYgPC0gYygxLCAyLCAtMSwgMS41KQp5IDwtIHJub3JtKDUwLCBtZWFuID0gbW9kbWF0ICUqJSBjb2VmZiwgc2QgPSAwLjUpCmRhdCA8LSBkYXRhLmZyYW1lKHkgPSB5LCB4MSA9IHgxLCB4MiA9IHgyKQpzdW1tYXJ5KGxtKHkgfiB4MSAqIHgyKSkKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmBgYAoKYGBge3J9CgojIENsZWFyIHdvcmtzcGFjZQpybShsaXN0PWxzKCkpIAoKI3JlYWQgZGF0YSBpbnRvIHZhcmlhYmxlCmRhdGF2YXIgPC0gcmVhZC5jc3YoIi9Vc2Vycy9vYmEyMzExL0Rlc2t0b3AvTWluZXJ2YS9KdW5pb3IvU1MxNTQvNi9uYmFfMjAxN19uYmFfcGxheWVyc193aXRoX3NhbGFyeS5jc3YiKQoKI2F0dGFjaCBkYXRhIHZhcmlhYmxlCmF0dGFjaChkYXRhdmFyKQoKI2Rpc3BsYXkgYWxsIGRhdGEKaGVhZChkYXRhdmFyKQpgYGAKCgpgYGB7cn0KCiNjcmVhdGUgdGhlIGludGVyYWN0aW9uIHZhcmlhYmxlCiNzdGVwIDE6IGNlbnRlciB0aGUgaW5wdXQgdmFyaWFibGVzCmFnZV9jIDwtIEFHRSAtIG1lYW4oQUdFKQpmZ19jIDwtIEZHIC0gbWVhbihGRykKI3N0ZXAgMjogbXVsdGlwbHkgdGhlIGlucHV0IHZhcmlhYmxlcwpmZ19hZ2VfaSA8LSBhZ2VfYyAqIGZnX2MKCiNjcmVhdGUgdGhlIGludGVyYWN0aW9uIG1vZGVsIHVzaW5nIGxtKEZPUk1VTEEsIERBVEFWQVIpCmludGVyYWN0aW9uTW9kZWwgPC0gbG0oU0FMQVJZX01JTExJT05TIH4gYWdlX2MrZmdfYytmZ19hZ2VfaSwgZGF0YXZhcikKI2Rpc3BsYXkgc3VtbWFyeSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbW9kZWwKc3VtbWFyeShpbnRlcmFjdGlvbk1vZGVsKQpgYGAKCg==