1 PHẦN MỞ ĐẦU

1.1 Lý do chọn đề tài

Sau hơn hai năm chịu tác động từ đại dịch Covid-19 và những thay đổi chóng mặt của thị trường kinh doanh, năm 2022, Việc chứng kiến nhiều xáo động về nguồn nhân lực và tổ chức trên quy mô lớn. Không chỉ dừng lại ở tình trạng nghỉ việc ồ ạt, người lao động còn sẵn sàng rời bỏ ngành nghề, chuyển đổi cách thức làm việc và đặt ra nhiều yêu cầu mới đối với nhà tuyển dụng. Kết quả khảo sát thị trường lao động nửa đầu năm 2022 của LinkedIn tại Việt Nam và Anphabe cho thấy, trào lưu chuyển việc ồ ạt không còn là dự báo, mà đã trở thành hiện thực Ngay cả khi tình trạng thất nghiệp phổ biến và gia tăng trên toàn thế giới do ảnh hưởng của Covid-19, từ giữa năm 2021, trào lưu nghỉ việc đã bắt đầu xuất hiện. Báo cáo của Microsoft cho thấy, có tới 42% người đi làm trên thế giới chia sẻ rằng, họ đang có ý định chuyển việc.

Nếu như trước đây, nghỉ việc là điều tế nhị nhiều người muốn giấu kín, nhưng nay, họ không ngần ngại đăng tải trên mạng xã hội thông điệp “đang tìm việc làm mới”… Mạng xã hội nghề nghiệp LinkedIn đang có 860 triệu thành viên trên toàn thế giới. Tính đến tháng 4/2022, có tới 260.000 trong gần 4 triệu thành viên tại Việt Nam đã cập nhật trạng thái “đang tìm việc làm mới”.

Những yếu tố có là nguyên nhân dẫn đến chuyển đổi công việc có thể kể đến như có quá nhiều việc phải làm, ảnh hưởng đến chất lượng cuộc sống, nhận thức về môi trường hay các mối quan hệ xung quanh đang rạn nứt, suy nghĩ về việc lập gia đình,.. Khi một vị trí mới phù hợp với các giá trị người đi làm quan tâm, nhiều khả năng đó sẽ là lựa chọn “dài hơi” dành cho họ.

Dựa trên những cơ sở đó, em quyết định chọn đề tài “Phân tích các yếu tố ảnh hưởng đến quyết định chuyển việc của nhân viên.” để phân tích xem những yếu tố nào là nguyên nhân dẫn đến ý định muốn nhảy việc của nhân lực hiện nay.

1.2 Mục tiêu nghiên cứu

Dựa trên các thông tin là các yếu tố là nguyên nhân dẫn đến tình trạng nhảy việc, em sẽ đánh giá và phân tích các tác động của chúng ảnh hưởng như thế nào với việc ra định chuyển việc của nhân viên. Từ đó đề xuất ra giải pháp từ kết quả nghiên cứu.

1.3 Đối tượng và phạm vi nghiên cứu

Bài viết phân tích các yếu tố tác động đến quyết định chuyển việc của nhân viên thông qua một cuộc khảo sát tại một công ty hoạt động trong lĩnh vực dữ liệu và khoa học dữ liệu.

1.4 PHương pháp nghiên cứu

Nghiên cứu được tiến hành theo phương pháp phân tích dữ liệu định tính.

2 CƠ SỞ LÝ THUYẾT

2.1 Lý thuyết dữ liệu định tính

2.1.1 Khái niệm biến định tính

Biến định tính (qualitative variable) hay còn gọi là biến phân loại (categorical variable) là biến mà những giá trị nó có thể nhận không phải là số. Biến định tính thường được “đo lường” bằng thang đo Định danh hoặc thang đo Thứ bậc. Dữ liệu định tính là dữ liệu có được khi quan sát biến định tính.

Chẳng hạn, phản ứng của người dân trước một chính sách mới ban hành có thể có 3 thái độ: đồng tình, không có ý kiến, phản đối; sự nhận định của ngân hàng về khả năng trả nợ của một khách hàng là: “có khả năng” hoặc “không có khả năng”,…. Các mức độ phản ứng khác nhau về một vấn đề trong các lĩnh vực khoa học xã hội. Dữ liệu định tính cũng xuất hiện rất phổ biến trong các ngành khoa học y tế, để đo lường mức độ phản ứng của bệnh nhân đối với một loại thuốc hoặc một phương pháp điều trị mới (trị được bệnh hoặc không trị được bệnh), mức độ nghiêm trọng của thương tích (không, nhẹ, trung bình, nặng) và giai đoạn của bệnh(ban đầu, giai đoạn cuối).

Các biến định tính cũng thường xuất hiện trong các khoa học ứng xử (ví dụ: “Đồng tình” hay “Phản đối” việc hút thuốc lá nơi công cộng), sức khoẻ cộng đồng (ví dụ: uống rượu/bia, “có” hay “không” là nguyên nhân của các căn bệnh liên quan đến thần kinh ?), trong giáo dục ( các câu trả lời của học sinh “đúng” hay “sai” trong một kỳ thi), và trong hành vi tiêu dùng (ví dụ: khách hàng quyết định “mua” hoặc “không mua” một loại sản phẩm do mẫu mã, bao bì của sản phẩm).

Biến định tính thậm chí còn được quan tâm trong những lĩnh vực có tính định lượng cao như khoa học kỹ thuật và kiểm soát chất lượng công nghiệp, khi các hạng mục được phân loại “đạt” hoặc “không đạt” với các tiêu chuẩn nhất định.

2.1.2 Phân biệt biến độc lập và biến đáp ứng ( biến phụ thuộc)

Với một mô hình kinh tế lượng chúng ta đều biết sẽ có biến phụ thuộc (hay còn gọi là biến được giải thích) và biến độc lập (hay còn gọi là biến giải thích). Nếu biến phụ thuộc là biến định tính thì người ta thường gọi biến phụ thuộc này là biến đáp ứng (response variable).

