Homework 4

Author

Nick Boonstra

Published

November 16, 2022

Code
library(tidyverse)
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.3.6      ✔ purrr   0.3.5 
✔ tibble  3.1.8      ✔ dplyr   1.0.10
✔ tidyr   1.2.1      ✔ stringr 1.4.1 
✔ readr   2.1.3      ✔ forcats 0.5.2 
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
Code
library(alr4)
Loading required package: car
Loading required package: carData

Attaching package: 'car'

The following object is masked from 'package:dplyr':

    recode

The following object is masked from 'package:purrr':

    some

Loading required package: effects
lattice theme set by effectsTheme()
See ?effectsTheme for details.
Code
library(smss)
Warning: package 'smss' was built under R version 4.2.2

Question 1

The prediction equation for selling price of homes in Jacksonville, FL (\(y\)) is given as:

\(\hat{y} = -10,536 + 53.8x_1 + 2.84x_2\)

where \(x_1\) is the size of the home and \(x_2\) is the size of the lot (both in square feet).

Part A

Code
q1_a_price <- 145000
q1_a_predict <- (53.8*1240) + (2.84*18000)
print(c("Predicted price = ",q1_a_predict))
[1] "Predicted price = " "117832"            
Code
residual <- q1_a_price - q1_a_predict
print(c("Residual = ",residual))
[1] "Residual = " "27168"      

According to the model, predicted selling price was roughly 118000 USD. The residual of roughly 28000 means that the model underpredicted the selling price by roughly 28000 USD.

Part B

For fixed lot size, the house price is expected to increase by 53.8 USD as the square footage of the house itself increases in 1. This is because the coefficient for the home size square footage is 53.8.

Part C

Lot size would need to increase by 18.943662 to have the same impact as a one-square-foot increase in home size.

Question 2

Code
data(salary)
salary
    degree  rank    sex year ysdeg salary
1  Masters  Prof   Male   25    35  36350
2  Masters  Prof   Male   13    22  35350
3  Masters  Prof   Male   10    23  28200
4  Masters  Prof Female    7    27  26775
5      PhD  Prof   Male   19    30  33696
6  Masters  Prof   Male   16    21  28516
7      PhD  Prof Female    0    32  24900
8  Masters  Prof   Male   16    18  31909
9      PhD  Prof   Male   13    30  31850
10     PhD  Prof   Male   13    31  32850
11 Masters  Prof   Male   12    22  27025
12 Masters Assoc   Male   15    19  24750
13 Masters  Prof   Male    9    17  28200
14     PhD Assoc   Male    9    27  23712
15 Masters  Prof   Male    9    24  25748
16 Masters  Prof   Male    7    15  29342
17 Masters  Prof   Male   13    20  31114
18     PhD Assoc   Male   11    14  24742
19     PhD Assoc   Male   10    15  22906
20     PhD  Prof   Male    6    21  24450
21     PhD  Asst   Male   16    23  19175
22     PhD Assoc   Male    8    31  20525
23 Masters  Prof   Male    7    13  27959
24 Masters  Prof Female    8    24  38045
25 Masters Assoc   Male    9    12  24832
26 Masters  Prof   Male    5    18  25400
27 Masters Assoc   Male   11    14  24800
28 Masters  Prof Female    5    16  25500
29     PhD Assoc   Male    3     7  26182
30     PhD Assoc   Male    3    17  23725
31     PhD  Asst Female   10    15  21600
32     PhD Assoc   Male   11    31  23300
33     PhD  Asst   Male    9    14  23713
34     PhD Assoc Female    4    33  20690
35     PhD Assoc Female    6    29  22450
36 Masters Assoc   Male    1     9  20850
37 Masters  Asst Female    8    14  18304
38 Masters  Asst   Male    4     4  17095
39 Masters  Asst   Male    4     5  16700
40 Masters  Asst   Male    4     4  17600
41 Masters  Asst   Male    3     4  18075
42     PhD  Asst   Male    3    11  18000
43 Masters Assoc   Male    0     7  20999
44 Masters  Asst Female    3     3  17250
45 Masters  Asst   Male    2     3  16500
46 Masters  Asst   Male    2     1  16094
47 Masters  Asst Female    2     6  16150
48 Masters  Asst Female    2     2  15350
49 Masters  Asst   Male    1     1  16244
50 Masters  Asst Female    1     1  16686
51 Masters  Asst Female    1     1  15000
52 Masters  Asst Female    0     2  20300

Part A

Code
salary_men <- salary %>% 
  filter(sex == "Male")
salary_women <- salary %>% 
  filter(sex == "Female")

