Tìm hiểu mối quan tâm và những khó khăn gặp phải liên quan đến xác suất thống kê khi làm nghiên cứu khoa học của sinh viên trường Đại học Y Dược Huế
Cài package pacman trước khi chạy bằng install.packages(pacman)
pacman::p_load(googlesheets4, haven, tidyverse, psych, likert, wesanderson)
Xem file spreadsheet tại đây.
gs4_deauth()
df = read_sheet('1-TDNulTFj_xe-YZuSQ8U2KIl14reqvW0NlxEesUkG7k',
sheet = 'testing') # đổi tên sheet thành collecting để lấy dữ liệu thực tế
var_code = read_sheet('1-TDNulTFj_xe-YZuSQ8U2KIl14reqvW0NlxEesUkG7k',
sheet = 'var_code')
names(df) = var_code$code # Mã hoá tên biến
df <- labelled::set_variable_labels(df, .labels = var_code$label) # Gắn nhãn
head(df)
## # A tibble: 3 × 48
## time email name age gender major sch_year learned_stats no_studies
## <lgl> <lgl> <lgl> <dbl> <chr> <chr> <chr> <chr> <dbl>
## 1 NA NA NA 12 Nam Y đa khoa Năm 1 Đã học 5
## 2 NA NA NA 13 Nam Y đa khoa Năm 2 Chưa học 1
## 3 NA NA NA 14 Nữ Điều dưỡng Năm 2 Chưa học 2
## # … with 39 more variables: affect_q1 <dbl>, affect_q2 <dbl>, affect_q3 <dbl>,
## # affect_q4 <dbl>, affect_q5 <dbl>, affect_q6 <dbl>, cognize_q1 <dbl>,
## # cognize_q2 <dbl>, cognize_q3 <dbl>, cognize_q4 <dbl>, cognize_q5 <dbl>,
## # cognize_q6 <dbl>, value_q1 <dbl>, value_q2 <dbl>, value_q3 <dbl>,
## # value_q4 <dbl>, value_q5 <dbl>, value_q6 <dbl>, value_q7 <dbl>,
## # value_q8 <dbl>, value_q9 <dbl>, difficulty_q1 <dbl>, difficulty_q2 <dbl>,
## # difficulty_q3 <dbl>, difficulty_q4 <dbl>, difficulty_q5 <dbl>, …
df %>%
select(gender, major, sch_year,
learned_stats, affect_q1:effort_q4) %>%
mutate_all(factor) %>%
summary()
## gender major sch_year learned_stats affect_q1 affect_q2 affect_q3
## Nam:2 Điều dưỡng:1 Năm 1:1 Chưa học:2 1:1 3:1 1:2
## Nữ :1 Y đa khoa :2 Năm 2:2 Đã học :1 2:2 5:2 4:1
##
## affect_q4 affect_q5 affect_q6 cognize_q1 cognize_q2 cognize_q3 cognize_q4
## 2:1 3:1 1:1 3:1 1:2 4:1 4:1
## 5:1 4:1 2:2 4:1 2:1 5:1 6:1
## 6:1 7:1 5:1 6:1 7:1
## cognize_q5 cognize_q6 value_q1 value_q2 value_q3 value_q4 value_q5 value_q6
## 1:1 2:1 5:2 3:1 1:1 1:1 2:1 3:1
## 2:1 3:1 7:1 6:1 4:1 4:1 5:1 4:1
## 5:1 4:1 7:1 5:1 6:1 7:1 6:1
## value_q7 value_q8 value_q9 difficulty_q1 difficulty_q2 difficulty_q3
## 4:1 1:1 2:1 5:2 3:1 4:1
## 6:1 2:1 3:1 7:1 6:1 6:1
## 7:1 5:1 4:1 7:1 7:1
## difficulty_q4 difficulty_q5 difficulty_q6 difficulty_q7 interest_q1
## 1:1 2:1 5:2 3:1 4:1
## 2:1 3:1 7:1 6:1 6:1
## 5:1 4:1 7:1 7:1
## interest_q2 interest_q3 interest_q4 effort_q1 effort_q2 effort_q3 effort_q4
## 1:1 2:1 5:2 3:1 1:1 1:1 3:1
## 2:1 3:1 7:1 6:1 2:1 2:2 5:2
## 5:1 4:1 7:1 5:1
# Viết thêm code tính %
# ...
df %>% select(age, no_studies) %>%
describe()
## vars n mean sd median trimmed mad min max range skew kurtosis
## age 1 3 13.00 1.00 13 13.00 1.48 12 14 2 0.00 -2.33
## no_studies 2 3 2.67 2.08 2 2.67 1.48 1 5 4 0.29 -2.33
## se
## age 0.58
## no_studies 1.20
# Viết thêm code mô tả kỹ hơn
# ...
lbs <- c("1-Không đồng ý", "2", "3", "4", "5" , "6", "7-Hoàn toàn đồng ý")
sats36 <- df %>%
select(affect_q1:effort_q4) %>%
dplyr::mutate_if(is.numeric, factor, levels = 1:7, labels = lbs) %>%
drop_na() %>%
as.data.frame()
p = likert.bar.plot(likert(sats36),
legend.position="right",
legend="Mức độ đồng ý",
ordered=F)
p
Cái này phải thu số liệu thử xong mới chạy được
Chạy CFA xong mới chạy cái này được
Cái này phải thu số liệu thử xong mới chạy được
df = data.frame(kho_khan = c('Khó hiểu bài',
'Không áp dụng được lý thuyết vào thực hành',
'Không biết sử dụng các phầm mềm thống kê'),
so_luong = c(5, 10, 15))
df %>% ggplot(aes(x = kho_khan, y = so_luong, fill =kho_khan)) +
geom_col(width = 0.5) +
coord_flip() +
xlab('Khó khăn') +
ylab('Số lượng') +
theme(legend.position = 'none') +
ggtitle('Khó khăn gặp phải khi học xác xuất thống kê') +
scale_fill_manual(values=wes_palette(n = 3, "Zissou1"))
Bảng màu (colour palette) sẽ được thay đổi sau khi có số liệu đầy đủ
Cái này phải thu số liệu thử xong mới chạy được
df = data.frame(kho_khan = c('Không đủ thời gian, công sức để thu thập số liệu',
'Xảy ra sai sót khi nhập số liệu vào máy tính',
'Không biết lựa chọn phương pháp, kiểm định thống kê phù hợp với đề tài',
'Không biết phân tích kết quả nghiên cứu',
'Khác'),
so_luong = c(5, 10, 15, 20, 1))
df %>% arrange(so_luong) %>%
ggplot(aes(x = reorder(kho_khan, so_luong), y = so_luong, fill =kho_khan)) +
geom_col(width = 0.5) +
coord_flip() +
xlab('Khó khăn') +
ylab('Số lượng') +
theme(legend.position = 'none') +
ggtitle('Khó khăn gặp phải khi học xác xuất thống kê') +
scale_fill_manual(values=wes_palette(n = 5, "Zissou1"))
Bảng màu (colour palette) sẽ được thay đổi sau khi có số liệu đầy đủ
Cái này phải thu số liệu thử xong mới chạy được