Tuy nhiên khái niệm biến đáp ứng và biến giải thích chỉ mang tính tương đối, một biến đáp ứng trong mô hình nghiên cứu này có thể lại là biến giải thích trong mô hình nghiên cứu khác. Chẳng hạn khi nghiên cứu tác động của của trình độ học vấn đối với mức thu nhập, thì mức thu nhập là biến đáp ứng, nhưng khi khảo sát thái độ của công dân đối với một sắc thuế mới được trưng cầu chịu ảnh hưởng như thế nào bởi mức thu nhập của công dân, thì thu nhập lại là biến giải thích. Chủ đề của học phần này là phân tích các biến đáp ứng định tính. Các mô hình thống kê cho các biến đáp ứng định tính phân tích các phản ứng như thế nào là chịu ảnh hưởng bởi các biến giải thích. Ví dụ, người ta có thể nghiên cứu triết học chính trị phụ thuộc vào các yếu tố như thu nhập hàng năm, trình độ học vấn, tôn giáo, tuổi, giới tính và chủng tộc. Các biến giải thích có thể là định tính hoặc định lượng (rời rạc, hoặc liên tục).

2.2 Thống kê mô tả cho dữ liệu định tính

2.2.1 Bảng tần số và bảng tần suất

Bảng tần số/suất (contingency table) là bảng được sử dụng để đánh giá mức độ tương quan hay phụ thuộc giữa hai biến số hay tiêu thức. Thông tin mẫu được so sánh với tình huống lý thuyết trong đó có sự phụ thuộc hoàn toàn giữa các tiêu thức. Các bảng tần số/suất (còn gọi là bảng ngẫu nhiên) được sử dụng trong các thống kê để tóm tắt mối quan hệ giữa một số biến phân loại. Khi lập bảng ngẫu nhiên cho 2 biến thì bảng đó được gọi là bảng ngẫu nhiên 2 chiều, nếu lập cho 3 biến thì gọi là bảng ngẫu nhiên 3 chiều và cứ thế tăng lên.

Đối với bảng tần số chúng ta quy ước biến phụ thuộc (dependent/outcome/response variable) được xắp xếp theo cột, biến độc lập (independent/explanatory/predictor variable) được xắp xếp theo hàng.

2.2.2 Độ nhạy và độ đặc hiệu

Độ nhạy là một khái niệm cơ bản để thử nghiệm chẩn đoán. Nó đo lường khả năng của bài kiểm tra để xác định chính xác các cá nhân với một điều kiện hoặc thuộc tính cụ thể. Nó định lượng tỷ lệ dương tính thực sự, hoặc cá nhân mắc bệnh được xác định chính xác là dương tính, trong số tất cả những người mắc bệnh.

Độ nhạy = số dương tính thật/(số đương tính thật + số âm tính giả)

Độ nhạy 100% được hiểu là toàn bộ những người mắc bệnh hoặc toàn bộ sản phẩm hỏng đều được phát hiện. Một mình độ nhạy không cho chúng ta biết toàn bộ về xét nghiệm bởi vì 100% độ nhạy có thể có được một cách thông thường bằng việc gán cho toàn bộ các trường hợp kết quả xét nghiệm dương tính. Chính vì vậy, chúng ta cần phải biết thêm về độ đặc hiệu của xét nghiệm.

Một xét nghiệm độ nhạy cao có sai lầm loại 2 thấp. Sai lầm loại 2 là: kết quả nghiên cứu cho thấy không có mối quan hệ giữa các yếu tố, nhưng thực tế thì có.

Độ đặc hiệu của một xét nghiệm là tỷ lệ những trường hợp thực sự không có bệnh và có kết quả xét nghiệm âm tính trong toàn bộ các trường hợp không bị bệnh. Độ đặc hiệu được tính theo công thức sau:

Độ đặc hiệu = Số trường hợp âm tính thật/ (số trường hợp âm tính thật + số trường hợp dương tính giả)

Đối với một xét nghiệm để xác định xem ai mắc bệnh nào đó, độ đặc hiệu 100% có nghĩa là toàn bộ những người khỏe mạnh (không mắc bệnh) được xác định là khỏe mạnh. Một mình độ đặc hiệu không cho chúng ta biết toàn bộ về xét nghiệm bởi vì 100% độ đặc hiệu có thể có được một cách thông thường bằng việc gán cho toàn bộ các trường hợp kết quả xét nghiệm âm tính. Chính vì vậy, chúng ta cần phải biết thêm về độ nhạy của xét nghiệm.

Một xét nghiệm với độ đặc hiệu cao có sai lầm loại 1 thấp. Sai lầm loại 1 là loại sai lầm khi kết quả nghiên cứu cho thấy có sự khác biệt (như giả thuyết đặt ra), nhưng thực tế là không có sự khác biệt.

2.3 Các mô hình hồi quy

3 KẾT QUẢ NGHIÊN CỨU

Một công ty đang hoạt động trong lĩnh vực dữ liệu và Khoa học dữ liệu muốn biết ai trong số những ứng viên này thực sự muốn làm việc cho công ty sau khi đào tạo hoặc tìm kiếm một công việc mới vì nó giúp giảm chi phí và thời gian cũng như chất lượng đào tạo. Bộ dữ liệu được khảo sát với mục tiêu liên quan đến các yếu tố khiến một nhân viên rời bỏ công việc hiện tại để chuyển sang công việc mới.

