#
dta <- read.csv("data0505.csv", header = T)
options(digits = 3)
pacman::p_load(tidyverse, ggplot2, knitr, broom, car)
dta <- dta %>% mutate( Gender = relevel(Gender, ref = "女"),
                       Sector = relevel(Sector, ref = "私立"),
                       Field = relevel(Field, ref = "大眾傳播學群"),
                       EduLv = factor(EduLv, levels=c("博士","碩士","普通大學","科技大學",
                                                      "技術學院","五專","三專",
                                                      "二專","高中","高職","國中")),
                       EduLv = relevel(EduLv, ref = "技術學院"),
                       Region = factor(Region, levels =c("宜花東離島","北北基","桃竹苗",
                                                         "中彰投","雲嘉南","高屏澎")),
                       Age = as.numeric(Age), 
                       J_year = as.numeric(J_year), 
                       JobZone = as.numeric(JobZone),
                       EduZone = as.numeric(EduZone),
                       JobZone_D = as.numeric(EduZone-JobZone),
                       Salary = as.numeric(Salary),
                       SubEduOver = relevel(SubEduOver, ref="符合工作要求"),
                       Core = recode_factor(as.factor(JobCor), "1" = "無關聯",
                                            "2" = "部分關聯",
                                            "3" = "核心關聯"),
                       SubEduOver = factor(SubEduOver,levels =c("符合工作要求","高於工作要求","低於工作要求")))