t.test(salary_men$salary,salary_women$salary)

    Welch Two Sample t-test

data:  salary_men$salary and salary_women$salary
t = 1.7744, df = 21.591, p-value = 0.09009
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -567.8539 7247.1471
sample estimates:
mean of x mean of y 
 24696.79  21357.14 

The findings of a two-sample Welch’s t-test comparing salary by sex are inconclusive; the difference in means is not significant at a 95% confidence level, but is significant at a 90% confidence level, suggesting that further investigation (i.e. multiple regression) could yield significant results.

Part B

Code
q2_lm <- lm(
  salary ~
    .,
  data = salary
)
summary(q2_lm)

Call:
lm(formula = salary ~ ., data = salary)

Residuals:
    Min      1Q  Median      3Q     Max 
-4045.2 -1094.7  -361.5   813.2  9193.1 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 15746.05     800.18  19.678  < 2e-16 ***
degreePhD    1388.61    1018.75   1.363    0.180    
rankAssoc    5292.36    1145.40   4.621 3.22e-05 ***
rankProf    11118.76    1351.77   8.225 1.62e-10 ***
sexFemale    1166.37     925.57   1.260    0.214    
year          476.31      94.91   5.018 8.65e-06 ***
ysdeg        -124.57      77.49  -1.608    0.115    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2398 on 45 degrees of freedom
Multiple R-squared:  0.855, Adjusted R-squared:  0.8357 
F-statistic: 44.24 on 6 and 45 DF,  p-value: < 2.2e-16

The 95% confidence interval for the coefficient of sexFemale is the range between -481.0138205 on the low end and 2813.7538205 on the high end. Because this range of values passes from negative to positive (i.e. crosses 0), we say that the result is insignificant at a 95% confidence level.

Part C

1.5746048^{4} – All other things being equal, a professor at this university could be expected to earn $15746.05. This coefficient is significant beyond a 99% confidence level.

1388.6133186 – A professor with a PhD would be expected to make $1,388.61 more than one with a Master’s degree. However, this coefficient is not significant at a 95% confidence level.

5292.3607713 – An Associate Professor would be expected to make $5292.36 more than an Assistant Professor. This coefficient is significant at a 95% confidence level.

1.1118764^{4} – A Full Professor would be expected to make $11118.76 more than an Assistant Professor. This coefficient is significant at a 95% confidence level.

1166.373101 – A female professor would be expected to make $1166.37 more than a male professor based on this model. However, the coefficient is not significant at a 95% confidence level. The direction of the sign, and the lack of significance, would both help to discredit the notion that female professors earn less than male professors at this university systemically.

476.3090151 – Each additional year of experience in one’s current rank would be expected to earn a professor an additional $476.31 per year. This coefficient is significant at a 95% confidence level.

-124.5743208 – A professor would be expected to earn $124.57 less per year based on each year since they earned their highest degree according to this model. However, this coefficient is not significant at a 95% confidence level, which is good, because this effect wouldn’t make much sense when considering the real-world meaning of the coefficient.

Part D

Code
salary$rank <- factor(salary$rank, levels = c("Prof","Asst","Assoc"))

summary(lm(
  salary ~
    .,
  data = salary
))

Call:
lm(formula = salary ~ ., data = salary)

Residuals:
    Min      1Q  Median      3Q     Max 
-4045.2 -1094.7  -361.5   813.2  9193.1 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  26864.81    1375.29  19.534  < 2e-16 ***
degreePhD     1388.61    1018.75   1.363    0.180    
rankAsst    -11118.76    1351.77  -8.225 1.62e-10 ***
rankAssoc    -5826.40    1012.93  -5.752 7.28e-07 ***
sexFemale     1166.37     925.57   1.260    0.214    
year           476.31      94.91   5.018 8.65e-06 ***
ysdeg         -124.57      77.49  -1.608    0.115    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2398 on 45 degrees of freedom
Multiple R-squared:  0.855, Adjusted R-squared:  0.8357 
F-statistic: 44.24 on 6 and 45 DF,  p-value: < 2.2e-16

Reordering the rank variable to put the “Prof” level first yields the above regression table. As in the first regression, Assistant Professors are here expected to make $11118.76 less per year than Full Professors. Associate Professors are expected to make $5826.40 less per year than Full Professors. Both of these coefficients are significant at a 95% confidence level.

Part E

Code
summary(lm(
  salary ~
    . - rank,
  data = salary
))

Call:
lm(formula = salary ~ . - rank, data = salary)

Residuals:
    Min      1Q  Median      3Q     Max 