library(readxl)
data <- read_excel("C:/users/PM09/Downloads/datadt.xlsx")
data
## # A tibble: 19,158 × 9
##    gender relevent_experience enrolled_university education_level experience
##    <chr>  <chr>               <chr>               <chr>           <chr>     
##  1 Male   yes                 no_enrollment       Graduate        >20       
##  2 Male   no                  no_enrollment       Graduate        15        
##  3 Female no                  Full time course    Graduate        5         
##  4 Female no                  Full time course    Graduate        <1        
##  5 Male   yes                 no_enrollment       Masters         >20       
##  6 Female yes                 Part time course    Graduate        11        
##  7 Male   yes                 no_enrollment       High School     5         
##  8 Male   yes                 no_enrollment       Graduate        13        
##  9 Male   yes                 no_enrollment       Graduate        7         
## 10 Female yes                 no_enrollment       Graduate        17        
## # ℹ 19,148 more rows
## # ℹ 4 more variables: company_type <chr>, last_new_job <chr>,
## #   training_hours <dbl>, move <chr>

3.1 Mô tả dữ liệu

Dữ liệu bao gồm 9 biến với 19158 quan sát (6 biến định tính, 3 biến định lượng)

  • Gender: Giới tính của ứng viên (male/female_nam/nữ)

  • Relevent_experience: Có kinh nghiệm liên quan đến ngành nghề không? (Yes/No_có/không)

  • Education_level: Trình độ học vấn của ứng viên (Primaryschool/highschool/graduate/master/Phd_THCS/THPT/Đại học/Thạc sĩ/Tiến sĩ)

  • Enrolled_university: Loại khóa học Đại học đã đăng ký nếu có (no/full time course/ part time course_ không đăng kí/khóa toàn thời gian/ khóa bán thời gian )

  • Experience: Tổng kinh nghiệm của ứng viên tính theo năm

  • company_type : Loại công ty hiện tại(Pvt Ltd/Funded Startup/NGO/Public Sector/_Công ty TNHH tư nhân/ Công ty Startup/ Tổ chức phi chính phủ/ Công ty công).

  • Last_new_job: Chênh lệch số năm giữa công việc trước đây và công việc hiện tại.

  • Training_hours: số giờ đào tạo đã hoàn thành

  • Move: có ý định chuyển việc hay không?(Yes/No_có/không)

4 Xác định biến phụ thuộc

4.1 Chọn biến định tính làm biến phụ thuộc

Đối với biến định tính, tôi chọn biến move (biểu hiện cho việc muốn chuyển việc hay không) làm biến phụ thuộc. Xem các yếu tố giới tính, trình độ học vấn, tổng số năm kinh nghiệm, loại hình công ty… có ảnh hưởng như thế nào đến quyết định chuyển việc của nhân viên.

4.2 Chọn các biến độc lập

  • Gender

  • Relevent_experience

  • Education_level

  • Enrolled_university

  • Training_hours

5 Thống kê mô tả cho các biến

5.1 Thống kê mô tả cho 1 biến

5.1.1 Biến Gender

  • Bảng tần số/suất biến Gender
# Bảng tần số biến Gender
table(data$gender)
## 
## Female   Male 
##   5937  13221

Kết quả thống kê cho thấy có 13221 nam và 5937 nữ tham gia vào cuộc khảo sát

# Bảng tần suất biến Gender
table(data$gender)/sum(table(data$gender))
## 
##    Female      Male 
## 0.3098966 0.6901034

Dựa theo kết quả thống kê cho thấy, tỉ lệ nam tham gia khảo sát chiếm 69.01% và nữ chiếm 30.98%

  • Đồ thị cột biến Gender
# *Đồ thị cột biến Gender*
library(ggplot2)
data |> ggplot(aes(gender)) +
  geom_bar(olor = 'blue', fill = 'pink')
## Warning in geom_bar(olor = "blue", fill = "pink"): Ignoring unknown parameters:
## `olor`

### Biến Relevent_experience

  • Bảng tần số/suất biến Relevent_experience
# Bảng tần số biến Relevent_experience
table(data$relevent_experience)
## 
##    no   yes 
##  5366 13792

Theo kết quả thống kê, có 13792 người có kinh nghiệm liên quan đến ngành nghề và 5366 người không có kinh nghiệm liên quan đến ngành nghề.

# Bảng tần suất biến Relevent_experience
table(data$relevent_experience)/sum(table(data$relevent_experience))
## 
##        no       yes 
## 0.2800919 0.7199081

Dựa theo kết quả thống kê những người tham gia khảo sát, tỉ lệ người có kinh nghiệm chiếm 71.99% và người không có kinh nghiệm chiếm 28.00%.

  • Đồ thị biến Relevent_experience theo %
# Đồ thị biến Relevent_experience theo %
data |> ggplot( aes( x = relevent_experience, y= after_stat(count))) + geom_bar(fill='green') + geom_text(aes(label= scales :: percent(after_stat(count/sum(count)),accuracy=.01)), stat = 'count', color= 'black', vjust= -.5) + theme_classic() + xlab('Relevent_experience') + ylab('Tỷ lệ')

5.1.2 Biến Education_level

  • Bảng tần số/suất biến Education_level
# Bảng tần số biến Education_level
table(data$education_level)
## 
##       Graduate    High School        Masters            Phd Primary School 
##          12058           2017           4361            414            308

Dựa theo thống kê về trình độ học vấn, có 308 người thuộc nhóm tốt nghiệp THCS, 2017 người thuộc nhóm tốt nghiệp THPT, 12058 người thuộc nhóm tốt nghiệp đại học, 4361 người có bằng thạc sĩ và 414 người có bằng tiến sĩ.

# Bảng tần suất biến Education_level
table(data$education_level)/sum(table(data$education_level))
## 
##       Graduate    High School        Masters            Phd Primary School 
##     0.62939764     0.10528239     0.22763336     0.02160977     0.01607683

Dựa theo bảng tần suất, % tỉ lệ người tốt nghiệp THCS, tốt nghiệp THPT, tốt nghiệp đại học, thạc sĩ, tiến sĩ lần lượt là: 1.607%, 10.52%, 62.93%, 22.76%, 2.16%.

  • Đồ thị cột biến Education_level
## *Đồ thị cột biến Education_level*
data |> ggplot( aes( x = education_level, y= after_stat(count))) + geom_bar(fill='green') + geom_text(aes(label= scales :: percent(after_stat(count/sum(count)),accuracy=.01)), stat = 'count', color= 'black', vjust= -.5) + theme_classic() + xlab('education_level') + ylab('Tỷ lệ')

