Dữ liệu sử dụng trong nghiên cứu là dữ liệu về nhân sự để đánh giá quy trình sàng lọc ứng viên

Functional competency test: điểm kiểm tra năng lực(FCT)

top1_skills_score: điểm kiểm tra năng lực thứ nhất (SC1)

top2_skills_score: điểm kiểm tra năng lực thứ hai(SC2)

top3_skills_score: điểm kiểm tra năng lực thứ ba(SC3)

HR behavior test: điểm kiểm tra hành vi nhân sự (HRBT)

top1_behavior_skill_score: điểm kiểm tra hành vi ứng xử thứ nhất(BSC1)

top2_behavior_skill_score: điểm kiểm tra hành vi ứng xử thứ hai(BSC2)

library(PerformanceAnalytics)
## Warning: package 'PerformanceAnalytics' was built under R version 4.2.3
## Loading required package: xts
## Warning: package 'xts' was built under R version 4.2.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
## 
##     legend
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
dataset <- read_excel("C:/Users/dell/Downloads/archive (2)/dataset.xlsx")
mdata<-dataset[,c(2:8)]
names(mdata)<-c("FCT","SC1","SC2","SC3","HRBT","BSC1","BSC2")
head(mdata,6)
## # A tibble: 6 × 7
##     FCT   SC1   SC2   SC3   HRBT   BSC1   BSC2
##   <dbl> <dbl> <dbl> <dbl>  <dbl>  <dbl>  <dbl>
## 1 0.749 0.778   0.7   0.8 0.769  0.932  0.662 
## 2 0.491 0.778   0.3   0.4 0.154  0.352  0.132 
## 3 0.460 0.444   0.3   0.3 0.0513 0.0523 0.0898
## 4 0.507 0.556   0.4   0.5 0.385  0.310  0.290 
## 5 0.662 0.667   0.7   0.5 0.462  0.498  0.398 
## 6 0.585 1       0.8   0.8 0.872  0.759  0.821

Dùng lệnh res() để hiển thị hệ số tương quan giữa các cặp biến. Sau đó dùng round() để làm tròn đến chữ số thập phân thứ 3. Nếu muốn làm tròn đến chữ số thập phân thứ 4, ta có thể thay số 3 thành 4.

res <- cor(mdata)
round(res, 3)
##        FCT   SC1   SC2   SC3  HRBT  BSC1  BSC2
## FCT  1.000 0.448 0.337 0.425 0.540 0.710 0.733
## SC1  0.448 1.000 0.644 0.675 0.704 0.647 0.644
## SC2  0.337 0.644 1.000 0.630 0.722 0.616 0.646
## SC3  0.425 0.675 0.630 1.000 0.729 0.670 0.679
## HRBT 0.540 0.704 0.722 0.729 1.000 0.890 0.883
## BSC1 0.710 0.647 0.616 0.670 0.890 1.000 0.866
## BSC2 0.733 0.644 0.646 0.679 0.883 0.866 1.000

Nhìn vào kết quả, ta thấy mức độ tương quan giữa FCT và SC1 là 0.448 > 0, vậy thì 2 biến này có mối quan hệ thuận, nếu biến FCT tăng thì SC1 cũng tăng. Tương tự cho các cặp biến còn lại.

Lệnh rcorr() trong package Hmisc tính giá trị p của ma trận hệ số tương quan như Pearson hoặc là Spearman. Kết quả trả về bao gồm ma trận hệ số tương quan và giá trị p Của mối tương quan của các cặp biến tỏng dữ liệu.

Nếu chúng ta chỉ muốn kết quả hiển thị hoặc là hệ số tương quan hoặc là p_value thì có thể làm như sau:

