lect5

linear regression

Author

kirit ved

Published

November 12, 2023

author’s details

author’s image

author’s website

https://kiritved.com

analysis of employee data

Loading required package: pacman
 [1] "lubridate" "forcats"   "stringr"   "dplyr"     "purrr"     "readr"    
 [7] "tidyr"     "tibble"    "ggplot2"   "tidyverse" "pacman"   

load employee data

Warning: 1 failed to parse.
id gender bdate educ jobcat salbegin jobtime prevexp minority salary
1 m 1952-02-03 15 3 27000 98 144 0 57000
2 m 1958-05-23 16 1 18750 98 36 0 40200
3 f 1929-07-26 12 1 12000 98 381 0 21450
4 f 1947-04-15 8 1 13200 98 190 0 21900
5 m 1955-02-09 15 1 21000 98 138 0 45000
6 m 1958-08-22 15 1 13500 98 67 0 32100
id gender bdate educ jobcat salbegin jobtime prevexp minority salary
469 469 f 1964-06-01 15 1 13950 64 57 0 25200
470 470 m 1964-01-22 12 1 15750 64 69 1 26250
471 471 m 1966-08-03 15 1 15750 64 32 1 26400
472 472 m 1966-02-21 15 1 15750 63 46 0 39150
473 473 f 1937-11-25 12 1 12750 63 139 0 21450
474 474 f 1968-11-05 12 1 14250 63 9 0 29400
'data.frame':   474 obs. of  10 variables:
 $ id      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ gender  : chr  "m" "m" "f" "f" ...
 $ bdate   : Date, format: "1952-02-03" "1958-05-23" ...
 $ educ    : int  15 16 12 8 15 15 15 12 15 12 ...
 $ jobcat  : int  3 1 1 1 1 1 1 1 1 1 ...
 $ salbegin: int  27000 18750 12000 13200 21000 13500 18750 9750 12750 13500 ...
 $ jobtime : int  98 98 98 98 98 98 98 98 98 98 ...
 $ prevexp : int  144 36 381 190 138 67 114 0 115 244 ...
 $ minority: int  0 0 0 0 0 0 0 0 0 0 ...
 $ salary  : int  57000 40200 21450 21900 45000 32100 36000 21900 27900 24000 ...
       id           gender              bdate                 educ      
 Min.   :  1.0   Length:474         Min.   :1929-02-10   Min.   : 8.00  
 1st Qu.:119.2   Class :character   1st Qu.:1948-01-03   1st Qu.:12.00  
 Median :237.5   Mode  :character   Median :1962-01-23   Median :12.00  
 Mean   :237.5                      Mean   :1956-10-08   Mean   :13.49  
 3rd Qu.:355.8                      3rd Qu.:1965-07-06   3rd Qu.:15.00  
 Max.   :474.0                      Max.   :1971-02-10   Max.   :21.00  
                                    NA's   :1                           
     jobcat         salbegin        jobtime         prevexp      
 Min.   :1.000   Min.   : 9000   Min.   :63.00   Min.   :  0.00  
 1st Qu.:1.000   1st Qu.:12488   1st Qu.:72.00   1st Qu.: 19.25  
 Median :1.000   Median :15000   Median :81.00   Median : 55.00  
 Mean   :1.411   Mean   :17016   Mean   :81.11   Mean   : 95.86  
 3rd Qu.:1.000   3rd Qu.:17490   3rd Qu.:90.00   3rd Qu.:138.75  
 Max.   :3.000   Max.   :79980   Max.   :98.00   Max.   :476.00  
                                                                 
    minority          salary      
 Min.   :0.0000   Min.   : 15750  
 1st Qu.:0.0000   1st Qu.: 24000  
 Median :0.0000   Median : 28875  
 Mean   :0.2194   Mean   : 34420  
 3rd Qu.:0.0000   3rd Qu.: 36938  
 Max.   :1.0000   Max.   :135000  
                                  

removing data with NA

calculating age & recoding gender