5.1.3 Biến Enrolled_university

  • Bảng tần số/suất biến Enrolled_university
# Bảng tần số biến Enrolled_university
table(data$enrolled_university)
## 
## Full time course    no_enrollment Part time course 
##             4143            13817             1198

Dựa theo kết quả thống kê, có 13817 người không đăng ký khóa học đại học, 4143 người đăng kí khóa học đại học toàn thời gian và 1198 đăng ký khóa học bán thời gian.

# Bảng tần suất biến enrolled_university
table(data$enrolled_university)/sum(table(data$enrolled_university))
## 
## Full time course    no_enrollment Part time course 
##       0.21625431       0.72121307       0.06253262

Dựa theo kết quả thống kê, % tỉ lệ người không đăng ký khóa học chiếm 72.12%, người đăng ký khóa học toàn thời gian chiếm 21.62% và người đăng ký khóa học bán thời gian chiếm 6.25%

  • Đồ thị cột biến Enrolled_university
# Đồ thị cột biến Enrolled_university
data |> ggplot( aes( x = enrolled_university, y= after_stat(count))) + geom_bar(fill='green') + geom_text(aes(label= scales :: percent(after_stat(count/sum(count)),accuracy=.01)), stat = 'count', color= 'black', vjust= -.5) + theme_classic() + xlab('enrolled_university') + ylab('Tỷ lệ')

5.1.4 Biến Training_hours

  • Thống kê mô tả biến training_hours
summary(data$training_hours)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   23.00   47.00   65.37   88.00  336.00

Dựa vào kết quả thống kê, cho thấy số giờ đào tạo đã hoàn thành thấp nhất là 1 giờ, cao nhất là 336 giờ, số giờ đào tạo trung bình khoảng 65 giờ và có 50% người hoàn thành 47 giờ đào tạo.

  • Đồ thị cột biến training_hours
# Đồ thị cột biến training_hours
library(ggplot2)
data |> ggplot(aes(training_hours)) +
  geom_bar(olor = 'blue', fill = 'green')
## Warning in geom_bar(olor = "blue", fill = "green"): Ignoring unknown
## parameters: `olor`

5.1.5 Biến move

  • Bảng tần số/suất biến move
# Bảng tần số biến move
table(data$move)
## 
##    no   yes 
## 14381  4777

Dựa theo kết quả thống kê, có 4777 người được khảo sát có ý định chuyển việc, 14381 người không có ý định chuyển việc.

# Bảng tần suất biến move
table(data$move)/sum(table(data$move))
## 
##        no       yes 
## 0.7506525 0.2493475

Số người có ý định muốn chuyển việc chỉ chiếm khoảng 24.93%, số người không có ý định chuyển việc chiếm tói 75.06%

  • Đồ thị cột biến move
# Đồ thị cột biến move
data |> ggplot( aes( x = move, y= after_stat(count))) + geom_bar(fill='yellow') + geom_text(aes(label= scales :: percent(after_stat(count/sum(count)),accuracy=.01)), stat = 'count', color= 'black', vjust= -.5) + theme_classic() + xlab('move') + ylab('Tỷ lệ')

  coord_polar('y')
## <ggproto object: Class CoordPolar, Coord, gg>
##     aspect: function
##     backtransform_range: function
##     clip: on
##     default: FALSE
##     direction: 1
##     distance: function
##     is_free: function
##     is_linear: function
##     labels: function
##     modify_scales: function
##     r: x
##     range: function
##     render_axis_h: function
##     render_axis_v: function
##     render_bg: function
##     render_fg: function
##     setup_data: function
##     setup_layout: function
##     setup_panel_guides: function
##     setup_panel_params: function
##     setup_params: function
##     start: 0
##     theta: y
##     train_panel_guides: function
##     transform: function
##     super:  <ggproto object: Class CoordPolar, Coord, gg>

5.2 Thống kê mô tả cho hai biến

5.2.1 Biến gender và move

  • Bảng ngẫu nhiên 2 chiều
# Bảng ngẫu nhiên 2 chiều
table1 <- table(data$gender, data$move)
addmargins(table1)
##         
##             no   yes   Sum
##   Female  4172  1765  5937
##   Male   10209  3012 13221
##   Sum    14381  4777 19158

Theo kết quả khảo sát cho thấy:

  • Có 1765 nữ có ý định chuyển việc, 3012 nam có ý định chuyển việc.

-Có 4172 nữ không có ý định chuyển việc, 10209 nam không có ý định chuyển việc

library(ggplot2)
# Đồ thị cột hai biến gender và move
ggplot(data, aes(gender, fill = move)) + geom_bar(position = 'dodge')

# Risk ratio
library(DescTools)
RelRisk(table1)
## [1] 0.9100355

Theo kết quả cho thấy, tỉ lệ nữ không có ý định chuyển việc = 91.11% tỉ lệ nam không có ý định chuyển việc

#Risk Ratio
library(epitools)
riskratio(table1, rev='c')
## $data
##         
##           yes    no Total
##   Female 1765  4172  5937
##   Male   3012 10209 13221
##   Total  4777 14381 19158
## 
## $measure
##         risk ratio with 95% C.I.
##          estimate    lower    upper
##   Female 1.000000       NA       NA
##   Male   1.098858 1.078221 1.119891
## 
## $p.value
##         two-sided
##          midp.exact fisher.exact   chi.square
##   Female         NA           NA           NA
##   Male            0 2.944108e-24 8.854871e-25
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
  • Tỉ lệ nam không có ý định chuyển việc gấp 1.098 lần tỉ lệ nữ không có ý định chuyển việc.
# Odds ratio
library(DescTools)
OddsRatio(table1)
## [1] 0.697383

Tỉ lệ người không có ý định chuyển việc so với người có ý định chuyển việc mà là nữ bằng 69.73% tỷ lệ người không có ý định chuyển việc so với người có ý định chuyển việc mà là nam.