# data construction
glimpse(dta)
## Observations: 1,571
## Variables: 26
## $ SID         <fctr> A1, A10, A100, A102, A103, A104, A105, A106, A107...
## $ Gender      <fctr> 女, 女, 女, 女, 男, 女, 女, 女, 女, 女, 女, 男, 男, 男, 女, 男, 男...
## $ Sector      <fctr> 國立(公立), 國立(公立), 私立, 國立(公立), 國立(公立), 國立(公立), 國立(公立...
## $ EduLv       <fctr> 碩士, 碩士, 普通大學, 普通大學, 高職, 普通大學, 普通大學, 普通大學, 普通大學, 普...
## $ SubEduOver  <fctr> 符合工作要求, 高於工作要求, 符合工作要求, 符合工作要求, 符合工作要求, 符合工作要求, 符...
## $ Require     <fctr> 碩士, 高中/高職, 普通大學, 普通大學, 高中/高職, 普通大學, 普通大學, 普通大學, 普...
## $ Field       <fctr> 教育學群, 資訊學群, 外語學群, 教育學群, 工程學群, 文史哲學群, 文史哲學群, 大眾傳播學...
## $ City        <fctr> 臺南市, 高雄市, 苗栗縣, 新北市, 高雄市, 南投縣, 嘉義市, 臺北市, 臺北市, 南投縣,...
## $ Category    <fctr> 受雇於公營機關, 受雇於公營機關, 受雇於公營機關, 受雇於公營機關, 受雇者於私營企業, 受雇於...
## $ Staff       <fctr> 10-29人, 50-99人, 50-99人, 10-29人, 2-9人, 100-199人, 1...
## $ Hours       <int> 48, 40, 70, 50, 57, 51, 64, 50, 50, 47, 50, 60, 45...
## $ J_year      <dbl> 2, 8, 4, 1, 21, 1, 6, 0, 1, 1, 17, 7, 3, 23, 1, 2,...
## $ J_total     <dbl> 2, 8, 4, 1, 30, 1, 6, 0, 2, 2, 28, 7, 30, 26, 1, 1...
## $ income      <fctr> 2萬以下, 2-3萬以下, 3-4萬以下, 4-5萬以下, 3-4萬以下, 4-5萬以下, 2萬以...
## $ SubMismatch <int> 4, 2, 3, 4, 5, 4, 5, 4, 3, 3, 4, 4, 4, 4, 5, 5, 3,...
## $ JobSat      <int> 6, 4, 3, 5, 5, 6, 7, 5, 3, 6, 3, 5, 4, 7, 3, 4, 4,...
## $ EduZone     <dbl> 5, 5, 4, 4, 2, 4, 4, 4, 4, 4, 5, 5, 3, 5, 4, 4, 4,...
## $ Region      <fctr> 雲嘉南, 高屏澎, 桃竹苗, 北北基, 高屏澎, 中彰投, 雲嘉南, 北北基, 北北基, 中彰投,...
## $ Salary      <dbl> 20000, 25000, 35000, 45000, 35000, 45000, 20000, 3...
## $ Age         <dbl> 26, 34, 30, 25, 62, 25, 21, 24, 25, 26, 57, 35, 54...
## $ JobZone     <dbl> 4, 3, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 3,...
## $ JobCor      <int> 3, 1, 2, 3, 1, 2, 1, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3,...
## $ Core        <fctr> 核心關聯, 無關聯, 部分關聯, 核心關聯, 無關聯, 部分關聯, 無關聯, 核心關聯, 無關聯,...
## $ ObjOver     <fctr> over, over, adequate, adequate, under, adequate, ...
## $ X           <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ JobZone_D   <dbl> 1, 2, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, ...
# check and pick out
lapply(dta[,c("Sector", "Field", "City", "Region","EduLv", "SubEduOver", "ObjOver")], levels)
## $Sector
## [1] "私立"         "國外學校"     "國立(公立)"
## 
## $Field
##  [1] "大眾傳播學群"   "工程學群"       "文史哲學群"     "外語學群"      
##  [5] "生命科學學群"   "生物資源學群"   "地球與環境學群" "法政學群"      
##  [9] "社會與心理學群" "建築與設計學群" "財經學群"       "教育學群"      
## [13] "資訊學群"       "遊憩與運動學群" "管理學群"       "數理化學群"    
## [17] "醫藥衛生學群"   "藝術學群"      
## 
## $City
##  [1] "宜蘭縣" "花蓮縣" "金門縣" "南投縣" "屏東縣" "苗栗縣" "桃園市"
##  [8] "高雄市" "基隆市" "雲林縣" "新北市" "新竹市" "新竹縣" "嘉義市"
## [15] "嘉義縣" "彰化縣" "臺中市" "臺北市" "臺東縣" "臺南市" "澎湖縣"
## 
## $Region
## [1] "宜花東離島" "北北基"     "桃竹苗"     "中彰投"     "雲嘉南"    
## [6] "高屏澎"    
## 
## $EduLv
##  [1] "技術學院" "博士"     "碩士"     "普通大學" "科技大學" "五專"    
##  [7] "三專"     "二專"     "高中"     "高職"     "國中"    
## 
## $SubEduOver
## [1] "符合工作要求" "高於工作要求" "低於工作要求"
## 
## $ObjOver
## [1] "adequate" "over"     "under"
# pick out
names(dta)
##  [1] "SID"         "Gender"      "Sector"      "EduLv"       "SubEduOver" 
##  [6] "Require"     "Field"       "City"        "Category"    "Staff"      
## [11] "Hours"       "J_year"      "J_total"     "income"      "SubMismatch"
## [16] "JobSat"      "EduZone"     "Region"      "Salary"      "Age"        
## [21] "JobZone"     "JobCor"      "Core"        "ObjOver"     "X"          
## [26] "JobZone_D"
p <- dplyr::select(dta, -City, -income, -JobSat, -X)%>%
  filter(Age <= 65 & Age >= 20 & Category != "自營者" )
p <- p[p$EduLv %in% c("博士","碩士", "普通大學", "科技大學", "技術學院"),]
p <- p %>% mutate(   EduLv = factor(EduLv, levels=c("博士","碩士","普通大學","科技大學",
                                                    "技術學院")),
                     EduLv = relevel(EduLv, ref = "技術學院"),
                     Category = factor(Category,levels=c("受雇者於私營企業","受雇於公營機關")))


#
# Fit the null model
null <- lm(Salary ~1, data= p)


#
# 最終模型設定