educ jobcat salbegin jobtime prevexp minority age gn salary
15 3 27000 98 144 0 42 1 57000
16 1 18750 98 36 0 36 1 40200
12 1 12000 98 381 0 65 0 21450
8 1 13200 98 190 0 47 0 21900
15 1 21000 98 138 0 39 1 45000
15 1 13500 98 67 0 36 1 32100
'data.frame':   473 obs. of  9 variables:
 $ educ    : int  15 16 12 8 15 15 15 12 15 12 ...
 $ jobcat  : int  3 1 1 1 1 1 1 1 1 1 ...
 $ salbegin: int  27000 18750 12000 13200 21000 13500 18750 9750 12750 13500 ...
 $ jobtime : int  98 98 98 98 98 98 98 98 98 98 ...
 $ prevexp : int  144 36 381 190 138 67 114 0 115 244 ...
 $ minority: int  0 0 0 0 0 0 0 0 0 0 ...
 $ age     : num  42 36 65 47 39 36 38 28 48 48 ...
 $ gn      : num  1 1 0 0 1 1 1 0 0 0 ...
 $ salary  : int  57000 40200 21450 21900 45000 32100 36000 21900 27900 24000 ...

linear regression for employee’s data


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

Coefficients:
(Intercept)         educ       jobcat     salbegin      jobtime      prevexp  
 -11771.821      455.136     5753.379        1.329      154.787      -14.582  
   minority          age           gn  
   -968.946      -69.214     1803.320  

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

Residuals:
   Min     1Q Median     3Q    Max 
-23217  -3013   -738   2655  46337 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.177e+04  3.252e+03  -3.619 0.000328 ***
educ         4.551e+02  1.541e+02   2.954 0.003293 ** 
jobcat       5.753e+03  6.226e+02   9.242  < 2e-16 ***
salbegin     1.329e+00  7.037e-02  18.884  < 2e-16 ***
jobtime      1.548e+02  3.164e+01   4.893 1.38e-06 ***
prevexp     -1.458e+01  5.506e+00  -2.649 0.008359 ** 
minority    -9.689e+02  7.845e+02  -1.235 0.217386    
age         -6.921e+01  4.770e+01  -1.451 0.147414    
gn           1.803e+03  7.744e+02   2.329 0.020311 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6803 on 464 degrees of freedom
Multiple R-squared:  0.8443,    Adjusted R-squared:  0.8416 
F-statistic: 314.5 on 8 and 464 DF,  p-value: < 2.2e-16

data generation for prediction

id gender bdate educ jobcat salbegin jobtime prevexp minority
1 m 1953-12-18 11 3 69303 88 82 1
2 f 1950-11-08 19 1 27685 90 69 1
3 f 1941-10-07 14 1 50196 65 80 0
4 m 1936-11-12 20 2 30481 69 86 0
5 m 1945-02-11 17 3 37153 96 91 1
6 m 1964-06-26 16 2 43753 75 86 1
7 m 1935-09-01 21 3 68169 65 86 0
8 m 1944-03-17 12 3 60193 69 85 1
9 f 1946-01-06 17 2 74166 73 95 1
10 f 1931-08-24 12 3 22290 91 92 1
educ jobcat salbegin jobtime prevexp minority age gn
11 3 69303 88 82 1 70 1
19 1 27685 90 69 1 74 0
14 1 50196 65 80 0 83 0
20 2 30481 69 86 0 87 1
17 3 37153 96 91 1 79 1
16 2 43753 75 86 1 60 1
'data.frame':   10 obs. of  8 variables:
 $ educ    : int  11 19 14 20 17 16 21 12 17 12
 $ jobcat  : int  3 1 1 2 3 2 3 3 2 3
 $ salbegin: num  69303 27685 50196 30481 37153 ...
 $ jobtime : num  88 90 65 69 96 75 65 69 73 91
 $ prevexp : num  82 69 80 86 91 86 86 85 95 92
 $ minority: num  1 1 0 0 1 1 0 1 1 1
 $ age     : num  70 74 83 87 79 60 89 80 78 93
 $ gn      : num  1 0 0 1 1 1 1 1 0 0

predicting data using regression model

educ jobcat salbegin jobtime prevexp minority age gn salarypred
11 3 69303 88 82 1 70 1 111007.99
19 1 27685 90 69 1 74 0 46254.21
14 1 50196 65 80 0 83 0 70209.82
20 2 30481 69 86 0 87 1 54552.44
17 3 37153 96 91 1 79 1 71498.09
16 2 43753 75 86 1 60 1 72197.91
21 3 68169 65 86 0 89 1 110087.78
12 3 60193 69 85 1 80 1 95679.80
17 2 74166 73 95 1 78 0 109579.55
12 3 22290 91 92 1 93 0 45909.81