-8146.9 -2186.9  -491.5  2279.1 11186.6 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 17183.57    1147.94  14.969  < 2e-16 ***
degreePhD   -3299.35    1302.52  -2.533 0.014704 *  
sexFemale   -1286.54    1313.09  -0.980 0.332209    
year          351.97     142.48   2.470 0.017185 *  
ysdeg         339.40      80.62   4.210 0.000114 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3744 on 47 degrees of freedom
Multiple R-squared:  0.6312,    Adjusted R-squared:  0.5998 
F-statistic: 20.11 on 4 and 47 DF,  p-value: 1.048e-09

With rank excluded, ysdeg becomes positive and significant. The coefficient for sexFemale is now negative, but is still not significant.

Part F

Code
salary_dean <- salary %>% 
  mutate(dean = case_when(
    ysdeg <= 15 ~ 1,
    T ~ 0
  ))

summary(lm(
  salary ~
    . - ysdeg,
  data = salary_dean
))

Call:
lm(formula = salary ~ . - ysdeg, data = salary_dean)

Residuals:
    Min      1Q  Median      3Q     Max 
-3403.3 -1387.0  -167.0   528.2  9233.8 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  24425.32    1107.52  22.054  < 2e-16 ***
degreePhD      818.93     797.48   1.027   0.3100    
rankAsst    -11096.95    1191.00  -9.317 4.54e-12 ***
rankAssoc    -6124.28    1028.58  -5.954 3.65e-07 ***
sexFemale      907.14     840.54   1.079   0.2862    
year           434.85      78.89   5.512 1.65e-06 ***
dean          2163.46    1072.04   2.018   0.0496 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2362 on 45 degrees of freedom
Multiple R-squared:  0.8594,    Adjusted R-squared:  0.8407 
F-statistic: 45.86 on 6 and 45 DF,  p-value: < 2.2e-16

Because dean is based on ysdeg, and because year and ysdeg measure overlapping lengths of time, I excluded ysdeg for this model. The results are similar to those above, most notably in the lack of significance for the coefficient of sexFemale.

Question 3

Code
data(house.selling.price)
house.selling.price
    case Taxes Beds Baths New  Price Size
1      1  3104    4     2   0 279900 2048
2      2  1173    2     1   0 146500  912
3      3  3076    4     2   0 237700 1654
4      4  1608    3     2   0 200000 2068
5      5  1454    3     3   0 159900 1477
6      6  2997    3     2   1 499900 3153
7      7  4054    3     2   0 265500 1355
8      8  3002    3     2   1 289900 2075
9      9  6627    5     4   0 587000 3990
10    10   320    3     2   0  70000 1160
11    11   630    3     2   0  64500 1220
12    12  1780    3     2   0 167000 1690
13    13  1630    3     2   0 114600 1380
14    14  1530    3     2   0 103000 1590
15    15   930    3     1   0 101000 1050
16    16   590    2     1   0  70000  770
17    17  1050    3     2   0  85000 1410
18    18    20    3     1   0  22500 1060
19    19   870    2     2   0  90000 1300
20    20  1320    3     2   0 133000 1500
21    21  1350    2     1   0  90500  820
22    22  5616    4     3   1 577500 3949
23    23   680    2     1   0 142500 1170
24    24  1840    3     2   0 160000 1500
25    25  3680    4     2   0 240000 2790
26    26  1660    3     1   0  87000 1030
27    27  1620    3     2   0 118600 1250
28    28  3100    3     2   0 140000 1760
29    29  2070    2     3   0 148000 1550
30    30   830    3     2   0  69000 1120
31    31  2260    4     2   0 176000 2000
32    32  1760    3     1   0  86500 1350
33    33  2750    3     2   1 180000 1840
34    34  2020    4     2   0 179000 2510
35    35  4900    3     3   1 338000 3110
36    36  1180    4     2   0 130000 1760
37    37  2150    3     2   0 163000 1710
38    38  1600    2     1   0 125000 1110
39    39  1970    3     2   0 100000 1360
40    40  2060    3     1   0 100000 1250
41    41  1980    3     1   0 100000 1250
42    42  1510    3     2   0 146500 1480
43    43  1710    3     2   0 144900 1520
44    44  1590    3     2   0 183000 2020
45    45  1230    3     2   0  69900 1010
46    46  1510    2     2   0  60000 1640
47    47  1450    2     2   0 127000  940
48    48   970    3     2   0  86000 1580
49    49   150    2     2   0  50000  860
50    50  1470    3     2   0 137000 1420
51    51  1850    3     2   0 121300 1270
52    52   820    2     1   0  81000  980
53    53  2050    4     2   0 188000 2300
54    54   710    3     2   0  85000 1430
55    55  1280    3     2   0 137000 1380
56    56  1360    3     2   0 145000 1240
57    57   830    3     2   0  69000 1120
58    58   800    3     2   0 109300 1120
59    59  1220    3     2   0 131500 1900
60    60  3360    4     3   0 200000 2430
61    61   210    3     2   0  81900 1080
62    62   380    2     1   0  91200 1350
63    63  1920    4     3   0 124500 1720
64    64  4350    3     3   0 225000 4050
65    65  1510    3     2   0 136500 1500
66    66  4154    3     3   0 381000 2581
67    67  1976    3     2   1 250000 2120
68    68  3605    3     3   1 354900 2745
69    69  1400    3     2   0 140000 1520
70    70   790    2     2   0  89900 1280
71    71  1210    3     2   0 137000 1620
72    72  1550    3     2   0 103000 1520
73    73  2800    3     2   0 183000 2030
74    74  2560    3     2   0 140000 1390
75    75  1390    4     2   0 160000 1880
76    76  5443    3     2   0 434000 2891
77    77  2850    2     1   0 130000 1340
78    78  2230    2     2   0 123000  940
79    79    20    2     1   0  21000  580
80    80  1510    4     2   0  85000 1410
81    81   710    3     2   0  69900 1150
82    82  1540    3     2   0 125000 1380
83    83  1780    3     2   1 162600 1470
84    84  2920    2     2   1 156900 1590
85    85  1710    3     2   1 105900 1200
86    86  1880    3     2   0 167500 1920
87    87  1680    3     2   0 151800 2150
88    88  3690    5     3   0 118300 2200
89    89   900    2     2   0  94300  860
90    90   560    3     1   0  93900 1230
91    91  2040    4     2   0 165000 1140
92    92  4390    4     3   1 285000 2650
93    93   690    3     1   0  45000 1060
94    94  2100    3     2   0 124900 1770
95    95  2880    4     2   0 147000 1860
96    96   990    2     2   0 176000 1060
97    97  3030    3     2   0 196500 1730
98    98  1580    3     2   0 132200 1370
99    99  1770    3     2   0  88400 1560
100  100  1430    3     2   0 127200 1340