5.2.2 Biến Relevent_experience và move

# Bảng ngẫu nhiên 2 chiều
table <- table(data$relevent_experience, data$move)
addmargins(table)
##      
##          no   yes   Sum
##   no   3550  1816  5366
##   yes 10831  2961 13792
##   Sum 14381  4777 19158

Có 3550 người không có kinh nghiệm và không có ý định chuyển việc, 10831 người có kinh nghiệm và không có ý định chuyển việc.

Có 1816 người không có kinh nghiệm và có ý định chuyển việc, 2961 người có kinh nghiệm và có ý định chuyển việc.

# Risk ratio
library(DescTools)
RelRisk(table)
## [1] 0.842435

Tỉ lệ người không có kinh nghiệm, không có ý định chuyển việc = 84.24% tỉ lệ người có kinh nghiệm, không có ý định chuyển việc.

#Risk Ratio
library(epitools)
riskratio(table, rev='c')
## $data
##        
##          yes    no Total
##   no    1816  3550  5366
##   yes   2961 10831 13792
##   Total 4777 14381 19158
## 
## $measure
##      risk ratio with 95% C.I.
##       estimate   lower    upper
##   no  1.000000      NA       NA
##   yes 1.187035 1.16233 1.212266
## 
## $p.value
##      two-sided
##       midp.exact fisher.exact   chi.square
##   no          NA           NA           NA
##   yes          0 4.890032e-68 1.077342e-70
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Tỉ lệ người có kinh nghiệm, không có ý định chuyển việc gấp 1.187 lần người không có kinh nghiệm, không có ý định chuyển việc.

# Odd ratio
library(DescTools)
OddsRatio(table)
## [1] 0.5344196

Tỉ lệ người không có ý định chuyển việc so với người có ý định chuyển việc mà có kinh nghiệm làm việc = 53.44% tỉ lệ người không có ý định chuyển việc so với người có ý định chuyển việc mà có kinh nghiệm làm việc.

# Đồ thị cột hai biến relevent_experience và move
library(ggplot2)
ggplot(data, aes(relevent_experience, fill = move)) + geom_bar(position = 'dodge')

### Biến education_level và move

# Bảng ngẫu nhiên 2 chiều
table3 <- table(data$move, data$education_level)
table3
##      
##       Graduate High School Masters  Phd Primary School
##   no      8709        1623    3426  356            267
##   yes     3349         394     935   58             41

Theo kết quả thống kê cho thấy:

Có 8709 nhân viên có trình độ đại học không có ý định chuyển việc, 3349 nhân viên có trình độ đại học có ý định chuyển việc.

Có 1623 nhân viên tốt nghiệp THPT không có ý định chuyển việc, 394 nhân viên tót nghiệp THPT có ý định chuyển việc.

Có 1623 nhân viên có trình độ thạc sĩ không có ý định chuyển việc, 935 nhân viên có trình độ thạc sĩ có ý định chuyển việc.

Có 356 nhân viên có trình độ thạc sĩ không có ý định chuyển việc, 58 nhân viên có trình độ thạc sĩ có ý định chuyển việc.

Có 267 nhân viên tốt nghiệp THCS không có ý định chuyển việc, 41 nhân viên tốt nghiệp THCS có ý định chuyển việc.

# Đồ thị cột 2 biến education_levels và move
library(ggplot2)
ggplot(data, aes(education_level, fill = move)) + geom_bar(position = 'dodge')

5.2.3 Biến move và biến enroll_university

# Bảng ngẫu nhiên hai chiều biến move và biến enroll_university
table4 <- table(data$move, data$enrolled_university)
table4
##      
##       Full time course no_enrollment Part time course
##   no              2589         10896              896
##   yes             1554          2921              302

Theo kết quả thống kê, ta thấy:

Có 2589 nhân viên đăng ký khóa học toàn thời gian không có ý định chuyển việc, 1554 nhân viên đăng ký khóa học toàn thời gian có ý định chuyển việc.

10896 nhân viên không đăng ký khóa học và cũng không có ý định chuyển việc, 2921 nhân viên không đăng ký khóa học có ý định chuyển việc.

894 nhân viên đăng ký khóa học bán thời gian không có ý định chuyển việc, 302 nhân viên đăng ký khóa học bán thời gian có ý định chuyển việc.

# Đồ thị cột 2 biến enrolled_unversity và move
ggplot(data, aes(enrolled_university, fill = move)) + geom_bar(position = 'dodge')

### Biến move và biến training_hours

# Đồ thị hai biến move và biến training_hours
ggplot(data, aes(training_hours, fill = move)) + geom_bar(position = 'dodge')

Thông qua đồ thị ta thấy, số nhân viên hoàn thành số giờ đào tạo càng cao thì có xu hướng không có ý định chuyển việc làm.

5.3 Thống kê suy diễn cho các biến định tính

5.3.1 Kiểm định tính độc lập cho hai biến

# Biến move và gender
chisq.test(table(data$gender, data$move))
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table(data$gender, data$move)
## X-squared = 105.27, df = 1, p-value < 2.2e-16

Dựa theo kết quả phân tích,ta thấy giới tính có ảnh hưởng đến ý định muốn chuyển việc của nhân viên.

# Biến move và relevent_experience
chisq.test(table(data$relevent_experience, data$move))
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table(data$relevent_experience, data$move)
## X-squared = 315.34, df = 1, p-value < 2.2e-16

Dựa theo kết quả phân tích, việc có kinh nghiệm hay không có ảnh hưởng đến ý định muốn chuyển việc của nhân viên.

# Biến move và education_level
chisq.test(table(data$move, data$education_level))
## 
##  Pearson's Chi-squared test
## 
## data:  table(data$move, data$education_level)
## X-squared = 160.45, df = 4, p-value < 2.2e-16

Dựa theo kết quả phân tích, trình độ học vấn có ảnh hưởng đến ý định muốn chuyển việc của nhân viên.

