Bộ dữ liệu a là bộ dữ liệu về giá và sản lượng bơ Hass được bán ra từ năm 2015 - 2018 ở Hoa Kỳ
Bộ dữ liệu bao gồm 18249 quan sát và 12 biến như sau:
Date: Ngày quan sát là các ngày cuối tuần
AveragePrice: Giá trung bình của một quả bơ
Total.Volume: Tổng số bơ bán được
X4046: Tổng số bơ có mã số 4046 bán ra
X4225: Tổng số bơ có mã số 4225 bán ra
X4770: Tổng số bơ có mã 4770 bán ra
Total.Bag: Tổng số túi bơ được bán ra
Small.Bags: Số túi nhỏ
Large.Bags: Số túi lớn
type: loại thông thường hoặc hữu cơ
year: Năm quan sát
region: khu vực quan sát
#đọc file dữ liệu csv
a <- read.csv(file.choose(), header = T)
# Rút trích dữ liệu, tiến hành loại bỏ các biến không cần sử dụng tới
a <- select(a, -c(X,XLarge.Bags)) # xóa các cột X và cột XLarge.Bags
aTiến hành chuyển đổi cột year thành hệ số để trở thành biến phân loại, đồng thời tạo ra biến mới là biến month từ cột Date
Tiến hành Trực quan hóa dữ liệu để phân tích dữ liệu, nhằm hiểu rõ hơn về các mối quan hệ, xu hướng và biểu đồ dữ liệu một cách hiệu quả. Sử dụng các công cụ và phương tiện phù hợp để trực quan hóa dữ liệu cho các biến trong bộ dữ liệu.
a %>% group_by(year) %>% summarise(m= mean(AveragePrice)) %>%
ggplot(aes(x = year,y = m)) +
geom_col(fill = 'pink', position = 'dodge') +
geom_text(aes(label = round(m,2)), vjust = 2) +
labs(x = 'Năm', y = 'Avg_price', title = 'Giá trung bình của bơ từ năm 2015-2018')Giá trung bình của bơ giảm dần từ năm 2015 đến năm 2018
Giá trung bình giữa các loại có sự chênh lệch tương đối ít qua các năm
Năm 2017 là năm mà bơ có giá trung bình cao nhất trong vòng 4 năm, chứng tỏ năm 2017 là năm thị trường tiêu thụ bơ lớn, điều này làm tăng giá bơ
Năm 2016 là năm có giá trung bình thấp nhất (1,34), tức là năm này bơ là thực phẩm không được ưa chuộng nhiều
a %>% group_by(type,year) %>% summarise(m = mean(AveragePrice)) %>%
ggplot(aes(x = year, y = m, fill = type)) +
geom_col(position = 'dodge') +
labs(title = 'Giá trung bình của bơ theo loại')Đồ thị thể hiện giá của trung bình của 2 loại bơ trong vòng 4 năm:
Năm 2017 là năm có giá trung bình của cả 2 loại là lớn nhất: hơn 1,25 đối với conventional và lớn hơn 1,5 đối với organic
Bơ thông thường có giá thấp hơn so với bơ hữu cơ
Bơ thông thường được ưa chuộng hơn vì giá luôn thấp hơn so với bơ hữu cơ, chênh lệch khoảng ~0,4
a %>% group_by(type) %>% summarise(m = mean(Total.Volume)) %>%
mutate(pc= scales::percent(prop.table(m))) %>%
ggplot(aes(x = '', y = pc,fill = type)) +
geom_col(color = 'black') +
coord_polar('y') +
geom_text(aes(x = 1.3, label = pc ), position = position_stack(vjust = .4)) +
theme_void()Thông qua đồ thị Pie thể hiện phần trăm bán ra của 2 loại bơ
Có 97% loại bơ bán ra là bơ thông thường, trên thị trường loại bơ chiếm đa số, dễ dàng tìm thấy
Số lượng bơ hữu cơ có mặt trên thị trường rất ít chỉ 3% trên tổng số bơ được bán ra
a %>% ggplot(aes(x=Total.Volume, y=Total.Bags)) +
geom_point() +
geom_smooth(method ="lm", color="pink") +
labs(title = 'Mối quan hệ giữa tổng số lượng và số túi bán ra')## `geom_smooth()` using formula = 'y ~ x'
Số lượng bơ bán ra có cùng mối tương quan với số túi bán ra. Khi số lượng bán ra tăng thì số túi bơ cũng tăng theo
Đồ thị phân tán thể hiện mối quan hệ giữ hai biến AveragePrice và Total.Volume:
Biểu đồ phân tán không đồng đều, giữ hai biến có sự phụ thuộc lẫn nhau
Số lượng bơ càng nhiều thì giá trung bình của bơ càng thấp. Bơ có mức giá trung bình tập trung 0,5 - 2
a %>% ggplot(aes(x = AveragePrice, y = Total.Volume)) +
geom_point(aes(color = type)) +
geom_smooth(color = 'black')## `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
# tính giá cả trung bình theo nhóm
av <- a %>% group_by(year, month, type) %>% # nhóm tập dữ liệu theo year,month,type
select(year, month, type,AveragePrice) %>% # rút trích các cột
summarise(Avg = mean(AveragePrice)) # tính giá trung bình
# vẽ biểu đồ
av %>% ggplot(aes(x=month, y=Avg, colour=year,group = year)) +
geom_line() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
facet_grid(. ~av$type)Đồ thị thể hiện xu hướng giá cả của 2 loại bơ riêng biệt.
Dựa vào đồ thị, năm 2017 là năm bơ có giá cao nhất, đỉnh điểm là vào tháng 8-2017 và giá có xu hướng giảm vào mấy tháng cuối năm
Kể cả bơ thông thường và bơ hữu cơ, giá của chúng đều giảm mạnh vào cuối năm 2017
# tính tần số của Số lượng bơ bán ra theo nhóm
avo <- a %>% group_by(year,month,type) %>%
select(year,month,type,Total.Volume) %>%
summarise(avg = mean(Total.Volume))
# vẽ đồ thị số lượng trung bình hàng tháng của bơ thường
avo %>% ggplot(aes(x = year, y = avg, group = month, fill = month)) +
geom_col(data = avo %>% filter(type == 'conventional'), position = 'dodge', color = 'black') +
labs(x = 'năm', title = 'Số lượng bơ thường trung bình hàng tháng')Số lượng bơ bán ra hầu như tăng dần theo thời gian. Đặc biệt từ cuối năm 2017 số lượng bơ trên thị trường ngày càng tăng
Số lượng nhiều nhất qua từng năm là : tháng 5-2015 (hơn 1,5 tr), tháng 5-2016 (hơn 2 tr), tháng 2-2017 (hơn 2 tr)
Số lượng bơ thường vào những tháng cuối năm thường ít, chẳng hạn tháng 10,11-2015, tháng 11-2016, tháng 9-1017
avo %>% ggplot(aes(x = year, y = avg, group = month, fill = month)) +
geom_col(data = avo %>% filter(type == 'organic'), color = 'black',position = 'dodge') +
labs(x = 'năm', title = 'Số lượng bơ hữu cơ trung bình hàng tháng')Tương tự loại bơ thông thường, bơ hữu cơ có số lượng bán ra tăng dần theo thời gian
Số lượng bơ có mặt trên thị trường nhiều thường ở những tháng đầu năm, chẳng hạn tháng 5-2015, 4-2016
Số lượng bơ hạn chế vào cuối năm, tuy nhiên cuối năm 2017 số lượng bơ bán ra tăng lên rất nhiều
a %>% ggplot(aes(x = AveragePrice, fill = year)) +
geom_density() +
facet_wrap(~year) +
labs(title = 'Phân phối giá theo năm')Thông qua đồ thị, năm 2015 là năm có mật độ giá thấp, hầu như ở mức giá 1-1,5. Trong khi đó năm 2017 có mật độ cao hơn
Tiến hành phân tích tổng số lượng bơ trên 4 khu vực, bao gồm Chicago, NewYork, LosAngeles và SanFrancisco.
b <- a %>% group_by(year,month,region) %>%
select(year,month,Total.Volume,region) %>%
summarise(avg = mean(Total.Volume))
ab <- b %>% filter(region %in% c('Chicago','NewYork','LosAngeles','SanFrancisco'))
ab %>% group_by(avg,year) %>%
ggplot(aes(x = region, y = avg)) +
geom_col(position = 'dodge') +
facet_wrap(~year)LosAngeles là khu vực có số lượng bơ bán ra nhiều nhất, điều này tương đương lượng bơ có mặt trên thị trường thường được trồng từ khu vực này
Ngược lại với LosAngeles, các khu vực còn lại có số lượng bơ tương đương nhau
Đồng thời, năm 2017 là năm có số lượng nhiều nhất trong 4 khu vực trên
SanFrancisco là khu vực có mật độ số lượng bơ bán ra thấp, hầu như ở mức nhỏ hơn 500000. Trong khi đó khu vực LosAngeles, NewYork lại có mật độ cao hơn
Tạo ra dữ liệu mới thống kê về khối lượng và giá của West, Northeast, Southeast và SouthCentral
m <- a %>% group_by(region,year,month) %>%
select(month,year,AveragePrice,Total.Volume,region) %>%
filter(region %in% c('West','Northeast','Southeast','Midsouth'))m %>% group_by(region) %>% summarise(m1 = mean(AveragePrice)) %>%
ggplot(aes(x = region, y = m1, fill = region)) +
geom_col() +
geom_text(aes(label = round(m1,2)), hjust = 2, color = 'black') +
coord_flip()Northeast đứng đầu danh sách với giá bơ trung bình cao nhất ở mức 1,6, tiếp theo là Southeast (1,4) và Midsouth là như nhau và thấp nhất là West (1,27)
Khi đó bơ ở vùng Tây Bắc có giá hơn so với các vùng còn lại
m %>% group_by(region) %>% summarise(m2 = mean(Total.Volume)) %>%
ggplot(aes(x = region, y = m2, fill = region)) +
geom_col() +
coord_flip()Khu vực có số lượng bơ bán ra nhiều nhất là West, tiếp theo đó là Northeast, Southeast, Midsouth. Khu vực có giá càng thấp thì số lượng hàng lại càng nhiều
a %>% group_by(type) %>% summarise(m = mean(AveragePrice)) %>%
mutate(pc= scales::percent(prop.table(m))) %>%
ggplot(aes(x = '', y = pc,fill = type)) +
geom_col(color = 'black') +
coord_polar('y') +
geom_text(aes(x = 1.3, label = pc ), position = position_stack(vjust = .4)) +
theme_void()Thông qua đồ thị Pie thể hiện phần trăm giá cả của 2 loại bơ
Có 59% loại bơ bán ra là bơ hữu cơ có giá trên trung bình, trên thị trường loại bơ này có giá trị cao vì loại bơ này có số lượng khá ít
Số lượng bơ thông thường có mặt trên thị trường có giá thấp chỉ chiếm 41% trên tổng số
t <- a %>% group_by(year, month,type) %>%
select(year, month, type,X4046) %>%
summarise(Avg = mean(X4046))
t %>% ggplot(aes(x=month, y=Avg, colour=year,group = year)) +
geom_line() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
facet_grid(. ~t$type)Đồ thị thể hiện xu hướng lượng hàng hóa của 2 loại bơ riêng biệt.
Dựa vào đồ thị, năm 2015 là năm bơ có lượng hàng nhiều nhất, đỉnh điểm là vào tháng 5-2015 đối với bơ thường và số lượng bơ có xu hướng giảm vào mấy tháng cuối năm
Kể cả bơ thông thường và bơ hữu cơ, số lượng của chúng đều giảm mạnh vào cuối năm 2017
a %>% group_by(type) %>% summarise(f = mean(X4225)) %>%
ggplot(aes(x = type ,y = f)) +
geom_col(position = 'dodge', fill = 'violet') +
geom_text(aes(label = round(f)), vjust = .5)Số lượng bơ có mã số 4225 loại bơ thông thường có số lượng rất lớn, mặt hàng này dễ dàng tìm thấy trên thị trường
a %>% group_by(year,month,type) %>% select(year,month,type,X4225) %>%
summarise(x = mean(X4225)) %>%
ggplot(aes(x = x)) +
geom_histogram(fill = 'pink', color = 'blue')## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
a %>% group_by(year) %>% summarise(m = mean(Total.Volume)) %>%
filter(year %in% c('2015','2016','2017')) %>%
mutate(pc= scales::percent(prop.table(m))) %>%
ggplot(aes(x = '', y = pc,fill = year)) +
geom_col(color = 'black') +
coord_polar('y') +
geom_text(aes(x = 1.3, label = pc ), position = position_stack(vjust = .4)) +
theme_void()Thông qua đồ thị Pie thể hiện phần trăm số lượng bơ trong vòng 3 năm
Năm 2017 là năm có lượng bơ bán ra nhiều nhất 34,47%, ngược lại năm 2015 là năm có phần trăm nhỏ nhất