df <- read.csv("data.csv")
head(df)
## ho_id khu_vuc gioi_tinh tuoi hoc_van thu_nhap chi_tieu tiet_kiem
## 1 1 Nong_thon Nu 31 THCS 7150000 5100000 2050000
## 2 2 Thanh_thi Nam 32 THCS 7300000 5200000 2100000
## 3 3 Nong_thon Nu 33 THPT 7450000 5300000 2150000
## 4 4 Thanh_thi Nam 34 Dai_hoc 7600000 5400000 2200000
## 5 5 Nong_thon Nu 35 THCS 7750000 5500000 2250000
## 6 6 Thanh_thi Nam 36 THPT 7900000 5600000 2300000
bang_mo_ta <- data.frame(
Chi_so = c("Thu nhập", "Chi tiêu", "Tiết kiệm"),
Trung_binh = c(mean(df$thu_nhap, na.rm = TRUE),
mean(df$chi_tieu, na.rm = TRUE),
mean(df$tiet_kiem, na.rm = TRUE)),
Trung_vi = c(median(df$thu_nhap, na.rm = TRUE),
median(df$chi_tieu, na.rm = TRUE),
median(df$tiet_kiem, na.rm = TRUE)),
Nho_nhat = c(min(df$thu_nhap, na.rm = TRUE),
min(df$chi_tieu, na.rm = TRUE),
min(df$tiet_kiem, na.rm = TRUE)),
Lon_nhat = c(max(df$thu_nhap, na.rm = TRUE),
max(df$chi_tieu, na.rm = TRUE),
max(df$tiet_kiem, na.rm = TRUE)),
Do_lech_chuan = c(sd(df$thu_nhap, na.rm = TRUE),
sd(df$chi_tieu, na.rm = TRUE),
sd(df$tiet_kiem, na.rm = TRUE))
)
bang_mo_ta
## Chi_so Trung_binh Trung_vi Nho_nhat Lon_nhat Do_lech_chuan
## 1 Thu nhập 14575000 14575000 7150000 22000000 4351724
## 2 Chi tiêu 10050000 10050000 5100000 15000000 2901149
## 3 Tiết kiệm 4525000 4525000 2050000 7000000 1450575
library(dplyr)
##
## 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
bang_khu_vuc <- df %>%
group_by(khu_vuc) %>%
summarise(
So_ho = n(),
Thu_nhap_TB = mean(thu_nhap, na.rm = TRUE),
Chi_tieu_TB = mean(chi_tieu, na.rm = TRUE),
Tiet_kiem_TB = mean(tiet_kiem, na.rm = TRUE)
)
bang_khu_vuc
## # A tibble: 2 × 5
## khu_vuc So_ho Thu_nhap_TB Chi_tieu_TB Tiet_kiem_TB
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Nong_thon 50 14500000 10000000 4500000
## 2 Thanh_thi 50 14650000 10100000 4550000
bang_hoc_van <- df %>%
group_by(hoc_van) %>%
summarise(
So_ho = n(),
Thu_nhap_TB = mean(thu_nhap, na.rm = TRUE),
Chi_tieu_TB = mean(chi_tieu, na.rm = TRUE)
)
bang_hoc_van
## # A tibble: 3 × 4
## hoc_van So_ho Thu_nhap_TB Chi_tieu_TB
## <chr> <int> <dbl> <dbl>
## 1 Dai_hoc 25 14800000 10200000
## 2 THCS 50 14497000 9998000
## 3 THPT 25 14506000 10004000
Dựa trên kết quả phân tích:
Khu vực thành thị có thu nhập trung bình cao hơn khu vực nông
thôn
Chi tiêu và tiết kiệm của khu vực thành thị cũng cao hơn
→ Điều này phản ánh mức sống và điều kiện kinh tế ở thành thị tốt
hơn
Nhóm có trình độ học vấn cao (Đại học) có thu nhập cao nhất
Thu nhập giảm dần ở các nhóm THPT và THCS
→ Cho thấy học vấn có ảnh hưởng tích cực đến thu nhập
Chi tiêu tăng cùng với thu nhập
→ Những người có thu nhập cao có xu hướng chi tiêu nhiều hơn
Tiết kiệm cũng tăng theo thu nhập
→ Thu nhập cao giúp nâng cao khả năng tích lũy tài chính
# Histogram
hist(df$thu_nhap,
main = "Phân bố thu nhập",
xlab = "Thu nhập",
col = "skyblue",
border = "white")
# Boxplot
boxplot(chi_tieu ~ khu_vuc,
data = df,
main = "Chi tiêu theo khu vực",
xlab = "Khu vực",
ylab = "Chi tiêu",
col = c("lightgreen", "orange"))
# Scatter plot
plot(df$thu_nhap, df$chi_tieu,
main = "Mối quan hệ thu nhập và chi tiêu",
xlab = "Thu nhập",
ylab = "Chi tiêu",
pch = 19,
col = "blue")
model <- lm(chi_tieu ~ thu_nhap, data = df)
# Vẽ biểu đồ + đường hồi quy
plot(df$thu_nhap, df$chi_tieu,
main = "Mối quan hệ thu nhập và chi tiêu",
xlab = "Thu nhập",
ylab = "Chi tiêu",
pch = 19,
col = "blue")
abline(model, col = "red", lwd = 2)
# Kết quả mô hình
summary(model)
## Warning in summary.lm(model): essentially perfect fit: summary may be
## unreliable
##
## Call:
## lm(formula = chi_tieu ~ thu_nhap, data = df)
##
## Residuals:
## Min 1Q Median 3Q
## -0.0000000171476 -0.0000000001249 0.0000000002488 0.0000000004750
## Max
## 0.0000000013082
##
## Coefficients:
## Estimate Std. Error
## (Intercept) 333333.33333332987967878580 0.00000000065499830592
## thu_nhap 0.66666666666666685170 0.00000000000000004308
## t value Pr(>|t|)
## (Intercept) 508907168642087 <0.0000000000000002 ***
## thu_nhap 15475422681428390 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.000000001865 on 98 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 2.395e+32 on 1 and 98 DF, p-value: < 0.00000000000000022
→ Kết luận: Thu nhập là biến giải thích tốt cho hành vi chi tiêu của hộ gia đình