# Biến move và enrolled_university
chisq.test(table(data$move, data$enrolled_university))
## 
##  Pearson's Chi-squared test
## 
## data:  table(data$move, data$enrolled_university)
## X-squared = 456.29, df = 2, p-value < 2.2e-16

Dựa theo kết quả phân tích, loại khóa học đăng kí có ảnh hưởng đến ý định muốn chuyển việc của nhân viên.

Dựa theo kết quả phân tích, loại công ty hiện tại đang làm việc có ảnh hưởng đến ý định muốn chuyển việc của nhân viên.

5.3.2 Khoảng ước lượng cho tỉ lệ

Ước lượng xem tỷ lệ số ứng viên đã hoàn thành số giờ đào tạo có nhiều hơn 50 giờ không đồng thời kiểm định xem tỉ lệ(%) ứng viên đã hoàn thành 100 giờ đào tạo có phải là 40% hay không?

Kiểm định giả thuyết: H0 = 0.4

x <- data[data$training_hours > 100,]
prop.test(length(x$training_hours), length(data$training_hours), p = 0.4)
## 
##  1-sample proportions test with continuity correction
## 
## data:  length(x$training_hours) out of length(data$training_hours), null probability 0.4
## X-squared = 3131.8, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.4
## 95 percent confidence interval:
##  0.1962500 0.2076701
## sample estimates:
##      p 
## 0.2019

Với độ tin cậy 95%, ước lượng tỉ lệ ứng viên đã hoàn thành 100 giờ đào tạo nằm trong khoảng 0.196 đến 0.206

Ta thấy, p_value<0.4, bác bỏ H0, vậy số ứng viên đã hoàn thành 100 giờ đào tạo không chiếm 40% với mức ý nghĩa 5%

6 Ước lượng mô hình hồi quy

Chọn biến move ( có ý định chuyển việc hay không) phụ thuộc vào biến Gender, Relevent_experience, Education_level, enrolled_university, Training_hours.

6.1 Mô hình hồi quy logit

mh1 <- glm(factor(move) ~ data$gender + data$relevent_experience + data$education_level  + data$training_hours +data$enrolled_university, family = binomial(link = 'logit'), data = data)
summary(mh1)
## 
## Call:
## glm(formula = factor(move) ~ data$gender + data$relevent_experience + 
##     data$education_level + data$training_hours + data$enrolled_university, 
##     family = binomial(link = "logit"), data = data)
## 
## Coefficients:
##                                            Estimate Std. Error z value Pr(>|z|)
## (Intercept)                               0.1283683  0.0483215   2.657  0.00789
## data$genderMale                          -0.2592190  0.0362892  -7.143 9.12e-13
## data$relevent_experienceyes              -0.5326394  0.0408401 -13.042  < 2e-16
## data$education_levelHigh School          -0.8447169  0.0633609 -13.332  < 2e-16
## data$education_levelMasters              -0.2670739  0.0430300  -6.207 5.41e-10
## data$education_levelPhd                  -0.8482918  0.1448793  -5.855 4.77e-09
## data$education_levelPrimary School       -1.1720690  0.1719580  -6.816 9.36e-12
## data$training_hours                      -0.0008172  0.0002913  -2.805  0.00503
## data$enrolled_universityno_enrollment    -0.6290671  0.0428977 -14.664  < 2e-16
## data$enrolled_universityPart time course -0.4837347  0.0758186  -6.380 1.77e-10
##                                             
## (Intercept)                              ** 
## data$genderMale                          ***
## data$relevent_experienceyes              ***
## data$education_levelHigh School          ***
## data$education_levelMasters              ***
## data$education_levelPhd                  ***
## data$education_levelPrimary School       ***
## data$training_hours                      ** 
## data$enrolled_universityno_enrollment    ***
## data$enrolled_universityPart time course ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 21519  on 19157  degrees of freedom
## Residual deviance: 20644  on 19148  degrees of freedom
## AIC: 20664
## 
## Number of Fisher Scoring iterations: 4

6.2 Mô hình hồi quy probit

mh2 <- glm(factor(move) ~  data$last_new_job , family = binomial(link = 'cloglog'), data = data)
summary(mh2)
## 
## Call:
## glm(formula = factor(move) ~ data$last_new_job, family = binomial(link = "cloglog"), 
##     data = data)
## 
## Coefficients:
##                           Estimate Std. Error z value Pr(>|z|)    
## (Intercept)               -1.60273    0.04089 -39.192  < 2e-16 ***
## data$last_new_job1         0.42162    0.04633   9.100  < 2e-16 ***
## data$last_new_job2         0.31629    0.05577   5.672 1.41e-08 ***
## data$last_new_job3         0.23878    0.07762   3.076  0.00210 ** 
## data$last_new_job4         0.21836    0.07798   2.800  0.00511 ** 
## data$last_new_jobGraduate  0.81012    0.09098   8.904  < 2e-16 ***
## data$last_new_jobnever     0.57734    0.05514  10.471  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 21519  on 19157  degrees of freedom
## Residual deviance: 21355  on 19151  degrees of freedom
## AIC: 21369
## 
## Number of Fisher Scoring iterations: 5

6.3 Mô hình hồi quy cloglog

