library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.1
library(scales)
## Warning: package 'scales' was built under R version 4.3.1
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.1
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.1
## Warning: package 'tidyr' was built under R version 4.3.1
## Warning: package 'readr' was built under R version 4.3.1
## Warning: package 'purrr' was built under R version 4.3.1
## Warning: package 'forcats' was built under R version 4.3.1
## Warning: package 'lubridate' was built under R version 4.3.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ✔ readr 2.1.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ readr::col_factor() masks scales::col_factor()
## ✖ purrr::discard() masks scales::discard()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyselect)
## Warning: package 'tidyselect' was built under R version 4.3.1
library(epitools)
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.1
library(caTools)
## Warning: package 'caTools' was built under R version 4.3.1
library(readxl)
PTDLDT <- read_excel("C:/Users/Abc/Downloads/PTDLDT.xlsx")
View(PTDLDT)
PTDLDT
## # A tibble: 607 × 6
## experience_level employment_type salary salary_in_usd remote_ratio
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 MI FT 70000 79833 0
## 2 SE FT 260000 260000 0
## 3 SE FT 85000 109024 50
## 4 MI FT 20000 20000 0
## 5 SE FT 150000 150000 50
## 6 EN FT 72000 72000 100
## 7 SE FT 190000 190000 100
## 8 MI FT 11000000 35735 50
## 9 MI FT 135000 135000 100
## 10 SE FT 125000 125000 50
## # ℹ 597 more rows
## # ℹ 1 more variable: company_size <chr>
salary_in_usd<-PTDLDT$salary_in_usd
experience_level<-PTDLDT$experience_level
employment_type<-PTDLDT$employment_type
company_size<-PTDLDT$company_size
salary<-PTDLDT$salary
remote_ratio<-PTDLDT$remote_ratio
Câu 5: Chạy mô hình hồi quy của các biến định tính trong câu số 2, thực hiện các bài toán liên quan.
Biến phụ thuộc: salary_in_usd (Mức lương theo USD) nhận hai giá trị là Thấp/Cao
Các biến độc lập: experience_level, employment_type, company_size, salary, remote_ratio
salary_in_usd <- cut(PTDLDT$salary_in_usd, breaks = c(2859,90000,600000), labels=c("Thấp","Cao"))
table(salary_in_usd)
## salary_in_usd
## Thấp Cao
## 253 353
salary <- cut(PTDLDT$salary, breaks = c(4000,150000,30400000), labels=c("khong tot","tot"))
table(salary)
## salary
## khong tot tot
## 418 187
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
mh1 <- glm(data = k, formula = factor(salary_in_usd) ~ PTDLDT$experience_level + PTDLDT$employment_type + PTDLDT$company_size + PTDLDT$remote_ratio + salary, family = binomial(link = "logit"))
levels(factor(salary_in_usd))
## [1] "Thấp" "Cao"
summary(mh1)
##
## Call:
## glm(formula = factor(salary_in_usd) ~ PTDLDT$experience_level +
## PTDLDT$employment_type + PTDLDT$company_size + PTDLDT$remote_ratio +
## salary, family = binomial(link = "logit"), data = k)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.096694 1.258840 -0.077 0.93877
## PTDLDT$experience_levelEX 2.590469 0.632466 4.096 4.21e-05 ***
## PTDLDT$experience_levelMI 0.732791 0.320808 2.284 0.02236 *
## PTDLDT$experience_levelSE 2.560422 0.330320 7.751 9.09e-15 ***
## PTDLDT$employment_typeFL -2.385714 1.719335 -1.388 0.16527
## PTDLDT$employment_typeFT -1.582850 1.245680 -1.271 0.20385
## PTDLDT$employment_typePT -2.820820 1.652990 -1.706 0.08792 .
## PTDLDT$company_sizeM 0.285606 0.223998 1.275 0.20230
## PTDLDT$company_sizeS -0.938693 0.335729 -2.796 0.00517 **
## PTDLDT$remote_ratio 0.003770 0.002446 1.542 0.12315
## salarytot 1.019811 0.238360 4.278 1.88e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 820.01 on 603 degrees of freedom
## Residual deviance: 605.91 on 593 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 627.91
##
## Number of Fisher Scoring iterations: 4
Cặp giả thuyết - đối thuyết:
H0: Mô hình không phù hợp với dữ liệu điều tra
H1: Mô hình phù hợp với dữ liệu điều tra
lr_test1 <- anova(mh1, test = "Chisq")
p_value1 <- lr_test1$Pr[2]
p_value1
## [1] 6.357698e-37
Giả thuyết H0: mô hình không phù hợp Với P-value1 = Prob(LR) = 6.357698e-37 < 5% bác bỏ giả thuyết H0 nên mô hình 1 phù hợp với dữ liệu.
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
mh2 <- glm(data = k, formula = factor(salary_in_usd) ~ PTDLDT$experience_level + PTDLDT$employment_type + PTDLDT$company_size + PTDLDT$remote_ratio + salary, family = binomial(link = "probit"))
levels(factor(salary_in_usd))
## [1] "Thấp" "Cao"
summary(mh2)
##
## Call:
## glm(formula = factor(salary_in_usd) ~ PTDLDT$experience_level +
## PTDLDT$employment_type + PTDLDT$company_size + PTDLDT$remote_ratio +
## salary, family = binomial(link = "probit"), data = k)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.048187 0.738978 -0.065 0.94801
## PTDLDT$experience_levelEX 1.518664 0.355241 4.275 1.91e-05 ***
## PTDLDT$experience_levelMI 0.393762 0.184922 2.129 0.03323 *
## PTDLDT$experience_levelSE 1.501726 0.188459 7.968 1.61e-15 ***
## PTDLDT$employment_typeFL -1.441517 1.008698 -1.429 0.15298
## PTDLDT$employment_typeFT -0.943365 0.727724 -1.296 0.19486
## PTDLDT$employment_typePT -1.615889 0.917474 -1.761 0.07820 .
## PTDLDT$company_sizeM 0.195566 0.131635 1.486 0.13737
## PTDLDT$company_sizeS -0.508666 0.193133 -2.634 0.00844 **
## PTDLDT$remote_ratio 0.002329 0.001433 1.625 0.10407
## salarytot 0.617905 0.137315 4.500 6.80e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 820.01 on 603 degrees of freedom
## Residual deviance: 605.00 on 593 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 627
##
## Number of Fisher Scoring iterations: 5
Cặp giả thuyết - đối thuyết:
H0: Mô hình không phù hợp với dữ liệu điều tra
H1: Mô hình phù hợp với dữ liệu điều tra
lr_test2 <- anova(mh2, test = "Chisq")
p_value2 <- lr_test2$Pr[2]
p_value2
## [1] 6.357698e-37
Giả thuyết H0: mô hình không phù hợp Với P-value1 = Prob(LR) = 6.357698e-37 < 5% bác bỏ giả thuyết H0 nên mô hình 2 phù hợp với dữ liệu.
mh3 <- glm(data = k, formula = factor(salary_in_usd) ~ PTDLDT$experience_level + PTDLDT$employment_type + PTDLDT$company_size + PTDLDT$remote_ratio + salary, family = binomial(link = "cloglog"))
levels(factor(salary_in_usd))
## [1] "Thấp" "Cao"
summary(mh3)
##
## Call:
## glm(formula = factor(salary_in_usd) ~ PTDLDT$experience_level +
## PTDLDT$employment_type + PTDLDT$company_size + PTDLDT$remote_ratio +
## salary, family = binomial(link = "cloglog"), data = k)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.682208 0.765516 -0.891 0.3728
## PTDLDT$experience_levelEX 1.821550 0.371831 4.899 9.64e-07 ***
## PTDLDT$experience_levelMI 0.668820 0.272350 2.456 0.0141 *
## PTDLDT$experience_levelSE 1.809842 0.262905 6.884 5.82e-12 ***
## PTDLDT$employment_typeFL -1.751663 1.258125 -1.392 0.1638
## PTDLDT$employment_typeFT -1.146283 0.752519 -1.523 0.1277
## PTDLDT$employment_typePT -2.261708 1.262585 -1.791 0.0732 .
## PTDLDT$company_sizeM 0.294242 0.140374 2.096 0.0361 *
## PTDLDT$company_sizeS -0.584785 0.240411 -2.432 0.0150 *
## PTDLDT$remote_ratio 0.003174 0.001530 2.075 0.0380 *
## salarytot 0.719514 0.136006 5.290 1.22e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 820.01 on 603 degrees of freedom
## Residual deviance: 594.41 on 593 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 616.41
##
## Number of Fisher Scoring iterations: 7
Cặp giả thuyết - đối thuyết:
H0: Mô hình không phù hợp với dữ liệu điều tra
H1: Mô hình phù hợp với dữ liệu điều tra
lr_test3 <- anova(mh3, test = "Chisq")
p_value3 <- lr_test3$Pr[2]
p_value3
## [1] 6.357698e-37
Giả thuyết H0: mô hình không phù hợp Với P-value1 = Prob(LR) = 6.357698e-37 < 5% bác bỏ giả thuyết H0 nên mô hình 3 phù hợp với dữ liệu.
Để đánh giá các mô hình hồi quy trên, ta sử dụng các tiêu chí sau:
# Tiêu chí AIC - Akaike Information Criterion
aiclo <- AIC(mh1)
aicpro <- AIC(mh2)
aicclo <- AIC(mh3)
AIC <-cbind(aiclo,aicpro,aicclo)
AIC
## aiclo aicpro aicclo
## [1,] 627.9061 626.9969 616.4107
# Tiêu chí Deviance
delo <- deviance(mh1)
depro <- deviance(mh2)
declo <- deviance(mh3)
deviance <- cbind(delo,depro,declo)
deviance
## delo depro declo
## [1,] 605.9061 604.9969 594.4107
# Tiêu chí Brier Score
bslo <- BrierScore(mh1)
bspro <- BrierScore(mh2)
bsclo <- BrierScore(mh3)
BrierScore <- cbind(bslo,bspro,bsclo)
BrierScore
## bslo bspro bsclo
## [1,] 0.1655353 0.1658352 0.163938
Dựa vào các tiêu chí trên, ta thấy các giá trị AIC, deviance và Brier Score của mô hình cloglog là nhỏ nhất, tức là mô hình cloglog là mô hình tốt nhất trong 3 mô hình.
MÔ HÌNH CLOGOG
summary(mh3)
##
## Call:
## glm(formula = factor(salary_in_usd) ~ PTDLDT$experience_level +
## PTDLDT$employment_type + PTDLDT$company_size + PTDLDT$remote_ratio +
## salary, family = binomial(link = "cloglog"), data = k)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.682208 0.765516 -0.891 0.3728
## PTDLDT$experience_levelEX 1.821550 0.371831 4.899 9.64e-07 ***
## PTDLDT$experience_levelMI 0.668820 0.272350 2.456 0.0141 *
## PTDLDT$experience_levelSE 1.809842 0.262905 6.884 5.82e-12 ***
## PTDLDT$employment_typeFL -1.751663 1.258125 -1.392 0.1638
## PTDLDT$employment_typeFT -1.146283 0.752519 -1.523 0.1277
## PTDLDT$employment_typePT -2.261708 1.262585 -1.791 0.0732 .
## PTDLDT$company_sizeM 0.294242 0.140374 2.096 0.0361 *
## PTDLDT$company_sizeS -0.584785 0.240411 -2.432 0.0150 *
## PTDLDT$remote_ratio 0.003174 0.001530 2.075 0.0380 *
## salarytot 0.719514 0.136006 5.290 1.22e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 820.01 on 603 degrees of freedom
## Residual deviance: 594.41 on 593 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 616.41
##
## Number of Fisher Scoring iterations: 7
Đối với mô hình hồi quy cloglog của biến phụ thuộc Lương theo USD (salary_in_usd) với các biến độc lập ta thấy rằng yếu tố Mức độ kinh nghiệm (experience_level) có ý nghĩa thống kê ở mức ý nghĩa khác nhau; Quy mô công ty (company_size) có ý nghĩa thống kê ở mức ý nghĩa 5%; Tổng khối lượng công việc được thực hiện từ xa (remote_ratio) có ý nghĩa thống kê ở mức 5% và Tổng số tiền lương gộp (salary) cũng có ý nghĩa và tác động đến Lương theo USD. Hình thức làm việc (employment_type) chỉ có employment_typePT có ý nghĩa thống kê ở mức 10% và ít tác động tới salary_in_usd nên tôi sẽ loại biến employment_type và chạy lại mô hình như sau:
mh4 <- glm(data = k, formula = factor(salary_in_usd) ~ PTDLDT$experience_level + PTDLDT$company_size + PTDLDT$remote_ratio + salary, family = binomial(link = "cloglog"))
levels(factor(salary_in_usd))
## [1] "Thấp" "Cao"
summary(mh4)
##
## Call:
## glm(formula = factor(salary_in_usd) ~ PTDLDT$experience_level +
## PTDLDT$company_size + PTDLDT$remote_ratio + salary, family = binomial(link = "cloglog"),
## data = k)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.837257 0.283277 -6.486 8.83e-11 ***
## PTDLDT$experience_levelEX 1.849037 0.366193 5.049 4.43e-07 ***
## PTDLDT$experience_levelMI 0.651841 0.267335 2.438 0.0148 *
## PTDLDT$experience_levelSE 1.807975 0.256324 7.053 1.74e-12 ***
## PTDLDT$company_sizeM 0.291738 0.140275 2.080 0.0375 *
## PTDLDT$company_sizeS -0.600452 0.237110 -2.532 0.0113 *
## PTDLDT$remote_ratio 0.003344 0.001529 2.188 0.0287 *
## salarytot 0.722312 0.135619 5.326 1.00e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 820.01 on 603 degrees of freedom
## Residual deviance: 599.01 on 596 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 615.01
##
## Number of Fisher Scoring iterations: 7
Giải thích kết quả:
Mức độ kinh nghiệm (experience_level) có ảnh hưởng đến Lương theo USD (salary_in_usd) với hệ số mang dấu (+) cho thấy Lương theo USD (salary_in_usd) cao nhất ở mức kinh nghiêm EX (Giám đốc), EN (Chuyên gia) tiếp sau đó là MI (Trung cấp).
Ở mức ý nghĩa 5%, Quy mô công ty (company_size) có ảnh hưởng đến Lương theo USD (salary_in_usd): Với Quy mô công ty S hệ số mang dấu (-) cho thấy Lương theo USD (salary_in_usd) cao khi Quy mô công ty (company_size) là M, L/ Với Quy mô công ty M hệ số mang dấu (+) cho thấy Lương theo USD (salary_in_usd) cao khi Quy mô công ty (company_size) là M.
Ở mức ý nghĩa 5%, Tổng khối lượng công việc được thực hiện từ xa (remote_ratio) có ảnh hưởng đến Lương theo USD (salary_in_usd) với hệ số mang dấu (+) cho thấy Lương theo USD (salary_in_usd) cao khi Tổng khối lượng công việc được thực hiện từ xa nhiều.
Tổng số tiền lương gộp (salary) có ảnh hưởng đến Lương theo USD (salary_in_usd) với hệ số mang dấu (+) cho thấy Lương theo USD (salary_in_usd) cao khi Tổng số tiền lương gộp (salary) tốt (salarytot) .
MH4: cloglog(π) = log(−log(1−π)) = -1.837257 + 1.849037experience_levelEX + 0.651841experience_levelMI + 1.807975experience_levelSE + 0.291738company_sizeM - 0.600452company_sizeS + 0.003344remote_ratio + 0.722312salarytot
PHÂN TÍCH THỐNG KÊ MÔ TẢ BIẾN PHỤ THUỘC VỚI CÁC BIẾN ĐỘC LẬP VÀ PHÂN TÍCH KẾT QUẢ
Với dữ liệu gốc, biến Lương theo USD là biến định lượng nhận các giá trị từ 2859 USD đến 600000 USD nên tác giả đã đặt quy ước về việc mã hoá biến salary_in_usd như sau: Lương thấp (Thấp): Lương thấp từ trên 2859 đến 90000. Lương cao (Cao): Lương cao 90000 đến 600000.
salary_in_usd <- cut(PTDLDT$salary_in_usd, breaks = c(2859,90000,600000), labels=c("Thấp","Cao"))
table(salary_in_usd)
## salary_in_usd
## Thấp Cao
## 253 353
Với dữ liệu gốc, biến Mức độ kinh nghiệm (experience_level) là biến định tính nhận 4 giá trị: EN = Entry-level / Junior: Sơ cấp; MI = Mid-level / Intermediate: Trung cấp; SE = Senior-level / Expert: Chuyên gia; EX = Executive-level / Director: Giám đốc. Tác giả đã đặt quy ước về việc mã hoá 2 giá trị biến (experience_level) như sau: Mức độ kinh nghiệm yếu (yếu): EN và MI; Mức độ kinh nghiệm mạnh (mạnh): SE và EX
p <- table(PTDLDT$experience_level, salary_in_usd); p
## salary_in_usd
## Thấp Cao
## EN 70 18
## EX 4 22
## MI 131 81
## SE 48 232
i <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
experience_level <- i %>% mutate(kinhnghiem = case_when(PTDLDT$experience_level == "EN" ~ 1, PTDLDT$experience_level =="MI" ~ 1, PTDLDT$experience_level =="SE" ~ 4, PTDLDT$experience_level =="EX" ~ 4))
experience_level <- cut(experience_level$kinhnghiem, breaks = c(0,2,5), labels = c("YẾU", "MẠNH"))
table(experience_level)
## experience_level
## YẾU MẠNH
## 301 306
Bảng tần số:
g <- table(experience_level, salary_in_usd); g
## salary_in_usd
## experience_level Thấp Cao
## YẾU 201 99
## MẠNH 52 254
Bảng tần suất:
g1 <- prop.table(g); g1
## salary_in_usd
## experience_level Thấp Cao
## YẾU 0.33168317 0.16336634
## MẠNH 0.08580858 0.41914191
Phân phối biên:
addmargins(g)
## salary_in_usd
## experience_level Thấp Cao Sum
## YẾU 201 99 300
## MẠNH 52 254 306
## Sum 253 353 606
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=experience_level,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~salary_in_usd) + labs(x = "Mức độ kinh nghiệm",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Lương theo USD và Mức độ kinh nghiệm ta thấy có 253 người có Lương theo USD thấp trong đó có 201 người có mức độ kinh nghiệm yếu, chiếm tỉ lệ 33,1% tổng người được khảo sát và 52 người có mức độ kinh nghiệm mạnh, chiếm tỉ lệ 8,6% tổng số người. Bên cạnh đó có 353 người có Lương theo USD cao trong đó có 99 người có mức độ kinh nghiệm yếu, chiếm tỉ lệ 16,3% tổng người được khảo sát và 254 người có mức độ kinh nghiệm mạnh, chiếm tỉ lệ 41,8% tổng số người.
epitab(g, method = "riskratio")
## $tab
## salary_in_usd
## experience_level Thấp p0 Cao p1 riskratio lower upper
## YẾU 201 0.6700000 99 0.3300000 1.00000 NA NA
## MẠNH 52 0.1699346 254 0.8300654 2.51535 2.124192 2.978536
## salary_in_usd
## experience_level p.value
## YẾU NA
## MẠNH 2.951568e-37
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Lương USD cao theo Mức độ kinh nghiệm là 2.51535 tức là tỉ lệ những người ở mức độ kinh nghiệm mạnh có Lương USD cao lớn gấp 2.51535 tỉ lệ những người ở mức độ kinh nghiệm yếu có Lương USD cao.
epitab(g, method = "oddsratio")
## $tab
## salary_in_usd
## experience_level Thấp p0 Cao p1 oddsratio lower upper
## YẾU 201 0.7944664 99 0.2804533 1.000000 NA NA
## MẠNH 52 0.2055336 254 0.7195467 9.917249 6.759737 14.54965
## salary_in_usd
## experience_level p.value
## YẾU NA
## MẠNH 2.951568e-37
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 9.917249 tức tỉ lệ những người Lương theo USD cao/những người Lương theo USD thấp ở nhóm có mức kinh nghiệm mạnh lớn gấp 9.917249 tỉ lệ những người Lương theo USD cao/những người Lương theo USD thấp ở nhóm có mức kinh nghiệm yếu.
Kiểm định tính độc lập cho 2 biến (salary_in_usd) và (experience_level):
Phương pháp chi bình phương: Giả thuyết Ho: salary_in_usd và experience_level độc lập
g <- table(experience_level, salary_in_usd); g
## salary_in_usd
## experience_level Thấp Cao
## YẾU 201 99
## MẠNH 52 254
chisq.test(g)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: g
## X-squared = 153.72, df = 1, p-value < 2.2e-16
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value < 2.2e-16 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Lương theo USD và Mức độ kinh nghiệm có liên quan tới nhau.
Với dữ liệu gốc, biến Loại việc làm (employment_type) là biến định tính nhận 4 giá trị: PT, FT, CT, FL. Tác giả đã đặt quy ước về việc mã hoá 2 giá trị biến (employment_type) như sau: Làm việc chính thức (chính thức): CT; Làm việc không chính thức (không chính thức): PT, FT và FL
a <- table(PTDLDT$employment_type, salary_in_usd); a
## salary_in_usd
## Thấp Cao
## CT 1 4
## FL 3 1
## FT 240 347
## PT 9 1
b <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
employment_type <- b %>% mutate(loai= case_when(PTDLDT$employment_type == "CT" ~ 1, PTDLDT$employment_type =="FT" ~ 4, PTDLDT$employment_type =="PT" ~ 4, PTDLDT$employment_type =="FL" ~ 4))
employment_type <- cut(employment_type$loai, breaks = c(0,1,5), labels = c("chinh thuc", "khong chinh thuc"))
table(employment_type)
## employment_type
## chinh thuc khong chinh thuc
## 5 602
Bảng tần số:
e <- table(employment_type, salary_in_usd); e
## salary_in_usd
## employment_type Thấp Cao
## chinh thuc 1 4
## khong chinh thuc 252 349
Bảng tần suất:
e1 <- prop.table(e); e1
## salary_in_usd
## employment_type Thấp Cao
## chinh thuc 0.001650165 0.006600660
## khong chinh thuc 0.415841584 0.575907591
Phân phối biên:
addmargins(e)
## salary_in_usd
## employment_type Thấp Cao Sum
## chinh thuc 1 4 5
## khong chinh thuc 252 349 601
## Sum 253 353 606
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=employment_type,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~salary_in_usd) + labs(x = "Loại việc làm",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Lương theo USD và Loại việc làm ta thấy có 253 người có Lương theo USD thấp trong đó có 1 người có loại việc làm chính thức, chiếm tỉ lệ 0,16% tổng người được khảo sát và 252 người có loại việc làm không chính thức, chiếm tỉ lệ 41,52% tổng số người khảo sát. Bên cạnh đó có 353 người có Lương theo USD cao trong đó có 4 người có loại việc làm chính thức, chiếm tỉ lệ 0,66% tổng người được khảo sát và 349 người có loại việc làm không chính thức, chiếm tỉ lệ 57,5% tổng số người khảo sát. Qua biểu đồ có thể thấy đối với những người có Lương theo USD cao và thấp thì tỷ lệ những người có Loại việc làm chính thức đều ít hơn những người có Loại việc làm không chính thức và mức độ chênh lệch của 2 nhóm này rất lớn. ### 3.2.3 Rủi ro tương đối (Risk ratio)
epitab(e, method = "riskratio")
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $tab
## salary_in_usd
## employment_type Thấp p0 Cao p1 riskratio lower upper
## chinh thuc 1 0.2000000 4 0.8000000 1.0000000 NA NA
## khong chinh thuc 252 0.4193012 349 0.5806988 0.7258735 0.4658578 1.131016
## salary_in_usd
## employment_type p.value
## chinh thuc NA
## khong chinh thuc 0.4067248
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của người có Lương USD cao theo Loại việc làm là 0.7258735 tức là tỉ lệ những người làm việc không chính thức có Lương USD cao bằng 72,59% tỉ lệ những người làm việc chính thức có Lương USD cao.
epitab(e, method = "oddsratio")
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $tab
## salary_in_usd
## employment_type Thấp p0 Cao p1 oddsratio lower
## chinh thuc 1 0.003952569 4 0.01133144 1.0000000 NA
## khong chinh thuc 252 0.996047431 349 0.98866856 0.3462302 0.03846758
## salary_in_usd
## employment_type upper p.value
## chinh thuc NA NA
## khong chinh thuc 3.116269 0.4067248
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Tỷ lệ giữa những người có Lương theo USD cao/những người có Lương theo USD thấp ở những người có việc làm không chính thức bằng 34,62% Tỷ lệ giữa những người có Lương theo USD cao/những người có Lương theo USD thấp ở những người có việc làm chính thức.
Kiểm định tính độc lập cho 2 biến (salary_in_usd) và (employment_type):
Phương pháp chi bình phương: Giả thuyết Ho: salary_in_usd và employment_type độc lập
e <- table(employment_type, salary_in_usd); e
## salary_in_usd
## employment_type Thấp Cao
## chinh thuc 1 4
## khong chinh thuc 252 349
chisq.test(e)
## Warning in chisq.test(e): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: e
## X-squared = 0.28618, df = 1, p-value = 0.5927
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.5927 > 5% vì vậy có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Lương theo USD và Loại việc làm không có liên quan tới nhau.
Với dữ liệu gốc, biến Quy mô công ty (company_size) là biến định tính nhận 3 giá trị: S, M, L. Tác giả đã đặt quy ước về việc mã hoá 2 giá trị biến (company_size) như sau: Quy mô nhỏ (nhỏ): S, M; Quy mô lớn (lớn): L
i <- table(PTDLDT$company_size, salary_in_usd); i
## salary_in_usd
## Thấp Cao
## L 87 111
## M 108 218
## S 58 24
p <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
company_size <- p %>% mutate(mo=case_when(PTDLDT$company_size == "S" ~ 1, PTDLDT$company_size =="M" ~ 1, PTDLDT$company_size =="L" ~ 3))
company_size <- cut(company_size$mo, breaks = c(0,1,4), labels = c("nho", "lon"))
table(company_size)
## company_size
## nho lon
## 409 198
Bảng tần số:
i <- table(company_size, salary_in_usd); i
## salary_in_usd
## company_size Thấp Cao
## nho 166 242
## lon 87 111
Bảng tần suất:
i1 <- prop.table(i); i1
## salary_in_usd
## company_size Thấp Cao
## nho 0.2739274 0.3993399
## lon 0.1435644 0.1831683
Phân phối biên:
addmargins(i)
## salary_in_usd
## company_size Thấp Cao Sum
## nho 166 242 408
## lon 87 111 198
## Sum 253 353 606
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=company_size,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~salary_in_usd) + labs(x = "Quy mô công ty",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Lương theo USD và Quy mô công ty ta thấy có 253 người có Lương theo USD thấp trong đó có 166 người làm việc trong công ty có quy mô nhỏ, chiếm tỉ lệ 27,3% tổng người được khảo sát và 87 người làm việc trong công ty có quy mô lớn, chiếm tỉ lệ 14,3% tổng số người khảo sát. Bên cạnh đó có 353 người có Lương theo USD cao trong đó có 242 người làm việc trong công ty có quy mô nhỏ, chiếm tỉ lệ 39,9% tổng người được khảo sát và 111 người làm việc trong công ty có quy mô lớn, chiếm tỉ lệ 18,3% tổng số người khảo sát. Qua biểu đồ có thể thấy đối với những người có Lương theo USD cao và thấp thì tỷ lệ những người quy mô công ty nhỏ đều lớn hơn những người làm việc ở công ty lớn.
epitab(i, method = "riskratio")
## $tab
## salary_in_usd
## company_size Thấp p0 Cao p1 riskratio lower upper p.value
## nho 166 0.4068627 242 0.5931373 1.000000 NA NA NA
## lon 87 0.4393939 111 0.5606061 0.945154 0.8157908 1.095031 0.482534
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của người có Lương USD cao theo quy mô công ty là 0.945154 tức là tỉ lệ những người làm việc ở công ty lớn có Lương USD cao chỉ bằng 94,51% tỉ lệ những người làm việc ở công ty nhỏ có Lương USD cao
epitab(i, method = "oddsratio")
## $tab
## salary_in_usd
## company_size Thấp p0 Cao p1 oddsratio lower upper p.value
## nho 166 0.6561265 242 0.6855524 1.0000000 NA NA NA
## lon 87 0.3438735 111 0.3144476 0.8751781 0.6209435 1.233505 0.482534
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 0.8751781 tức tỉ lệ những người có lương theo USD cao/những người có lương theo USD thấp làm việc ở công ty quy mô lớn chỉ bằng khoảng 87,52% tỉ lệ những người có lương theo USD cao/những người có lương theo USD thấp làm việc ở công ty quy mô nhỏ
Kiểm định tính độc lập cho 2 biến (salary_in_usd) và (company_size):
Phương pháp chi bình phương: Giả thuyết Ho: salary_in_usd và company_size độc lập
i <- table(company_size, salary_in_usd); i
## salary_in_usd
## company_size Thấp Cao
## nho 166 242
## lon 87 111
chisq.test(i)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: i
## X-squared = 0.45404, df = 1, p-value = 0.5004
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.5004 > 5% vì vậy có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Lương theo USD và quy mô công ty không có liên quan tới nhau.
Với dữ liệu gốc, biến Tổng khối lượng công việc thực hiện từ xa (remote_ratio) là biến định tính nhận 3 giá trị: 0, 50, 100. Tác giả đã đặt quy ước về việc mã hoá 2 giá trị biến (remote_ratio) như sau: Tổng khối lượng công việc thực hiện từ xa ít (ít): 0 và 50; Tổng khối lượng công việc thực hiện từ xa nhiều (nhiều): 100
x <- table(PTDLDT$remote_ratio, salary_in_usd); x
## salary_in_usd
## Thấp Cao
## 0 55 71
## 50 66 33
## 100 132 249
z <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
remote_ratio <- z %>% mutate(luong = case_when(PTDLDT$remote_ratio == "0" ~ 1, PTDLDT$remote_ratio =="50" ~ 1, PTDLDT$remote_ratio =="100" ~ 4))
remote_ratio <- cut(remote_ratio$luong, breaks = c(0,1,4), labels = c("it", "nhieu"))
table(remote_ratio)
## remote_ratio
## it nhieu
## 226 381
Bảng tần số:
x <- table(remote_ratio, salary_in_usd); x
## salary_in_usd
## remote_ratio Thấp Cao
## it 121 104
## nhieu 132 249
Bảng tần suất:
x1 <- prop.table(x); x1
## salary_in_usd
## remote_ratio Thấp Cao
## it 0.1996700 0.1716172
## nhieu 0.2178218 0.4108911
Phân phối biên:
addmargins(x)
## salary_in_usd
## remote_ratio Thấp Cao Sum
## it 121 104 225
## nhieu 132 249 381
## Sum 253 353 606
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=remote_ratio,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~salary_in_usd) + labs(x = "Lương theo USD",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Lương theo USD và Tổng khối lượng công việc thực hiện từ xa ta thấy có 253 người có Lươngg theo USD thấp trong đó có 121 người có Tổng khối lượng công việc thực hiện từ xa ít, chiếm tỉ lệ 19,9% tổng người được khảo sát và 132 người có người Tổng khối lượng công việc thực hiện từ xa nhiều, chiếm tỉ lệ 21,7% tổng số người khảo sát. Bên cạnh đó có 353 người có Lương theo USD cao trong đó có 104 người có Tổng khối lượng công việc thực hiện từ xa ít, chiếm tỉ lệ 17,1% tổng người được khảo sát và 249 người có người Tổng khối lượng công việc thực hiện từ xa nhiều, chiếm tỉ lệ 41% tổng số người khảo sát. Qua biểu đồ có thể thấy đối với những người có Lương theo USD cao vfa thấp thì tỷ lệ Tổng khối lượng công việc thực hiện từ xa nhiều đều lớn hơn Tổng khối lượng công việc thực hiện từ xa ít.
epitab(x, method = "riskratio")
## $tab
## salary_in_usd
## remote_ratio Thấp p0 Cao p1 riskratio lower upper
## it 121 0.5377778 104 0.4622222 1.000000 NA NA
## nhieu 132 0.3464567 249 0.6535433 1.413916 1.206339 1.657211
## salary_in_usd
## remote_ratio p.value
## it NA
## nhieu 5.75781e-06
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của người có Lương USD cao theo Tổng khối lượng công việc thực hiện từ xa là 1.413916 tức là tỉ lệ những người Lương theo USD cao có Tổng khối lượng công việc thực hiện từ xa nhiều lớn hơn 1.413916 lần tỉ lệ những người Lương theo USD cao có Tổng khối lượng công việc thực hiện từ xa ít.
epitab(x, method = "oddsratio")
## $tab
## salary_in_usd
## remote_ratio Thấp p0 Cao p1 oddsratio lower upper
## it 121 0.4782609 104 0.2946176 1.000000 NA NA
## nhieu 132 0.5217391 249 0.7053824 2.194712 1.56765 3.072599
## salary_in_usd
## remote_ratio p.value
## it NA
## nhieu 5.75781e-06
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 2.194712 tức tỉ lệ những người có Lương theo USD cao/những người có Lương theo USD thấp có tổng khối lượng công việc thực hiện từ xa nhiều lớn hơn 2.194712 tỉ lệ những người có Lương theo USD cao/những người có Lương theo USD thấp có tổng khối lượng công việc thực hiện từ xa ít.
Kiểm định tính độc lập cho 2 biến (salary_in_usd) và (remote_ratio):
Phương pháp chi bình phương: Giả thuyết Ho: salary_in_usd và remote_ratio độc lập
x <- table(salary_in_usd, remote_ratio); x
## remote_ratio
## salary_in_usd it nhieu
## Thấp 121 132
## Cao 104 249
chisq.test(x)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: x
## X-squared = 20.512, df = 1, p-value = 5.925e-06
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 5.925e-06 < 5% vì vậy có chưa cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa tổng khối lượng công việc thực hiện từ xa và Lương theo USD có liên quan tới nhau.
Với dữ liệu gốc, biến Tổng số tiền lương gộp (salary) là biến định lượng nhận các giá trị từ 4000 đến 30.400.000 nên tác giả đã đặt quy ước về việc mã hoá biến salary như sau: Lương không tốt (không tốt): Lương không tốt từ 4000 đến 150000. Lương tốt (tốt): Lương tốt từ 150000 đến 30.400.000.
salary <- cut(PTDLDT$salary, breaks = c(4000,150000,30400000), labels=c("khong tot","tot"))
table(salary)
## salary
## khong tot tot
## 418 187
Bảng tần số:
y <- table(salary, salary_in_usd); y
## salary_in_usd
## salary Thấp Cao
## khong tot 211 206
## tot 40 147
Bảng tần suất:
y1 <- prop.table(y); y1
## salary_in_usd
## salary Thấp Cao
## khong tot 0.34933775 0.34105960
## tot 0.06622517 0.24337748
Phân phối biên:
addmargins(y)
## salary_in_usd
## salary Thấp Cao Sum
## khong tot 211 206 417
## tot 40 147 187
## Sum 251 353 604
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=salary,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~salary_in_usd) + labs(x = "Tổng số tiền lương gộp",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Lương theo USD và Tổng số tiền lương gộp ta thấy có 251 người có Lương theo USD thấp trong đó có 211 người có Tổng số tiền lương gộp không tốt, chiếm tỉ lệ 34,93% tổng người được khảo sát và 40 người có Tổng số tiền lương gộp tốt, chiếm tỉ lệ 6,62% tổng số người được khảo sát. Bên cạnh đó có 353 người có Lương theo USD cao trong đó có 206 người có Tổng số tiền lương gộp không tốt, chiếm tỉ lệ 34,11% tổng người được khảo sát và 147 người có Tổng số tiền lương gộp tốt, chiếm tỉ lệ 24,34% tổng số người được khảo sát. Qua biểu đồ có thể thấy đối với những người có Lương theo USD thấp và Lương theo USD cao thì tỷ lệ những người có Tổng số tiền lương gộp không tốt đều nhiều hơn những người có Tổng số tiền lương gộp tốt.
epitab(y, method = "riskratio")
## $tab
## salary_in_usd
## salary Thấp p0 Cao p1 riskratio lower upper
## khong tot 211 0.5059952 206 0.4940048 1.000000 NA NA
## tot 40 0.2139037 147 0.7860963 1.591273 1.407697 1.798787
## salary_in_usd
## salary p.value
## khong tot NA
## tot 6.957749e-12
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của hành khách có Lương USD cao theo Mức độ kinh nghiệm là 1.591273 tức là tỉ lệ những người ở nhóm Tổng số tiền lương gộp tốt có Lương USD cao lớn gấp 1.591273 tỉ lệ những người ở ở nhóm Tổng số tiền lương gộp không tốt có Lương USD cao.
epitab(y, method = "oddsratio")
## $tab
## salary_in_usd
## salary Thấp p0 Cao p1 oddsratio lower upper
## khong tot 211 0.8406375 206 0.5835694 1.000000 NA NA
## tot 40 0.1593625 147 0.4164306 3.764199 2.526307 5.608658
## salary_in_usd
## salary p.value
## khong tot NA
## tot 6.957749e-12
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 3.764199 tức tỉ lệ những người Lương theo USD cao/những người Lương theo USD thấp ở nhóm Tổng số tiền lương gộp tốt lớn gấp 3.764199 tỉ lệ những người Lương theo USD cao/những người Lương theo USD thấp ở nhóm Tổng số tiền lương gộp không tốt.
Kiểm định tính độc lập cho 2 biến (salary_in_usd) và (salary):
Phương pháp chi bình phương: Giả thuyết Ho: salary_in_usd và salary độc lập
y <- table(salary, salary_in_usd); y
## salary_in_usd
## salary Thấp Cao
## khong tot 211 206
## tot 40 147
chisq.test(y)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: y
## X-squared = 44.158, df = 1, p-value = 3.029e-11
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 3.029e-11 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa Lương theo USD và Tổng số tiền lương gộp có liên quan tới nhau.
Bảng tần số:
s <- table(experience_level, remote_ratio); s
## remote_ratio
## experience_level it nhieu
## YẾU 137 164
## MẠNH 89 217
Bảng tần suất:
s1 <- prop.table(s); s1
## remote_ratio
## experience_level it nhieu
## YẾU 0.2257002 0.2701812
## MẠNH 0.1466227 0.3574959
Phân phối biên:
addmargins(s)
## remote_ratio
## experience_level it nhieu Sum
## YẾU 137 164 301
## MẠNH 89 217 306
## Sum 226 381 607
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=experience_level,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~remote_ratio) + labs(x = "Tổng khối lượng công việc thực hiện từ xa",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Tổng khối lượng công việc thực hiện từ xa và mức độ kinh nghiệm ta thấy có 226 người có Tổng khối lượng công việc thực hiện từ xa ít trong đó có 137 người có kinh nghiệm yếu, chiếm tỉ lệ 22,6% tổng người được khảo sát và 89 người có kinh nghiệm mạnh, chiếm tỉ lệ 14,7% tổng số người khảo sát. Bên cạnh đó có 381 người làm việc không chính thức trong đó có 164 người có kinh nghiệm yếu, chiếm tỉ lệ 27% tổng người được khảo sát và 217 người người có kinh nghiệm mạnh, chiếm tỉ lệ 35,7% tổng số người khảo sát. Qua biểu đồ có thể thấy đối với những người có Tổng khối lượng công việc thực hiện từ xa ít thì tỷ lệ những có kinh nghiệm yếu lớn hơn những người có kinh nghiệm mạnh. Còn đối với nhóm Tổng khối lượng công việc thực hiện từ xa nhiều thì lại ngược lại.
epitab(s, method = "riskratio")
## $tab
## remote_ratio
## experience_level it p0 nhieu p1 riskratio lower upper
## YẾU 137 0.4551495 164 0.5448505 1.00000 NA NA
## MẠNH 89 0.2908497 217 0.7091503 1.30155 1.147767 1.475938
## remote_ratio
## experience_level p.value
## YẾU NA
## MẠNH 3.69793e-05
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của người có ổng khối lượng công việc thực hiện từ xa nhiều theo mức độ kinh nghiệm là 1.30155 tức là tỉ lệ những người có Tổng khối lượng công việc thực hiện từ xa nhiều có kinh nghiệm mạnh lớn hơn 1.30155 lần tỉ lệ những người có Tổng khối lượng công việc thực hiện từ nhiều có kinh nghiệm yếu
epitab(s, method = "oddsratio")
## $tab
## remote_ratio
## experience_level it p0 nhieu p1 oddsratio lower upper
## YẾU 137 0.6061947 164 0.4304462 1.000000 NA NA
## MẠNH 89 0.3938053 217 0.5695538 2.036791 1.456769 2.847752
## remote_ratio
## experience_level p.value
## YẾU NA
## MẠNH 3.69793e-05
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 2.036791 tức tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít có kinh nghiệm mạnh lớn gấp 2.036791 tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít có kinh nghiệm yếu.
Kiểm định tính độc lập cho 2 biến (remote_ratio) và (experience_level):
Phương pháp chi bình phương: Giả thuyết Ho: remote_ratio và experience_level độc lập
s <- table(experience_level, remote_ratio); s
## remote_ratio
## experience_level it nhieu
## YẾU 137 164
## MẠNH 89 217
chisq.test(s)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: s
## X-squared = 16.831, df = 1, p-value = 4.085e-05
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 4.085e-05 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa tổng khối lượng công việc thực hiện từ xa và mức độ kinh nghiệm có liên quan tới nhau.
Bảng tần số:
h <- table(company_size, remote_ratio); h
## remote_ratio
## company_size it nhieu
## nho 134 275
## lon 92 106
Bảng tần suất:
h1 <- prop.table(h); h1
## remote_ratio
## company_size it nhieu
## nho 0.2207578 0.4530478
## lon 0.1515651 0.1746293
Phân phối biên:
addmargins(h)
## remote_ratio
## company_size it nhieu Sum
## nho 134 275 409
## lon 92 106 198
## Sum 226 381 607
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=company_size,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~remote_ratio) + labs(x = "Tổng khối lượng công việc thực hiện từ xa",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến tổng khối lượng công việc thực hiện từ xa và Quy mô công ty ta thấy có 226 người có tổng khối lượng công việc thực hiện từ xa ít trong đó có 134 người làm việc ở công ty quy mô nhỏ, chiếm tỉ lệ 22,1% tổng người được khảo sát và 92 làm việc ở công ty quy mô lớn, chiếm tỉ lệ 15,2% tổng số người khảo sát. Bên cạnh đó có 381 người có tổng khối lượng công việc thực hiện từ xa nhiều trong đó có 275 người làm việc ở công ty quy mô nhỏ, chiếm tỉ lệ 45,3% tổng người được khảo sát và 106 làm việc ở công ty quy mô lớn, chiếm tỉ lệ 17,5% tổng số người khảo sát. Qua biểu đồ có thể thấy đối với những người có tổng khối lượng công việc thực hiện từ xa ít và nhiều thì tỷ lệ những người làm ở công ty nhỏ đều lớn hơn những người làm ở công ty lớn. ### 3.7.2 Rủi ro tương đối (Risk ratio)
epitab(h, method = "riskratio")
## $tab
## remote_ratio
## company_size it p0 nhieu p1 riskratio lower upper
## nho 134 0.3276284 275 0.6723716 1.0000000 NA NA
## lon 92 0.4646465 106 0.5353535 0.7962167 0.6878227 0.9216926
## remote_ratio
## company_size p.value
## nho NA
## lon 0.001256166
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều làm việc ở công ty lớn bằng 79,62% tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều làm việc ở công ty nhỏ.
epitab(h, method = "oddsratio")
## $tab
## remote_ratio
## company_size it p0 nhieu p1 oddsratio lower upper
## nho 134 0.5929204 275 0.7217848 1.0000000 NA NA
## lon 92 0.4070796 106 0.2782152 0.5614229 0.3966895 0.7945654
## remote_ratio
## company_size p.value
## nho NA
## lon 0.001256166
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Tỷ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít làm việc ở công ty lớn bằng khoảng 56,14% tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít làm việc ở công ty nhỏ.
Kiểm định tính độc lập cho 2 biến (remote_ratio) và (company_size):
Phương pháp chi bình phương: Giả thuyết Ho: remote_ratio và experience_level độc lập
h <- table(company_size, remote_ratio); h
## remote_ratio
## company_size it nhieu
## nho 134 275
## lon 92 106
chisq.test(h)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: h
## X-squared = 10.139, df = 1, p-value = 0.001451
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.00145 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa tổng khối lượng công việc thực hiện từ xa và quy mô công ty có liên quan tới nhau.
Bảng tần số:
m<- table(employment_type, remote_ratio); m
## remote_ratio
## employment_type it nhieu
## chinh thuc 0 5
## khong chinh thuc 226 376
Bảng tần suất:
m1 <- prop.table(m); m1
## remote_ratio
## employment_type it nhieu
## chinh thuc 0.000000000 0.008237232
## khong chinh thuc 0.372322900 0.619439868
Phân phối biên:
addmargins(m)
## remote_ratio
## employment_type it nhieu Sum
## chinh thuc 0 5 5
## khong chinh thuc 226 376 602
## Sum 226 381 607
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=employment_type,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~remote_ratio) + labs(x = "TTổng khối lượng công việc thực hiện từ xa",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến tổng khối lượng công việc thực hiện từ xa và Loại việc làm ta thấy có 226 người có tổng khối lượng công việc thực hiện từ xa ít trong đó có 0 người làm việc chính thức, chiếm tỉ lệ 0% tổng người được khảo sát và 226 làm việc không chính thức, chiếm tỉ lệ 37% tổng số người khảo sát. Bên cạnh đó có 381 người có tổng khối lượng công việc thực hiện từ xa nhiều trong đó có 5 người làm việc chính thức, chiếm tỉ lệ 1% tổng người được khảo sát và 376 làm việc không chính thức, chiếm tỉ lệ 62% tổng số người khảo sát. Qua biểu đồ có thể thấy đối với những người có tổng khối lượng công việc thực hiện từ xa ít và nhiều thì tỷ lệ những người làm việc không chính thức đều lớn hơn những người làm việc chính thức.
epitab(m, method = "riskratio")
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $tab
## remote_ratio
## employment_type it p0 nhieu p1 riskratio lower upper
## chinh thuc 0 0.0000000 5 1.0000000 1.0000000 NA NA
## khong chinh thuc 226 0.3754153 376 0.6245847 0.6245847 0.5870768 0.664489
## remote_ratio
## employment_type p.value
## chinh thuc NA
## khong chinh thuc 0.1631301
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều làm việc không chính thức bằng 62,45% tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều làm việc chính thức.
epitab(m, method = "oddsratio")
## Warning in chisq.test(xx, correct = correction): Chi-squared approximation may
## be incorrect
## $tab
## remote_ratio
## employment_type it p0 nhieu p1 oddsratio lower upper p.value
## chinh thuc 0 0 5 0.01312336 1 NA NA NA
## khong chinh thuc 226 1 376 0.98687664 0 0 NaN 0.1631301
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Tỷ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít làm việc ở không chính thức bằng khoảng 0% tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít làm việc chính thức.
Kiểm định tính độc lập cho 2 biến (remote_ratio) và (employment_type):
Phương pháp chi bình phương: Giả thuyết Ho: remote_ratio và employment_type độc lập
m <- table(employment_type, remote_ratio); m
## remote_ratio
## employment_type it nhieu
## chinh thuc 0 5
## khong chinh thuc 226 376
chisq.test(m)
## Warning in chisq.test(m): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: m
## X-squared = 1.5998, df = 1, p-value = 0.2059
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.2059 > 5% vì vậy có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa tổng khối lượng công việc thực hiện từ xa và Loại công việc không có liên quan tới nhau.
Bảng tần số:
d <- table(salary, remote_ratio); d
## remote_ratio
## salary it nhieu
## khong tot 166 252
## tot 59 128
Bảng tần suất:
d1 <- prop.table(d); d1
## remote_ratio
## salary it nhieu
## khong tot 0.27438017 0.41652893
## tot 0.09752066 0.21157025
Phân phối biên:
addmargins(d)
## remote_ratio
## salary it nhieu Sum
## khong tot 166 252 418
## tot 59 128 187
## Sum 225 380 605
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=salary,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~remote_ratio) + labs(x = "Tổng khối lượng công việc thực hiện từ xa",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Tổng khối lượng công việc thực hiện từ xa và Tổng số tiền lương gộp ta thấy có 225 người có Tổng khối lượng công việc thực hiện từ xa ít trong đó có 166 người có Tổng số tiền lương gộp không tốt, chiếm tỉ lệ 27,4% tổng người được khảo sát và 59 người có Tổng số tiền lương gộp tốt, chiếm tỉ lệ 9,7% tổng số người khảo sát. Bên cạnh đó có 380 người Tổng khối lượng công việc thực hiện từ xa nhiều trong đó có 252 người có Tổng số tiền lương gộp không tốt, chiếm tỉ lệ 41,65% tổng người được khảo sát và 128 người Tổng số tiền lương gộp tốt, chiếm tỉ lệ 21,1% tổng số người khảo sát.
epitab(d, method = "riskratio")
## $tab
## remote_ratio
## salary it p0 nhieu p1 riskratio lower upper
## khong tot 166 0.3971292 252 0.6028708 1.000000 NA NA
## tot 59 0.3155080 128 0.6844920 1.135387 1.002387 1.286035
## remote_ratio
## salary p.value
## khong tot NA
## tot 0.05658256
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của người có ổng khối lượng công việc thực hiện từ xa nhiều theo Tổng số tiền lương gộp là 1.135387 tức là tỉ lệ những người có Tổng khối lượng công việc thực hiện từ xa nhiều có Tổng số tiền lương gộp tốt lớn hơn 1.135387 tỉ lệ những người có Tổng khối lượng công việc thực hiện từ nhiều có Tổng số tiền lương gộp không tốt
epitab(d, method = "oddsratio")
## $tab
## remote_ratio
## salary it p0 nhieu p1 oddsratio lower upper
## khong tot 166 0.7377778 252 0.6631579 1.000000 NA NA
## tot 59 0.2622222 128 0.3368421 1.429109 0.9917013 2.059445
## remote_ratio
## salary p.value
## khong tot NA
## tot 0.05658256
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 1.429109 tức tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít có Tổng số tiền lương gộp tốt lớn gấp 1.429109 tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít có Tổng số tiền lương gộp không tốt.
Kiểm định tính độc lập cho 2 biến (remote_ratio) và (salary):
Phương pháp chi bình phương: Giả thuyết Ho: remote_ratio và salary độc lập
d <- table(salary, remote_ratio); d
## remote_ratio
## salary it nhieu
## khong tot 166 252
## tot 59 128
chisq.test(d)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: d
## X-squared = 3.3437, df = 1, p-value = 0.06746
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 0.06746 > 5% vì vậy có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa tổng khối lượng công việc thực hiện từ xa vàTổng số tiền lương gộp không có liên quan tới nhau.
Bảng tần số:
t <- table(salary_in_usd, remote_ratio); t
## remote_ratio
## salary_in_usd it nhieu
## Thấp 121 132
## Cao 104 249
Bảng tần suất:
t1 <- prop.table(t); t1
## remote_ratio
## salary_in_usd it nhieu
## Thấp 0.1996700 0.2178218
## Cao 0.1716172 0.4108911
Phân phối biên:
addmargins(t)
## remote_ratio
## salary_in_usd it nhieu Sum
## Thấp 121 132 253
## Cao 104 249 353
## Sum 225 381 606
Biểu đồ cột kết hợp 2 biến:
k <- data.frame(PTDLDT$experience_level, PTDLDT$employment_type, PTDLDT$company_size, PTDLDT$salary, PTDLDT$remote_ratio, PTDLDT$salary_in_usd, salary_in_usd, experience_level, employment_type, company_size, remote_ratio)
k |> ggplot(aes(x=salary_in_usd,y=after_stat(count))) + geom_bar(fill="pink") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~remote_ratio) + labs(x = "Tổng khối lượng công việc thực hiện từ xa",y = "Số người")
Thông qua bảng tần số, tần suất trên của 2 biến Tổng khối lượng công việc thực hiện từ xa và Lương theo USD ta thấy có 225 người có Tổng khối lượng công việc thực hiện từ xa ít trong đó có 121 người có Lương theo USD thấp chiếm tỉ lệ 19,9% tổng người được khảo sát và 104 người có Lương theo USD cao, chiếm tỉ lệ 17,1% tổng số người khảo sát. Bên cạnh đó có 381 người Tổng khối lượng công việc thực hiện từ xa nhiều trong đó có 132 người có Lương theo USD thấp, chiếm tỉ lệ 21,7% tổng người được khảo sát và 249 người Lương theo USD cao, chiếm tỉ lệ 41% tổng số người khảo sát.
epitab(t, method = "riskratio")
## $tab
## remote_ratio
## salary_in_usd it p0 nhieu p1 riskratio lower upper
## Thấp 121 0.4782609 132 0.5217391 1.000000 NA NA
## Cao 104 0.2946176 249 0.7053824 1.351983 1.180209 1.548758
## remote_ratio
## salary_in_usd p.value
## Thấp NA
## Cao 5.75781e-06
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ rủi ro tương đối (risk ratio) của người có tổng khối lượng công việc thực hiện từ xa nhiều theo Lương theo USD là 1.351983 tức là tỉ lệ những người có Tổng khối lượng công việc thực hiện từ xa nhiều có Lương theo USD cao lớn hơn 1.351983 tỉ lệ những người có Tổng khối lượng công việc thực hiện từ nhiều có Lương theo USD thấp.
epitab(t, method = "oddsratio")
## $tab
## remote_ratio
## salary_in_usd it p0 nhieu p1 oddsratio lower upper
## Thấp 121 0.5377778 132 0.3464567 1.000000 NA NA
## Cao 104 0.4622222 249 0.6535433 2.194712 1.56765 3.072599
## remote_ratio
## salary_in_usd p.value
## Thấp NA
## Cao 5.75781e-06
##
## $measure
## [1] "wald"
##
## $conf.level
## [1] 0.95
##
## $pvalue
## [1] "fisher.exact"
Theo kết quả trên ta thấy tỉ lệ chênh (odd ratio) là 2.194712 tức tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít có Lương theo USD cao lớn gấp 2.194712 tỉ lệ những người có tổng khối lượng công việc thực hiện từ xa nhiều/những người có tổng khối lượng công việc thực hiện từ xa ít có Lương theo USD thấp.
Kiểm định tính độc lập cho 2 biến (remote_ratio) và (salary_in_usd):
Phương pháp chi bình phương: Giả thuyết Ho: remote_ratio và salary độc lập
t <- table(salary_in_usd, remote_ratio); t
## remote_ratio
## salary_in_usd it nhieu
## Thấp 121 132
## Cao 104 249
chisq.test(t)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: t
## X-squared = 20.512, df = 1, p-value = 5.925e-06
Kết quả kiểm định trên cho thấy giá trị tới hạn p-value = 5.925e-06 < 5% vì vậy chưa có cơ sở để thừa nhận giả thuyết Ho, nói cách khác giữa tổng khối lượng công việc thực hiện từ xa và lương theo USD có liên quan tới nhau.
Ước lượng tỷ lệ số người được khảo sát có Lương theo USD (salary_in_usd) lớn hơn 90000 USD và đồng thời kiểm định xem tỷ lệ người được khảo sát có Lương theo USD (salary_in_usd) lớn hơn 90000 USD có phải là 40% hay không. Ta kiểm định giả thuyết:
H0: Tỷ lệ học sinh số người được khảo sát có Lương theo USD lớn hơn 90000 USD là 40%
H1: Tỷ lệ học sinh số người được khảo sát có Lương theo USD lớn hơn 90000 USD không phải là 40%
rm<- PTDLDT[PTDLDT$salary_in_usd > 90000,]
prop.test(length(rm$salary_in_usd), length(PTDLDT$salary_in_usd), p = 0.4)
##
## 1-sample proportions test with continuity correction
##
## data: length(rm$salary_in_usd) out of length(PTDLDT$salary_in_usd), null probability 0.4
## X-squared = 82.606, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.4
## 95 percent confidence interval:
## 0.5410831 0.6209669
## sample estimates:
## p
## 0.5815486
Vì p_value < 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết H0. Nghĩa là Tỷ lệ học sinh số người được khảo sát có Lương theo USD lớn hơn 90000 USD không phải là 40%
Với độ tin cậy 95%, ước lượng tỷ lệ số người được khảo sát có Lương theo USD (salary_in_usd) lớn hơn 90000 USD nằm trong khoảng từ 0.5410831 đến 0.6209669.
Giả thuyết:
H0: không có sự khác biệt đáng kể trong tỷ lệ giữa quy mô công ty nhỏ và lớ về số lượng người được khảo sát có Lương theo USD (salary_in_usd) lớn hơn 90000 USD.
H1: có sự khác biệt đáng kể trong tỷ lệ giữa quy mô công ty nhỏ và lớ về số lượng người được khảo sát có Lương theo USD (salary_in_usd) lớn hơn 90000 USD.
rmm <- PTDLDT[company_size == "nho",]
rmf <- PTDLDT[company_size == "lon",]
rmm1 <- rmm[rmm$salary_in_usd > 90000,]
rmf1 <- rmf[rmf$salary_in_usd > 90000,]
a <- c(nrow(rmm), nrow(rmf))
b <- c(nrow(rmm1), nrow(rmf1))
prop.test(b,a)
##
## 2-sample test for equality of proportions with continuity correction
##
## data: b out of a
## X-squared = 0.40959, df = 1, p-value = 0.5222
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## -0.05662025 0.11878221
## sample estimates:
## prop 1 prop 2
## 0.5916870 0.5606061
Vì p_value = 0.5222 > 0.05 nên chưa đủ cơ sở để bác bỏ giả thuyết H0. Nghĩa là chưa đủ cơ sở để chứng minh rằng có sự khác biệt trong tỷ lệ giữa quy mô công ty nhỏ và lớ về số lượng người được khảo sát có Lương theo USD (salary_in_usd) lớn hơn 90000 USD.
Với độ tin cậy 95%, khoảng chênh lệch giữa giữa quy mô công ty nhỏ và lớ về số lượng người được khảo sát có Lương theo USD (salary_in_usd) lớn hơn 90000 USD nằm trong khoảng từ 0.5916870 đến 0.5606061.
Làm thống kê mô tả để phân tích cho ít nhất 5 biến (vừa định tính định lượng và có 2 biến đã chọn ở câu 2), nhận xét về kết quả phân tích này.
Thống kê mô tả được thực hiện trên các biến sau:
Biến định tính: experience_level, employment_type, company_size, remote_ratio
Biến định lượng: salary, salary_in_usd
experience_level là biến thể hiện Mức độ kinh nghiệm gồm 4 biểu hiện
table(PTDLDT$experience_level)
##
## EN EX MI SE
## 88 26 213 280
table(PTDLDT$experience_level)/sum(table(PTDLDT$experience_level))
##
## EN EX MI SE
## 0.14497529 0.04283361 0.35090610 0.46128501
ggplot(map = aes(x=experience_level, y= after_stat(count)))+geom_bar(fill = 'brown')+geom_text(aes(label=percent(after_stat(count/sum(count)),accuracy = .01)), stat = 'count', color = 'white',vjust = 4) + labs(tiltle = 'Độ thị thể hiện số lượng người khảo sát chia Mức độ kinh nghiệm', x = 'Mức độ kinh nghiệm', y = 'số lượng người')
Nhận xét: Trong 607 người được khảo sát có:
88 người có trình độ EN = Entry-level: Sơ cấp , chiếm 14.5%.
26 người có trình độ EX = Executive-level / Director: Giám đốc, chiếm 4.28%
213 người có trình độ MI = Mid-level / Intermediate: Trung cấp, chiếm 35.09%
280 người có trình độ SE = Senior-level / Expert: Chuyên gia, chiếm 46,13%.
Đồ thị cột thể hiện số người khảo sát chia theo mức độ kinh nghiệm làm việc, có thể thấy người có trình độ SE = Senior-level / Expert: Chuyên gia có số lượng nhiều nhất trong tổng số nhân viên với 46,1%.
company_size là biến thể hiện quy mô công ty gồm 3 biểu hiện
table(PTDLDT$company_size)
##
## L M S
## 198 326 83
table(PTDLDT$company_size)/sum(table(PTDLDT$company_size))
##
## L M S
## 0.3261944 0.5370675 0.1367381
ggplot(map = aes(x=company_size, y= after_stat(count)))+geom_bar(fill = 'brown')+geom_text(aes(label=percent(after_stat(count/sum(count)),accuracy = .01)), stat = 'count', color = 'white',vjust = 4) + labs(tiltle = 'Độ thị thể hiện số lượng người khảo sát chia Quy mô công ty', x = 'Quy mô công ty', y = 'số lượng người')
Nhận xét: Trong 607 người được khảo sát có:
198 người làm việc ở công ty có quy mô L:lớn, chiếm 32.26%.
326 người làm việc ở công ty có quy mô M:vừa, chiếm 53.71%
83 người làm việc ở công ty có quy mô S:nhỏ, chiếm 13.67%
Đồ thị cột thể hiện số người khảo sát chia theo mức quy mô công ty, có thể thấy người Số lượng nhân viên của công ty có quy mô M: vừa là nhiều nhất với 54% trên tổng sô lượng nhân viên được kháo sát.
employment_type là biến thể hiện Hình thức làm việc của người được khảo sát gồm 4 biểu hiện
table(PTDLDT$employment_type)
##
## CT FL FT PT
## 5 4 588 10
table(PTDLDT$employment_type)/sum(table(PTDLDT$employment_type))
##
## CT FL FT PT
## 0.008237232 0.006589786 0.968698517 0.016474465
ggplot(map = aes(x=employment_type, y= after_stat(count)))+geom_bar(fill = 'brown')+geom_text(aes(label=percent(after_stat(count/sum(count)),accuracy = .01)), stat = 'count', color = 'white',vjust = 4) + labs(tiltle = 'Độ thị thể hiện số lượng người khảo sát chia theo Hình thức làm việc', x = 'Hình thức làm việc', y = 'số lượng người')
Nhận xét: Trong 607 người được khảo sát có:
5 người làm việc theo hình thức CT = Contract: nhân viên hợp đồng, chiếm 0.82%.
4 người làm việc theo hình thức FL = Freelance: tự do về thời gian, chiếm 0.66%
588 người làm việc theo hình thức FT = Full-time: toàn thời gian, chiếm 96.87%
10 người làm việc theo hình thức PT = Part-time: bán thời gian, chiếm 1,65%
Đồ thị cột thể hiện số người khảo sát chia theo Hình thức làm việc, có thể thấy Nhân viên toàn thời gian chiếm ưu thế tổng thể với 96,9% số lượng nhân viên.
table(PTDLDT$remote_ratio)
##
## 0 50 100
## 127 99 381
table(PTDLDT$remote_ratio)/sum(table(PTDLDT$remote_ratio))
##
## 0 50 100
## 0.2092257 0.1630972 0.6276771
Biến remote_ratio là biến định tính thể hiện Tổng khối lượng công việc được thực hiện từ xa, theo như số liệu gốc thì biến Tổng khối lượng công việc được thực hiện từ xa nhận các giá trị là 0, 50, 100. Có thể thấy Tổng khối lượng công việc được thực hiện từ xa có giá trị 0 tức Không làm việc từ xa (dưới 20%) có 127 người chiếm 20,9%, bên cạnh đó Tổng khối lượng công việc được thực hiện từ xa có giá trị 50 tức Làm việc từ xa một phần có 99 người chiếm tỷ lệ 16,31%, Tổng khối lượng công việc được thực hiện từ xa có giá trị 100 tức Làm việc từ xa hoàn toàn có 381 người chiếm tỷ lệ 62.76%
pie(table(PTDLDT$remote_ratio), col = rainbow(6), main = "Biểu đồ số lượng người theo Tổng khối lượng công việc được thực hiện từ xa")
Theo như biểu đồ tròn phía trên có thể thấy tỷ lệ những người có Tổng khối lượng công việc được thực hiện từ xa có giá trị là 100 chiếm hơn một nửa tổng số người được khảo sát,tỷ lệ những người có Tổng khối lượng công việc được thực hiện từ xa có giá trị là 0 và 50 thì tương đương gần bằng nhau.
summary(PTDLDT$salary)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4000 70000 115000 324000 165000 30400000
Biến salary là biến định lượng cho biết tổng số tiền lương gộp người khảo sát được trả. Thông qua kết quả trên ta thấy tổng số tiền lương của người khảo sát nhỏ nhất là 4000, lớn nhất là 30400000 và tổng số tiền lương trung bình của người được khảo sát khoảng 324000. Tứ phân vị: là ba điểm cắt sẽ chia tập dữ liệu thành 4 nhóm có kích thước bằng nhau, cụ thể: Tứ phân vị thứ nhất (1st Qu.) = 70000 Nghĩa là dưới 25% người được khảo sát có tổng số tiền lương nhỏ hơn 70000 hay trên 75% số người được khảo sát có tổng số tiền lương lớn hơn 70000.
Tứ phân vị thứ hai (trung vị: Median) = 115000 Nghĩa là dưới 50% số người được khảo sát có tổng số tiền lương nhỏ hơn 115000 hay trên 50% số người được khảo sát có tổng số tiền lương lớn hơn 115000.
Tứ phân vị thứ ba (3rd Qu.) = 165000 Nghĩa là dưới 75% tổng số người được khảo sát có tổng số tiền lương nhỏ hơn 165000 hay trên 25% số người được khảo sát lớn hơn 165000.
salary <- PTDLDT$salary
table(cut(salary,3))
##
## (-2.64e+04,1.01e+07] (1.01e+07,2.03e+07] (2.03e+07,3.04e+07]
## 604 2 1
Bảng tần số trên cho thấy có 604 người được khảo sát có tổng số tiền lương trong khoảng từ -2.64e+04 đến 1.01e+07; có 2 người được khảo sát có tổng số tiền lương trong khoảng từ 1.01e+07 đến 2.03e+07 và có 1 người được khảo sát có tổng số tiền lương trong khoảng từ 2.03e+07 đến 3.04e+07.
hist(PTDLDT$salary, main = "Biểu đồ tần số của tổng số tiền lương (salary)",xlab = "tổng số tiền lương", ylab = "Số người", col = "lightblue")
Dựa vào biểu đồ tần số của biến tổng số tiền lương (salary) cho thấy có quá nhiều sự chênh lệch về số người được khảo sát ứng với những mức tổng số tiền lương. Trong đó số lượng người được khảo sát có tổng số tiền lương trong khoảng -2.64e+04 đến 1.01e+07 là nhiều nhất và bỏ xa hai nhóm còn lại.
summary(PTDLDT$salary_in_usd)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2859 62726 101570 112298 150000 600000
Biến salary_in_usd là biến định lượng cho biết Lương theo USD người khảo sát được trả. Thông qua kết quả trên ta thấy Lương theo USD của người khảo sát nhỏ nhất là 2859, lớn nhất là 600000 và Lương theo USD trung bình của người được khảo sát khoảng 112298. Tứ phân vị: là ba điểm cắt sẽ chia tập dữ liệu thành 4 nhóm có kích thước bằng nhau, cụ thể: Tứ phân vị thứ nhất (1st Qu.) = 62726 Nghĩa là dưới 25% người được khảo sát có Lương theo USD nhỏ hơn 62726 USD hay trên 75% số người được khảo sát có Lương theo USD lớn hơn 62726 USD.
Tứ phân vị thứ hai (trung vị: Median) = 101570 Nghĩa là dưới 50% số người được khảo sát có Lương theo USD nhỏ hơn 101570 USD hay trên 50% số người được khảo sát có Lương theo USD lớn hơn 101570 USD.
Tứ phân vị thứ ba (3rd Qu.) = 150000 Nghĩa là dưới 75% tổng số người được khảo sát có Lương theo USD nhỏ hơn 150000 USD hay trên 25% số người được khảo sát lớn hơn 150000 USD.
salary_in_usd <- PTDLDT$salary_in_usd
table(cut(salary_in_usd,3))
##
## (2.26e+03,2.02e+05] (2.02e+05,4.01e+05] (4.01e+05,6.01e+05]
## 554 46 7
Bảng tần số trên cho thấy có 554 người được khảo sát có Lương theo USD trong khoảng từ 2.26e+03 đến 2.02e+05; có 46 người được khảo sát có Lương theo USD trong khoảng từ 2.02e+05 đến 4.01e+05 và có 7 người được khảo sát có Lương theo USD trong khoảng từ 4.01e+05 đến 6.01e+05.
hist(PTDLDT$salary_in_usd, main = "Biểu đồ tần số của Lương theo USD (salary_in_usd)",xlab = "Lương theo USD", ylab = "Số người", col = "lightblue")
Dựa vào biểu đồ tần số của biến Lương theo USD (salary_in_usd) cho thấy số lượng người được khảo sát ứng với Lương theo USD phân bố không đồng đều. Trong đó số lượng người được khảo sát có Lương theo USD trong khoảng 0e+00 đến 2e+05 USD là nhiều nhất.
Khoa học dữ liệu là lĩnh vực được mọi ngành rất quan tâm để phát triển cả hoạt động kinh doanh và sản phẩm của họ. Bằng cách sử dụng các công cụ và kỹ thuật, Khoa học dữ liệu có thể là một chủ đề giải quyết vấn đề để tìm ra các mẫu, lấy thông tin có ý nghĩa và đưa ra các quyết định kinh doanh. Vì Data Science đang có nhu cầu cao nên không thể phủ nhận mức lương như mong đợi. Nhiều yếu tố ảnh hưởng đến mức lương của một người làm việc trong lĩnh vực này, chẳng hạn như chức danh công việc, mức độ kinh nghiệm, vị trí, v.v. Vì vậy, hãy cùng tìm hiểu về nó.
Bộ dữ liệu là từ kết quả tổng hợp dữ liệu của ai-jobs.net. ai-jobs.net là một nền tảng cung cấp cho ứng viên ứng tuyển các công việc AI/ML và Dữ liệu lớn ở mọi nơi trên thế giới. Bộ dữ liệu thu được bằng cách cung cấp biểu mẫu cho tất cả những người có công việc AI/ML và Dữ liệu lớn để điền dữ liệu lương một cách minh bạch. Vì vậy, mọi người có thể sử dụng nó để tìm hiểu và phân tích thêm về nó.
Dữ liệu nghiên cứu về: Data Science Jobs Salary gồm 607 quan sát và 6 biến
Trong 6 biến này gồm 4 biến định tính và 2 biến định lượng
experience_level (Mức độ kinh nghiệm): Mức độ kinh nghiệm của người được khảo sát trong công việc trong năm với các giá trị có thể sau đây:
EN = Entry-level / Junior: Sơ cấp
MI = Mid-level / Intermediate: Trung cấp
SE = Senior-level / Expert: Chuyên gia
EX = Executive-level / Director: Giám đốc
employment_type: hình thức làm việc
PT = Part-time: bán thời gian
FT = Full-time: toàn thời gian
CT = Contract: nhân viên hợp đồng
FL = Freelance: tự do về thời gian
company_size (Qui mô công ty): Số người trung bình làm việc cho công ty trong năm
S = less than 50 employees (small): qui mô nhỏ ít hơn 50 nhân viên
M = 50 to 250 employees (medium): qui mô vừa với số lượng nhân viên từ 50-250 người
L = more than 250 employees (large): qui mô lớn với số lượng nhân viên trên 250 người
remote_ratio: Tổng số lượng công việc được thực hiện từ xa, các giá trị có thể như sau:
0 = No remote work (less than 20%): Không làm việc từ xa (dưới 20%)
50 = Partially remote: Làm việc từ xa một phần
100 = Fully remote (more than 80%): Làm việc từ xa hoàn toàn (hơn 80%)
salary: Tổng số tiền lương gộp được trả
salary_in_usd: Lương tính bằng USD (Tỷ giá hối đoái chia cho tỷ giá USD trung bình cho năm tương ứng thông qua fxdata.foorilla.com)
+) 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 remote_ratio để làm biến phụ thuộc. Đây là biến cho biết Tổng số lượng công việc được thực hiện từ xa của người được khảo sát , nó gồm có 3 biểu hiện là 0, 50 và 100.
Tôi chọn biến tính remote_ratio làm biến phụ thuộc, với lý do tôi muốn xác định Tổng số lượng công việc được thực hiện từ xa của người được khảo sát chịu sự tác động và bị phụ thuộc như thế nào bởi các yếu tố như kinh nghiệm làm việc, tổng mức lương, mức lương tính theo USD và tổng khối lượng công việc được thực hiện.
+) Chọn biến định lượng là biến phụ thuộc:
Đối với biến định lượng, tôi chọn biến salary_in_usd làm biến phụ thuộc, đây là biến cho biết mức lương tính bằng USD trong một năm cụ thể của người được khảo sát. Biến được tính với đơn vị là USD .
Tôi chọn biến định lượng salary_in_usd làm biến phụ thuộc, với lý do tôi muốn xác định mức độ ảnh hưởng của các yếu tố trong bảng khảo sát như năm trả lương, hình thức làm việc, mức độ kinh nghiệm, loại việc làm, vị trí công việc, quốc gia cư trú, tổng khối lượng làm việc của người được khảo sát có ảnh hưởng như thế nào đối với mức lương tính bằng đồng USD của họ.
Dữ liệu nghiên cứu về: Data Science Jobs Salary gồm 607 quan sát và 6 biến
Trong 6 biến này gồm 4 biến định tính và 2 biến định lượng
1.experience_level: Mức độ kinh nghiệm
2.employment_type: Loại việc làm
3.salary: Tổng số tiền lương gộp
4.salary_in_usd: Lương tính bằng USD
5.remote_ratio: Tổng khối lượng công việc được thực hiện từ xa
6.company_size: Qui mô công ty
library(readxl)
PTDLDT <- read_excel("C:/Users/Abc/Downloads/PTDLDT.xlsx")
View(PTDLDT)
PTDLDT
## # A tibble: 607 × 6
## experience_level employment_type salary salary_in_usd remote_ratio
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 MI FT 70000 79833 0
## 2 SE FT 260000 260000 0
## 3 SE FT 85000 109024 50
## 4 MI FT 20000 20000 0
## 5 SE FT 150000 150000 50
## 6 EN FT 72000 72000 100
## 7 SE FT 190000 190000 100
## 8 MI FT 11000000 35735 50
## 9 MI FT 135000 135000 100
## 10 SE FT 125000 125000 50
## # ℹ 597 more rows
## # ℹ 1 more variable: company_size <chr>