# 薪資對性別 / 公私立.教育程度.學群
a2 <- update(null,~.+Gender+Sector+ EduLv+ Field)
summary(a2)
## 
## Call:
## lm(formula = Salary ~ Gender + Sector + EduLv + Field, data = p)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -45782 -11390  -2831   6618 236352 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            30004       4882    6.15  1.0e-09 ***
## Gender男                8117       1364    5.95  3.4e-09 ***
## Sector國外學校         12708       4736    2.68  0.00738 ** 
## Sector國立(公立)      2718       1393    1.95  0.05129 .  
## EduLv博士              24082       8204    2.94  0.00339 ** 
## EduLv碩士              16494       3757    4.39  1.2e-05 ***
## EduLv普通大學           2517       3664    0.69  0.49220    
## EduLv科技大學          -4595       3762   -1.22  0.22212    
## Field工程學群          13449       3784    3.55  0.00039 ***
## Field文史哲學群          718       4115    0.17  0.86155    
## Field外語學群           7378       4159    1.77  0.07627 .  
## Field生命科學學群        992       5007    0.20  0.84298    
## Field生物資源學群       -382       5772   -0.07  0.94731    
## Field地球與環境學群     2157       5690    0.38  0.70465    
## Field法政學群           1822       4332    0.42  0.67405    
## Field社會與心理學群     1151       3831    0.30  0.76394    
## Field建築與設計學群     6315       4590    1.38  0.16913    
## Field財經學群           5310       3954    1.34  0.17948    
## Field教育學群           3143       4035    0.78  0.43621    
## Field資訊學群           8383       3961    2.12  0.03451 *  
## Field遊憩與運動學群     4404       5268    0.84  0.40328    
## Field管理學群           1066       3812    0.28  0.77981    
## Field數理化學群         4811       4418    1.09  0.27641    
## Field醫藥衛生學群      14381       3968    3.62  0.00030 ***
## Field藝術學群          -3264       5065   -0.64  0.51944    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 21800 on 1402 degrees of freedom
## Multiple R-squared:  0.225,  Adjusted R-squared:  0.212 
## F-statistic: 16.9 on 24 and 1402 DF,  p-value: <2e-16
# 薪資對性別 / 公私立.教育程度.學群 / 總年資.工時
a3 <- update(null,~.+Gender+Sector+ EduLv+ Field +J_total+ Hours)
summary(a3)
## 
## Call:
## lm(formula = Salary ~ Gender + Sector + EduLv + Field + J_total + 
##     Hours, data = p)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -44251 -10656  -1908   6512 228754 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          12353.0     5418.8    2.28  0.02278 *  
## Gender男              7516.2     1300.0    5.78  9.1e-09 ***
## Sector國外學校       11565.2     4510.7    2.56  0.01045 *  
## Sector國立(公立)    3985.3     1331.1    2.99  0.00280 ** 
## EduLv博士            14533.0     7851.6    1.85  0.06439 .  
## EduLv碩士            18336.9     3584.5    5.12  3.6e-07 ***
## EduLv普通大學         6515.4     3506.5    1.86  0.06337 .  
## EduLv科技大學        -1753.4     3590.5   -0.49  0.62539    
## Field工程學群        12509.5     3606.8    3.47  0.00054 ***
## Field文史哲學群      -2774.8     3927.8   -0.71  0.48003    
## Field外語學群         3389.4     3973.1    0.85  0.39376    
## Field生命科學學群      412.2     4768.0    0.09  0.93112    
## Field生物資源學群      700.5     5495.8    0.13  0.89859    
## Field地球與環境學群  -2322.9     5432.2   -0.43  0.66900    
## Field法政學群          243.9     4127.0    0.06  0.95288    
## Field社會與心理學群   -176.9     3648.7   -0.05  0.96134    
## Field建築與設計學群   4162.3     4377.6    0.95  0.34186    
## Field財經學群         3110.3     3768.5    0.83  0.40932    
## Field教育學群          444.0     3848.5    0.12  0.90817    
## Field資訊學群         7456.4     3772.0    1.98  0.04826 *  
## Field遊憩與運動學群   2938.1     5016.7    0.59  0.55820    
## Field管理學群        -1090.9     3634.4   -0.30  0.76409    
## Field數理化學群       3339.4     4207.9    0.79  0.42756    
## Field醫藥衛生學群    11387.5     3787.8    3.01  0.00269 ** 
## Field藝術學群        -4904.9     4824.3   -1.02  0.30946    
## J_total               1142.8       96.6   11.82  < 2e-16 ***
## Hours                  192.3       59.1    3.25  0.00117 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20800 on 1400 degrees of freedom
## Multiple R-squared:  0.298,  Adjusted R-squared:  0.285 
## F-statistic: 22.9 on 26 and 1400 DF,  p-value: <2e-16
# 薪資對性別 / 公私立.教育程度.學群 / 地區.年資.工時 / 自評過量.自評關聯
a42 <- update(null,~.+Gender+Sector+ EduLv+ Field +J_total+ Hours+ SubEduOver+SubMismatch)
summary(a42)
## 
## Call:
## lm(formula = Salary ~ Gender + Sector + EduLv + Field + J_total + 
##     Hours + SubEduOver + SubMismatch, data = p)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -46599 -10440  -1663   6165 222638 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             10870.1     5518.0    1.97  0.04904 *  
## Gender男                 8258.7     1273.5    6.49  1.2e-10 ***
## Sector國外學校          14405.1     4415.5    3.26  0.00113 ** 
## Sector國立(公立)       3579.8     1305.7    2.74  0.00619 ** 
## EduLv博士               10508.2     7701.9    1.36  0.17267    
## EduLv碩士               17625.8     3514.9    5.01  6.0e-07 ***
## EduLv普通大學            5958.9     3422.4    1.74  0.08188 .  
## EduLv科技大學           -2127.5     3505.8   -0.61  0.54405    
## Field工程學群           12227.8     3531.3    3.46  0.00055 ***
## Field文史哲學群         -2813.6     3841.3   -0.73  0.46402    
## Field外語學群            3432.7     3881.4    0.88  0.37663    
## Field生命科學學群        2844.8     4668.4    0.61  0.54238    
## Field生物資源學群        1227.9     5378.8    0.23  0.81946    
## Field地球與環境學群     -1465.6     5318.9   -0.28  0.78293    
## Field法政學群            1314.1     4033.4    0.33  0.74463    
## Field社會與心理學群     -1550.7     3567.5   -0.43  0.66386    
## Field建築與設計學群      4584.5     4276.2    1.07  0.28386    
## Field財經學群            2288.5     3679.3    0.62  0.53406    
## Field教育學群           -1215.4     3772.8   -0.32  0.74740    
## Field資訊學群            7057.9     3695.0    1.91  0.05632 .  
## Field遊憩與運動學群      1796.7     4909.5    0.37  0.71445    
## Field管理學群            -149.3     3555.5   -0.04  0.96651    
## Field數理化學群          3238.5     4113.5    0.79  0.43124    
## Field醫藥衛生學群       10143.9     3711.3    2.73  0.00635 ** 
## Field藝術學群           -4011.1     4714.9   -0.85  0.39506    
## J_total                  1085.4       94.8   11.45  < 2e-16 ***
## Hours                     214.6       57.8    3.71  0.00021 ***
## SubEduOver高於工作要求  -8703.4     1447.8   -6.01  2.3e-09 ***
## SubEduOver低於工作要求  -8201.7     1886.1   -4.35  1.5e-05 ***
## SubMismatch              1313.9      488.3    2.69  0.00721 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20300 on 1397 degrees of freedom
## Multiple R-squared:  0.333,  Adjusted R-squared:  0.319 
## F-statistic: 24.1 on 29 and 1397 DF,  p-value: <2e-16
# 薪資對性別 / 公私立.教育程度.學群 / 地區.年資.工時 / 客評過量.客評關聯
a52 <- update(null,~.+Gender+Sector+ EduLv+ Field +J_total+ Hours+ ObjOver+ Core)
summary(a52)
## 
## Call:
## lm(formula = Salary ~ Gender + Sector + EduLv + Field + J_total + 
##     Hours + ObjOver + Core, data = p)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -48111 -10540  -1899   6762 231936 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          14284.5     5424.3    2.63  0.00855 ** 
## Gender男              7374.7     1285.2    5.74  1.2e-08 ***
## Sector國外學校       11294.7     4458.7    2.53  0.01141 *  
## Sector國立(公立)    3699.3     1319.2    2.80  0.00511 ** 
## EduLv博士            13510.1     7762.4    1.74  0.08200 .  
## EduLv碩士            19096.8     3565.0    5.36  9.9e-08 ***
## EduLv普通大學         5437.6     3467.5    1.57  0.11707    
## EduLv科技大學        -2623.2     3544.9   -0.74  0.45944    
## Field工程學群        13073.2     3582.6    3.65  0.00027 ***
## Field文史哲學群      -3459.0     3913.2   -0.88  0.37688    
## Field外語學群         3751.9     3963.4    0.95  0.34398    
## Field生命科學學群     2186.2     4728.9    0.46  0.64394    
## Field生物資源學群     2322.3     5447.3    0.43  0.66994    
## Field地球與環境學群  -3039.1     5389.8   -0.56  0.57294    
## Field法政學群         1361.4     4126.3    0.33  0.74151    
## Field社會與心理學群  -1650.2     3663.9   -0.45  0.65249    
## Field建築與設計學群   3625.8     4328.5    0.84  0.40237    
## Field財經學群         3880.6     3739.8    1.04  0.29962    
## Field教育學群         -882.1     3828.3   -0.23  0.81780    
## Field資訊學群         6499.1     3744.2    1.74  0.08282 .  
## Field遊憩與運動學群   4167.1     4963.9    0.84  0.40135    
## Field管理學群         -252.1     3624.3   -0.07  0.94456    
## Field數理化學群       3684.0     4160.3    0.89  0.37603    
## Field醫藥衛生學群     9978.1     3817.5    2.61  0.00905 ** 
## Field藝術學群        -5442.3     4768.3   -1.14  0.25391    
## J_total               1149.4       96.2   11.95  < 2e-16 ***
## Hours                  184.2       58.4    3.15  0.00164 ** 
## ObjOverover          -4406.5     1375.2   -3.20  0.00139 ** 
## ObjOverunder          4641.1     2980.2    1.56  0.11962    
## Core部分關聯          5724.5     1705.6    3.36  0.00081 ***
## Core核心關聯          4115.6     1420.9    2.90  0.00383 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20500 on 1396 degrees of freedom
## Multiple R-squared:  0.319,  Adjusted R-squared:  0.304 
## F-statistic: 21.8 on 30 and 1396 DF,  p-value: <2e-16
# 薪資對性別 / 公私立.教育程度.學群 / 地區.年資.工時 / 自評過量.客評關聯
a6 <- update(null,~.+Gender+Sector+ EduLv+ Field +J_total+ Hours+ SubEduOver+ Core)
summary(a6)
## 
## Call:
## lm(formula = Salary ~ Gender + Sector + EduLv + Field + J_total + 
##     Hours + SubEduOver + Core, data = p)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -50581 -10441  -1786   6473 226962 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             13828.6     5294.9    2.61  0.00911 ** 
## Gender男                 8105.2     1268.3    6.39  2.2e-10 ***
## Sector國外學校          14502.1     4403.9    3.29  0.00102 ** 
## Sector國立(公立)       3647.1     1302.2    2.80  0.00517 ** 
## EduLv博士               11046.5     7656.2    1.44  0.14930    
## EduLv碩士               17773.3     3495.6    5.08  4.2e-07 ***
## EduLv普通大學            5851.4     3412.9    1.71  0.08666 .  
## EduLv科技大學           -2143.5     3495.0   -0.61  0.53978    
## Field工程學群           12137.6     3523.7    3.44  0.00059 ***
## Field文史哲學群         -3442.1     3860.4   -0.89  0.37273    
## Field外語學群            2961.1     3896.8    0.76  0.44746    
## Field生命科學學群        2938.7     4654.2    0.63  0.52788    
## Field生物資源學群         468.6     5351.0    0.09  0.93023    
## Field地球與環境學群     -1882.0     5329.7   -0.35  0.72406    
## Field法政學群            1177.0     4022.5    0.29  0.76986    
## Field社會與心理學群     -1688.6     3556.7   -0.47  0.63503    
## Field建築與設計學群      3976.9     4270.0    0.93  0.35183    
## Field財經學群            2255.0     3671.8    0.61  0.53922    
## Field教育學群           -2079.3     3776.7   -0.55  0.58203    
## Field資訊學群            5977.3     3696.6    1.62  0.10611    
## Field遊憩與運動學群      2612.2     4898.3    0.53  0.59392    
## Field管理學群            -432.9     3558.3   -0.12  0.90319    
## Field數理化學群          3604.8     4102.7    0.88  0.37975    
## Field醫藥衛生學群        9379.2     3711.0    2.53  0.01160 *  
## Field藝術學群           -4757.0     4706.2   -1.01  0.31228    
## J_total                  1109.7       95.0   11.68  < 2e-16 ***
## Hours                     208.7       57.7    3.62  0.00030 ***
## SubEduOver高於工作要求  -8960.3     1393.0   -6.43  1.7e-10 ***
## SubEduOver低於工作要求  -8854.6     1849.6   -4.79  1.9e-06 ***
## Core部分關聯             5082.7     1683.4    3.02  0.00258 ** 
## Core核心關聯             4456.1     1355.6    3.29  0.00104 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20200 on 1396 degrees of freedom
## Multiple R-squared:  0.338,  Adjusted R-squared:  0.323 
## F-statistic: 23.7 on 30 and 1396 DF,  p-value: <2e-16