mh3 <- glm(factor(move) ~ data$gender + data$relevent_experience + data$education_level  + data$training_hours +data$enrolled_university, family = binomial(link = 'cloglog'), data = data)
summary(mh3)
## 
## Call:
## glm(formula = factor(move) ~ data$gender + data$relevent_experience + 
##     data$education_level + data$training_hours + data$enrolled_university, 
##     family = binomial(link = "cloglog"), data = data)
## 
## Coefficients:
##                                            Estimate Std. Error z value Pr(>|z|)
## (Intercept)                              -0.2377925  0.0379362  -6.268 3.65e-10
## data$genderMale                          -0.2141232  0.0305310  -7.013 2.33e-12
## data$relevent_experienceyes              -0.4434026  0.0339766 -13.050  < 2e-16
## data$education_levelHigh School          -0.7110931  0.0549930 -12.931  < 2e-16
## data$education_levelMasters              -0.2264185  0.0373568  -6.061 1.35e-09
## data$education_levelPhd                  -0.7478528  0.1331452  -5.617 1.95e-08
## data$education_levelPrimary School       -1.0134612  0.1580112  -6.414 1.42e-10
## data$training_hours                      -0.0007162  0.0002506  -2.858  0.00426
## data$enrolled_universityno_enrollment    -0.5181849  0.0353741 -14.649  < 2e-16
## data$enrolled_universityPart time course -0.3929435  0.0639740  -6.142 8.14e-10
##                                             
## (Intercept)                              ***
## data$genderMale                          ***
## data$relevent_experienceyes              ***
## data$education_levelHigh School          ***
## data$education_levelMasters              ***
## data$education_levelPhd                  ***
## data$education_levelPrimary School       ***
## data$training_hours                      ** 
## data$enrolled_universityno_enrollment    ***
## data$enrolled_universityPart time course ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 21519  on 19157  degrees of freedom
## Residual deviance: 20650  on 19148  degrees of freedom
## AIC: 20670
## 
## Number of Fisher Scoring iterations: 5

6.4 Các tiêu chí lựa chọn mô hình

6.4.1 Tiêu Chí AIC

Theo kết quả hồi quy trên, ta có:

AIC(logit) = 20664

AIC(probit) = 20662

AIC(cloglog) = 20670

Vậy mô hình progit có AIC thấp nhất nên phù hợp nhất.

6.4.2 Deviance

Deviance(logit)= 20644

Deviance(progit)= 20642

Deviance(cloglog)= 20650

Vậy mô hình progit có deviance thấp nhất nên phù hợp nhất.

6.4.3 Brier Score

library(DescTools)
BrierScore(mh1)
## [1] 0.1783755
BrierScore(mh2)
## [1] 0.1855907
BrierScore(mh3)
## [1] 0.1784412

Vậy mô hình probit có BrierScore thấp nhất nên phù hợp nhất.

library(caret)
## Loading required package: lattice
## 
## Attaching package: 'caret'
## The following objects are masked from 'package:DescTools':
## 
##     MAE, RMSE
predictions <- predict(mh1,  type = "response")
predicted_classes <- ifelse(predictions >= 0.5, "1", "0")  
predictions1<- factor(predicted_classes, levels = c("0","1"))
actual<- factor(mh1$data$move, labels = c("0","1"))
confusionMatrix(table(predictions1, actual))
## Confusion Matrix and Statistics
## 
##             actual
## predictions1     0     1
##            0 14087  4502
##            1   294   275
##                                           
##                Accuracy : 0.7497          
##                  95% CI : (0.7435, 0.7558)
##     No Information Rate : 0.7507          
##     P-Value [Acc > NIR] : 0.6281          
##                                           
##                   Kappa : 0.0526          
##                                           
##  Mcnemar's Test P-Value : <2e-16          
##                                           
##             Sensitivity : 0.97956         
##             Specificity : 0.05757         
##          Pos Pred Value : 0.75781         
##          Neg Pred Value : 0.48330         
##              Prevalence : 0.75065         
##          Detection Rate : 0.73531         
##    Detection Prevalence : 0.97030         
##       Balanced Accuracy : 0.51856         
##                                           
##        'Positive' Class : 0               
## 

Mô hình logit có độ chính xác toàn thể là 74.97%, độ nhạy là 97.956%.

library(caret)
predictions <- predict(mh2,  type = "response")
predicted_classes <- ifelse(predictions >= 0.5, "1", "0")  
predictions1<- factor(predicted_classes, levels = c("0","1"))
actual<- factor(mh2$data$move, labels = c("0","1"))
confusionMatrix(table(predictions1, actual))
## Confusion Matrix and Statistics
## 
##             actual
## predictions1     0     1
##            0 14381  4777
##            1     0     0
##                                           
##                Accuracy : 0.7507          
##                  95% CI : (0.7445, 0.7568)
##     No Information Rate : 0.7507          
##     P-Value [Acc > NIR] : 0.5039          
##                                           
##                   Kappa : 0               
##                                           
##  Mcnemar's Test P-Value : <2e-16          
##                                           
##             Sensitivity : 1.0000          
##             Specificity : 0.0000          
##          Pos Pred Value : 0.7507          
##          Neg Pred Value :    NaN          
##              Prevalence : 0.7507          
##          Detection Rate : 0.7507          
##    Detection Prevalence : 1.0000          
##       Balanced Accuracy : 0.5000          
##                                           
##        'Positive' Class : 0               
## 

Mô hình probit có độ chính xác toàn thể là 74.98%, độ nhạy là 98.060%

library(caret)
predictions <- predict(mh3,  type = "response")
predicted_classes <- ifelse(predictions >= 0.5, "1", "0")  
predictions1<- factor(predicted_classes, levels = c("0","1"))
actual<- factor(mh3$data$move, labels = c("0","1"))
confusionMatrix(table(predictions1, actual))
## Confusion Matrix and Statistics
## 
##             actual
## predictions1     0     1
##            0 14081  4497
##            1   300   280
##                                           
##                Accuracy : 0.7496          
##                  95% CI : (0.7434, 0.7557)
##     No Information Rate : 0.7507          
##     P-Value [Acc > NIR] : 0.6344          
##                                           
##                   Kappa : 0.0534          
##                                           
##  Mcnemar's Test P-Value : <2e-16          
##                                           
##             Sensitivity : 0.97914         
##             Specificity : 0.05861         
##          Pos Pred Value : 0.75794         
##          Neg Pred Value : 0.48276         
##              Prevalence : 0.75065         
##          Detection Rate : 0.73499         
##    Detection Prevalence : 0.96973         
##       Balanced Accuracy : 0.51888         
##                                           
##        'Positive' Class : 0               
## 

