Từ Kaggle dataset mà anh Nguyen Tung phân tích, được thu thập qua phỏng vấn hơn 16 ngàn người đang làm việc trong lĩnh vực data science, tôi cũng muốn tìm hiểu về cơ hội cho những người lớn tuổi trong nhóm công việc này.
Dataset: https://www.kaggle.com/kaggle/kaggle-survey-2017
Tôi sẽ phân tích phân bố tuổi của những người đang làm việc toàn thời gian (full time employed) so sánh với nhóm người đã nghỉ hưu (retired), nhưng vẫn còn làm việc.
library(tidyverse)
## -- Attaching packages ---------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.2.0 v purrr 0.3.2
## v tibble 2.1.3 v dplyr 0.8.1
## v tidyr 0.8.3 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.4.0
## -- Conflicts ------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(ggthemes)
df_survey <- read.csv("E:\\R\\Data\\kaggle-survey-2017\\multipleChoiceResponses.csv", stringsAsFactors = FALSE)
summary(df_survey$Age)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.00 25.00 30.00 32.37 37.00 100.00 331
ggplot(df_survey, aes(x=Age)) +
geom_density(color="darkblue", fill="lightblue")+
geom_vline(xintercept = mean(df_survey$Age, na.rm = TRUE), linetype="dotted",
color = "blue", size=1)+
theme_stata() + scale_color_stata() +
labs(x = "Age", y = "Density",
title = "How Old Are Data Scientists?",
subtitle = "(Full Data)",
caption = "Data Source: Kaggle Data Science Survey")
## Warning: Removed 331 rows containing non-finite values (stat_density).
Trong summary output người nhỏ nhất là 0, cao nhất là 100. Có lẽ sai sót do nhập dữ liệu. Vì vậy, tôi sẽ chọn lại data với người nhỏ tuổi nhất là 20, lớn nhất là 75 với hy vọng phù hợp với thực tế.
Tôi chọn 2 nhóm người: làm full time và người khai báo đã nghỉ hưu (retired) để so sánh.
library(pander)
df <- df_survey %>%
filter(EmploymentStatus == c("Employed full-time","Retired"), Age %in% c(20:75)) %>%
group_by(EmploymentStatus) %>%
summarise(Min_Age = min(Age, na.rm=TRUE), Median_Age = median(Age, na.rm=TRUE),
Mean_Age = mean(Age), Max_Age = max(Age, na.rm=TRUE)) %>% pander()
Những người làm việc toàn thời gian trong khảo sát này chỉ chiếm khoảng 31.9% (5337 trong số 16.716 người được hỏi).
df <- df_survey %>%
filter(EmploymentStatus == c("Employed full-time","Retired"), Age %in% c(20:75)) -> df2
table(df2$EmploymentStatus)
##
## Employed full-time Retired
## 5337 49
summary(df2$Age[df2$EmploymentStatus=="Employed full-time"])
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 20.00 27.00 31.00 33.58 38.00 73.00
library(ggthemes)
ggplot(df2, aes(x=Age, fill = EmploymentStatus)) +
geom_density(alpha=0.4)+
geom_vline(xintercept = mean(df2$Age[df2$EmploymentStatus=="Employed full-time"], na.rm = TRUE), linetype="dotted", color = "blue", size=1)+
geom_vline(xintercept = mean(df2$Age[df2$EmploymentStatus=="Retired"], na.rm = TRUE), linetype="dotted", color = "red", size=1)+
geom_rangeframe() +
theme_tufte()+
labs(x = "Age", y = "Density",
title = "How Old Are Data Scientists?",
subtitle = "Employed Full-Time vs. Retired",
caption = "Data Source: Kaggle Data Science Survey")
Data science là lĩnh vực chủ yếu dành cho những người trẻ, với độ tuổi trung bình là 33.58, phổ biến nhất là 31.00 tuổi trong số những người làm việc toàn thời gian. 75th percentile là 38.00. Những người từ 55 tuổi trở lên chiếm tỉ lệ rất nhỏ (~ 1%), dù rằng người lớn tuổi nhất vẫn đang làm full time là 73 tuổi.
Một số ít đã “retired” (49 người, trong đó có những người retired trước tuổi 50), vẫn còn làm việc.
Như vậy, cơ hội dành cho người lớn tuổi trong lĩnh vực data science dù nhỏ, nhưng vẫn còn đối với những người lạc quan.