library(Hmisc)
## Warning: package 'Hmisc' was built under R version 4.2.3
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
## 
##     format.pval, units
res2<-rcorr(as.matrix(mdata))
res2 
##       FCT  SC1  SC2  SC3 HRBT BSC1 BSC2
## FCT  1.00 0.45 0.34 0.42 0.54 0.71 0.73
## SC1  0.45 1.00 0.64 0.67 0.70 0.65 0.64
## SC2  0.34 0.64 1.00 0.63 0.72 0.62 0.65
## SC3  0.42 0.67 0.63 1.00 0.73 0.67 0.68
## HRBT 0.54 0.70 0.72 0.73 1.00 0.89 0.88
## BSC1 0.71 0.65 0.62 0.67 0.89 1.00 0.87
## BSC2 0.73 0.64 0.65 0.68 0.88 0.87 1.00
## 
## n= 300 
## 
## 
## P
##      FCT SC1 SC2 SC3 HRBT BSC1 BSC2
## FCT       0   0   0   0    0    0  
## SC1   0       0   0   0    0    0  
## SC2   0   0       0   0    0    0  
## SC3   0   0   0       0    0    0  
## HRBT  0   0   0   0        0    0  
## BSC1  0   0   0   0   0         0  
## BSC2  0   0   0   0   0    0

Hệ số tương quan Pearson

res2$r
##            FCT       SC1       SC2       SC3      HRBT      BSC1      BSC2
## FCT  1.0000000 0.4481558 0.3366250 0.4248624 0.5404348 0.7103810 0.7334907
## SC1  0.4481558 1.0000000 0.6435294 0.6749670 0.7041873 0.6468044 0.6437735
## SC2  0.3366250 0.6435294 1.0000000 0.6303625 0.7223210 0.6156782 0.6455438
## SC3  0.4248624 0.6749670 0.6303625 1.0000000 0.7286010 0.6699226 0.6787113
## HRBT 0.5404348 0.7041873 0.7223210 0.7286010 1.0000000 0.8903818 0.8831503
## BSC1 0.7103810 0.6468044 0.6156782 0.6699226 0.8903818 1.0000000 0.8662541
## BSC2 0.7334907 0.6437735 0.6455438 0.6787113 0.8831503 0.8662541 1.0000000

Trong đó: Hệ số tương quan có giá trị từ -1.0 đến 1.0. Kết quả được tính ra lớn hơn 1.0 hoặc nhỏ hơn -1 có nghĩa là có lỗi trong phép đo tương quan.

• Hệ số tương quan có giá trị âm cho thấy hai biến có mối quan hệ nghịch biến hoặc tương quan âm (nghịch biến tuyệt đối khi giá trị bằng -1)

• Hệ số tương quan có giá trị dương cho thấy mối quan hệ đồng biến hoặc tương quan dương (đồng biến tuyệt đối khi giá trị bằng 1)

• Tương quan bằng 0 cho hai biến độc lập với nhau

#Tính p_value
res2$P
##               FCT          SC1          SC2          SC3 HRBT BSC1 BSC2
## FCT            NA 4.440892e-16 2.208929e-09 1.421085e-14    0    0    0
## SC1  4.440892e-16           NA 0.000000e+00 0.000000e+00    0    0    0
## SC2  2.208929e-09 0.000000e+00           NA 0.000000e+00    0    0    0
## SC3  1.421085e-14 0.000000e+00 0.000000e+00           NA    0    0    0
## HRBT 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00   NA    0    0
## BSC1 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00    0   NA    0
## BSC2 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00    0    0   NA

Phần này cung cấp một hàm đơn giản để định dạng ma trận tương quan vào bảng với 4 cột chứa:

Cột 1 : tên hàng

Cột 2 : tên cột

Cột 3 : các hệ số tương quan

Cột 4 : các giá trị p của các tương quan