Mô hình cloglog có độ chính xác toàn thể = 74.96%, độ nhạy là 97.91%

Kết luận: Dựa theo 4 tiêu chuẩn trên, trong ba mô hình ta thấy mô hình probit được chọ nhiều nhất và cũng là mô hình sở hữu có độ chính xác toàn thể cao nhất = 74.98%, độ nhạy là 98.060% rất cao. Cho thấy đây là một mô hình dự báo tốt nên ta chọn mô hình này

7 Kết quả mô hình hồi quy probit

mh2 <- glm(factor(move) ~ data$gender + data$relevent_experience + data$education_level  + data$training_hours +data$enrolled_university, family = binomial(link = 'probit'), data = data)
summary(mh2)
## 
## Call:
## glm(formula = factor(move) ~ data$gender + data$relevent_experience + 
##     data$education_level + data$training_hours + data$enrolled_university, 
##     family = binomial(link = "probit"), data = data)
## 
## Coefficients:
##                                            Estimate Std. Error z value Pr(>|z|)
## (Intercept)                               0.0630141  0.0292667   2.153  0.03131
## data$genderMale                          -0.1541077  0.0214970  -7.169 7.57e-13
## data$relevent_experienceyes              -0.3167097  0.0244606 -12.948  < 2e-16
## data$education_levelHigh School          -0.4964851  0.0363476 -13.659  < 2e-16
## data$education_levelMasters              -0.1580664  0.0249716  -6.330 2.45e-10
## data$education_levelPhd                  -0.4799813  0.0786868  -6.100 1.06e-09
## data$education_levelPrimary School       -0.6786222  0.0931791  -7.283 3.27e-13
## data$training_hours                      -0.0004754  0.0001694  -2.806  0.00502
## data$enrolled_universityno_enrollment    -0.3790095  0.0258615 -14.655  < 2e-16
## data$enrolled_universityPart time course -0.2909508  0.0450412  -6.460 1.05e-10
##                                             
## (Intercept)                              *  
## data$genderMale                          ***
## data$relevent_experienceyes              ***
## data$education_levelHigh School          ***
## data$education_levelMasters              ***
## data$education_levelPhd                  ***
## data$education_levelPrimary School       ***
## data$training_hours                      ** 
## data$enrolled_universityno_enrollment    ***
## data$enrolled_universityPart time course ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 21519  on 19157  degrees of freedom
## Residual deviance: 20642  on 19148  degrees of freedom
## AIC: 20662
## 
## Number of Fisher Scoring iterations: 4

7.1 Giải thích kết quả của mô hình

Dựa theo kết quả hồi quy mô hình probit cho thấy, các biến đưa vào mô hình hồi quy để phân tích chỉ có 9 biến có ý nghĩa thống kê:

  • Biến gender: giới tính nam

  • Biến relevent_experience: có kinh nghiêm

  • Biến education_level: trình độ THPT

  • Biến education_level: trình độ thạc sĩ

  • Biến education_levelL trình độ tiến sĩ

  • Biến education_level: trình độ THCS

  • Biến training_hours

  • Biến enroll_university: không đăng kí

  • Biến enroll_university: đăng ký khóa học bán thời gian

Hệ số biến gender = -0.1580 cho thấy nam giới có tỷ lệ chuyển việc ít hơn so với nữ giới.

Hệ số biến relevent_experience = -0.31670 cho thấy tỉ lệ chuyển việc người có kinh nghiệm ít hơn người không có kinh nghiệm

Hệ số biến enrolled_university = -0.379 cho thấy tỉ lệ người không đăng ký khóa học co ý định chuyển việc thấp hơn người có đăng ký.

8 KẾT LUẬN VÀ KHUYẾN NGHỊ

8.1 Kết luận

Chuyển việc liên tục hiện đang là tình trạng phổ biến với người trẻ hiện nay để có nhiều trải nghiệm khác nhau. Bên cạnh đó, có rất nhiều lý do dẫn đến việc nhân sự quyết định tìm kiếm môi trường khác.

Qua các dữ liệu thu thập từ cuộc khảo sát và phân tích cho thấy các yếu tố về giới tính, kinh nghiệm làm việc, trình độ học vấn đều có ảnh hưởng đến quyết định chuyển việc của nhân viên.

Tỉ lệ nữ có ý định chuyển việc chiếm xấp sỉ 30% và tỷ lệ nam chiếm gần 22%, cho thấy phần lớn nữ có xu hướng chuyển việc nhiều hơn nam. Tỉ lệ người không có kinh nghiệm và có ý định chuyển việc chiếm khoảng 33%, người có kinh nghiệm và có ý định chuyển việc chiếm khoảng 21%. Qua đó cho thấy người không có kinh nghiệm có xu hướng quyết định chuyển việc nhiều hơn người đã có kinh nghiệm.

Về trình độ học vấn, số lượng nhân viên thuộc nhóm trình độ đại học có ý định chuyển việc nhiều nhất và nhóm thấp nhất là nhóm có trình độ THCS.

8.2 Khuyến nghị

Hiện nay, tình trạng thất nghiệp đang diễn ra phổ biến vì nền kinh tế Việt Nam đang đối mặt với khủng hoảng, suy thoái, các công ty và doanh nghiệp đã tiến hành cắt giảm nhân sự ở mọi lĩnh vực khiến cho nhiều người rơi vào thất nghiệp. Vì vậy, việc chuyển việc trong thời gian này là vấn đề cần cân nhắc để tránh trường hợp khi chuyển việc lại không phù hợp với công việc mới, không tìm được vị trí phù hợp với năng lực. Người đi làm nên tìm hiểu rõ về các vị trí, doanh nghiệp, các chế độ đãi ngộ cũng như tình hình nhân sự tại nơi mà mình dự tính sẽ chuyển đến. Từ đó lựa chọn và đưa ra quyết định xem có nên chuyển việc hay không trong tình trạng khan hiếm việc làm như hiện nay.