Part A

Code
q3_lm <- lm(
  Price ~ 
    Size + New,
  data = house.selling.price
)
summary(q3_lm)

Call:
lm(formula = Price ~ Size + New, data = house.selling.price)

Residuals:
    Min      1Q  Median      3Q     Max 
-205102  -34374   -5778   18929  163866 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -40230.867  14696.140  -2.738  0.00737 ** 
Size           116.132      8.795  13.204  < 2e-16 ***
New          57736.283  18653.041   3.095  0.00257 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 53880 on 97 degrees of freedom
Multiple R-squared:  0.7226,    Adjusted R-squared:  0.7169 
F-statistic: 126.3 on 2 and 97 DF,  p-value: < 2.2e-16

All coefficients are significant. The intercept (i.e. a theoretical house of no size that is not new) is -$42390.87. Each square foot increases house price by $116.13. A new house would be expected to sell for $57736.28 more than an old house of equal size.

Part B

\(y\) is equal to predicted selling price in USD, and \(x\) is equal to house size in square feet.

New home:

\(y = 17505.42 + 116.13x\)

Old home:

\(y = -40230.87 + 116.132x\)

Part C

Code
q3_predict <- data.frame(
  Size = c(3000,3000),
  New = c(1,0)
)
predict(q3_lm,newdata=q3_predict)
       1        2 
365900.2 308163.9 

The new house would be expected to sell for $365900, while the not-new house would be expected to sell for about $308000.

Part D

Code
q3_lm_interact <- lm(
  Price ~ 
    Size * New,
  data = house.selling.price
)
summary(q3_lm_interact)

Call:
lm(formula = Price ~ Size * New, data = house.selling.price)

Residuals:
    Min      1Q  Median      3Q     Max 
-175748  -28979   -6260   14693  192519 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -22227.808  15521.110  -1.432  0.15536    
Size           104.438      9.424  11.082  < 2e-16 ***
New         -78527.502  51007.642  -1.540  0.12697    
Size:New        61.916     21.686   2.855  0.00527 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 52000 on 96 degrees of freedom
Multiple R-squared:  0.7443,    Adjusted R-squared:  0.7363 
F-statistic: 93.15 on 3 and 96 DF,  p-value: < 2.2e-16

The intercept and New values are no longer significant. Selling price is expected to increase by $104 per square foot for all houses, and an additional $62 per square foot for new houses.