flattenCorrMatrix <- function(cormat, pmat) {
  ut <- upper.tri(cormat)
  data.frame(
    row = rownames(cormat)[row(cormat)[ut]],
    column = rownames(cormat)[col(cormat)[ut]],
    cor  =(cormat)[ut],
    p = pmat[ut]
    )
}
flattenCorrMatrix(res2$r, res2$P)
##     row column       cor            p
## 1   FCT    SC1 0.4481558 4.440892e-16
## 2   FCT    SC2 0.3366250 2.208929e-09
## 3   SC1    SC2 0.6435294 0.000000e+00
## 4   FCT    SC3 0.4248624 1.421085e-14
## 5   SC1    SC3 0.6749670 0.000000e+00
## 6   SC2    SC3 0.6303625 0.000000e+00
## 7   FCT   HRBT 0.5404348 0.000000e+00
## 8   SC1   HRBT 0.7041873 0.000000e+00
## 9   SC2   HRBT 0.7223210 0.000000e+00
## 10  SC3   HRBT 0.7286010 0.000000e+00
## 11  FCT   BSC1 0.7103810 0.000000e+00
## 12  SC1   BSC1 0.6468044 0.000000e+00
## 13  SC2   BSC1 0.6156782 0.000000e+00
## 14  SC3   BSC1 0.6699226 0.000000e+00
## 15 HRBT   BSC1 0.8903818 0.000000e+00
## 16  FCT   BSC2 0.7334907 0.000000e+00
## 17  SC1   BSC2 0.6437735 0.000000e+00
## 18  SC2   BSC2 0.6455438 0.000000e+00
## 19  SC3   BSC2 0.6787113 0.000000e+00
## 20 HRBT   BSC2 0.8831503 0.000000e+00
## 21 BSC1   BSC2 0.8662541 0.000000e+00
symnum(res, abbr.colnames = FALSE)
##      FCT SC1 SC2 SC3 HRBT BSC1 BSC2
## FCT  1                             
## SC1  .   1                         
## SC2  .   ,   1                     
## SC3  .   ,   ,   1                 
## HRBT .   ,   ,   ,   1             
## BSC1 ,   ,   ,   ,   +    1        
## BSC2 ,   ,   ,   ,   +    +    1   
## attr(,"legend")
## [1] 0 ' ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.2.3
## corrplot 0.92 loaded
corrplot(res, type = "upper", order = "hclust", 
         tl.col = "black", tl.srt = 45)

Functional competency test: điểm kiểm tra năng lực (FCT)

top1_skills_score: điểm kiểm tra năng lực thứ nhất (SC1)

top2_skills_score: điểm kiểm tra năng lực thứ hai (SC2)

top3_skills_score: điểm kiểm tra năng lực thứ ba (SC3)

HR behavior test: điểm kiểm tra hành vi nhân sự (HRBT)

top1_behavior_skill_score: điểm kiểm tra hành vi ứng xử thứ nhất (BSC1)

top2_behavior_skill_score: điểm kiểm tra hành vi ứng xử thứ hai (BSC2)

Biểu đồ tương quan (correlation plot) giúp chúng ta có thể sự tương quan giữa điểm kiểm tra năng lực (FCT) và điểm kiểm tra hành vi nhân sự (HRBT)

Biểu đồ cho ta thấy 2 yếu tố trên có sự tương quan cực kì chặt chẽ với nhau, hệ số hồi quy luôn dương.

Vì không có các cặp liên kết yếu nên ta sẽ chia như sau:

< 0.4 : Liên kết yếu: FCS-SC2, FCS-SC1, FCS-SC3

0.6 : Liên kết vừa: còn lại

0.8 : liên kết mạnh: BSC2-BCS, BSC2-BSC1, BSC-BSC1

chart.Correlation(mdata, histogram=TRUE, pch=19)
## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

Đường chéo của biểu đồ thể hiện của từng biến

Nửa dưới đường chéo là các ô đồ thị dạng scatter thể hiện sự tương quan với nhau của từng biến, ví dụ:

Nửa trên đường chéo là các hệ số tương quan và mức ý nghĩa thể hiện giá trị (value), ví dụ:

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(ggcorrplot)
## Warning: package 'ggcorrplot' was built under R version 4.2.3
df <- dplyr::select_if(mdata, is.numeric)
r <- cor(df, use="complete.obs")
ggcorrplot(r)

Tương tự như các biểu đồ trên thì độ thì này cũng thể hiện sự tương quan của các biến màu sắc càng đậm thì sự tương quan càng mạnh và ngược lại màu sắc càng nhạt thì sự tương quan càng yếu.