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.
setwd("D:/HỌC TẬP/Phân tích dữ liệu định tính")
library(xlsx)
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
library(data.table)
## Warning: package 'data.table' was built under R version 4.2.3
d <- read.xlsx("Car Ownership.xlsx",1)
data.table(d)
## Occupation MI CS YE FS FH Car
## 1: Nurse 4500 720 3 Stable No significant issues Yes
## 2: Software Developer 7800 800 5 Stable No significant issues Yes
## 3: Chef 3200 650 2 Unstable Missed payments in the past No
## 4: Accountant 6500 750 7 Stable No significant issues Yes
## 5: Salesperson 3000 600 1 Unstable Missed payments in the past No
## ---
## 393: Project Manager 7000 730 5 Stable No significant issues Yes
## 394: Chef 4500 680 4 Stable No significant issues Yes
## 395: Interior Designer 5500 690 4 Stable No significant issues Yes
## 396: Medical Assistant 3500 640 3 Stable No significant issues No
## 397: Customer Service Rep 3200 641 4 Stable No significant issues No
## NC
## 1: 0
## 2: 0
## 3: 0
## 4: 1
## 5: 0
## ---
## 393: 0
## 394: 0
## 395: 1
## 396: 1
## 397: 2
table(d$Car)/sum(table(d$Car))
##
## No Yes
## 0.3476071 0.6523929
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
d |> ggplot(aes(x = Car, y = after_stat(count))) +
geom_bar(fill = 'pink') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'black', vjust = - .5) +
theme_classic() +
labs(x = 'Quyền sở hữu ô tô', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát thì có 65% người trong đó sở hữu xe và 35% người không sở hữu xe
table(d$Occupation)
##
## Account Executive Account Manager
## 4 3
## Accountant Architect
## 9 9
## Art Director Attorney
## 1 3
## Automotive Mechanic Bank Teller
## 1 4
## Barista Bartender
## 1 1
## Business Analyst Business Owner
## 3 1
## Carpenter Chef
## 3 26
## Civil Engineer Computer Programmer
## 1 1
## Computer Technician Construction Worker
## 1 5
## Customer Service Customer Service Rep
## 2 7
## Customer Support Data Analyst
## 1 3
## Data Scientist Dental Assistant
## 5 3
## Dental Hygienist Dentist
## 7 1
## Designer Electrical Engineer
## 2 1
## Electrician Elementary School Teacher
## 17 1
## Engineer Entrepreneur
## 3 1
## Event Planner Executive Assistant
## 4 3
## Fashion Designer Financial Advisor
## 2 6
## Financial Analyst Financial Manager
## 7 1
## Financial Planner Fitness Instructor
## 1 1
## Flight Attendant Graphic Artist
## 1 2
## Graphic Designer Hair Stylist
## 15 2
## Hairdresser HR Generalist
## 1 3
## HR Manager HR Specialist
## 1 1
## Human Resources Human Resources Manager
## 5 5
## Insurance Agent Insurance Underwriter
## 8 1
## Interior Designer Investment Banker
## 3 1
## IT Consultant IT Manager
## 1 6
## IT Support Specialist Lawyer
## 1 4
## Management Consultant Marketing
## 1 2
## Marketing Analyst Marketing Coordinator
## 1 5
## Marketing Manager Marketing Specialist
## 6 1
## Mechanic Mechanical Designer
## 3 1
## Mechanical Engineer Mechanical Technician
## 4 3
## Medical Assistant Musician
## 4 2
## Nurse Nurse Practitioner
## 10 1
## Office Manager Optometrist
## 2 1
## Personal Trainer Pharmacist
## 5 4
## Photographer Physical Education Teacher
## 3 4
## Physical Therapist Physical Therapist Assistant
## 10 1
## Physical Trainer Physician
## 2 3
## Physician Assistant Plumber
## 3 6
## Police Officer Project Manager
## 1 4
## Psychologist Public Relations
## 2 1
## Real Estate Agent Registered Nurse
## 9 1
## Retail Manager Retail Salesperson
## 4 1
## Sales Manager Sales Representative
## 9 8
## Salesperson Social Media Manager
## 3 1
## Social Worker Software Architect
## 5 1
## Software Developer Software Engineer
## 4 5
## Teacher Veterinarian
## 4 6
## Veterinarian Technician Waiter/Waitress
## 1 1
## Web Designer Web Developer
## 6 8
## Writer
## 7
library(ggplot2)
d |> ggplot(aes(Occupation)) +
geom_bar()
Nhận xét: Trong tổng số 397 người khảo sát thì có đến 26 người làm nghề chef và là nghề nghiệp nhiều nhất khảo sát được.
summary(d$MI)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1500 3500 4600 5364 6900 15000
Thu nhập trong 1 tháng nhỏ nhất là 1500 USD; lớn nhất là 15000 USD; thu nhập trung bình là 5364 USD; 25% dữ liệu nhỏ hơn 3500 USD (giá trị tứ phân vị thứ nhất); 50% dữ liệu nhỏ hơn 4600 USD (giá trị trung vị); 75% dữ liệu nhỏ hơn 6900 USD (giá trị tứ phân vị thứ ba).
income <- cut(d$MI, breaks= c(1000 , 3500 , 5364 , 15000), labels= c('thap', 'tb' , 'cao'))
table(income)
## income
## thap tb cao
## 107 120 170
table(income)/sum(table(income))
## income
## thap tb cao
## 0.2695214 0.3022670 0.4282116
library(ggplot2)
d |> ggplot(aes(x = income, y = after_stat(count))) +
geom_bar(fill = 'pink') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'black', vjust = - .5) +
theme_classic() +
labs(x = 'Monthly Income', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát thì có 27% người có thu nhập 1 tháng trong khoảng (1000,3500]; 30,2% người có thu nhập 1 tháng trong khoảng (3500,5364] và 42,8% người có thu nhập 1 tháng trong khoảng (5364,15000]
summary(d$CS)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 560.0 650.0 693.0 701.4 750.0 890.0
Điểm tín dụng nhỏ nhất là 560; lớn nhất là 890; thu nhập trung bình là 701,4; 25% dữ liệu nhỏ hơn 650 (giá trị tứ phân vị thứ nhất); 50% dữ liệu nhỏ hơn 693 (giá trị trung vị); 75% dữ liệu nhỏ hơn 750 (giá trị tứ phân vị thứ ba).
credit <- cut(d$CS, breaks= c(500 , 701 , 890), labels= c('low', 'high'))
table(credit)
## credit
## low high
## 212 185
table(credit)/sum(table(credit))
## credit
## low high
## 0.534005 0.465995
library(ggplot2)
d |> ggplot(aes(x = credit, y = after_stat(count))) +
geom_bar(fill = 'pink') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'black', vjust = - .5) +
theme_classic() +
labs(x = 'Credit Score', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát thì có 53,4% người có điểm tín dụng trong khoảng (500,701] và 46,6% người có điểm tín dụng trong khoảng (701,890]
summary(d$YE)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 3.000 4.000 4.272 6.000 12.000
Kinh nghiệm làm việc nhỏ nhất là 1 năm; lớn nhất là 12 năm; kinh nghiệm làm việc trung bình là 4.272 năm ; 25% dữ liệu nhỏ hơn 3 năm (giá trị tứ phân vị thứ nhất); 50% dữ liệu nhỏ hơn 4 năm (giá trị trung vị); 75% dữ liệu nhỏ hơn 6 năm (giá trị tứ phân vị thứ ba).
years <- cut(d$YE, breaks= c(0 , 3 , 12), labels= c('it', 'nhieu'))
table(years)
## years
## it nhieu
## 149 248
table(years)/sum(table(years))
## years
## it nhieu
## 0.3753149 0.6246851
library(ggplot2)
d |> ggplot(aes(x = years, y = after_stat(count))) +
geom_bar(fill = 'pink') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'black', vjust = - .5) +
theme_classic() +
labs(x = 'Years of Employment', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát thì có 38% người kinh nghiệm làm việc trong khoảng (0,3] và 62% người kinh nghiệm làm việc trong khoảng (3,12]
table(d$FS)/sum(table(d$FS))
##
## Stable Unstable
## 0.7758186 0.2241814
library(ggplot2)
d |> ggplot(aes(x = FS, y = after_stat(count))) +
geom_bar(fill = 'pink') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'black', vjust = - .5) +
theme_classic() +
labs(x = 'Finance Status', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát thì có 78% người tài chính ổn định và 22% người tài chính không ổn định.
table(d$FH)/sum(table(d$FH))
##
## Late payments Missed payments in the past
## 0.1183879 0.1083123
## No significant issues
## 0.7732997
library(ggplot2)
d |> ggplot(aes(x = FH, y = after_stat(count))) +
geom_bar(fill = 'pink') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'black', vjust = - .5) +
theme_classic() +
labs(x = 'Finance History', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát thì có 11,8% người thanh toán sau ngày đến hạn (Late payments); 10,8% người trong quá khứ bỏ lỡ một khoản thanh toán hóa đơn hoàn toàn (Missed payments in the past) và 77,3% người không có vấn đề về lịch sử tài chính (No significant issues).
cpp <- table(d$Car, d$FS)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## Stable Unstable Sum
## No 0.13602015 0.21158690 0.34760705
## Yes 0.63979849 0.01259446 0.65239295
## Sum 0.77581864 0.22418136 1.00000000
d |> ggplot(aes(x = Car, y = after_stat(count))) +
geom_bar(fill = 'pink') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'black', vjust = - .5) +
facet_grid(. ~ FS) +
# theme_classic() +
labs(x = 'Quyền sở hữu ô tô', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát được
77,6% người thuộc nhóm tài chính ổn định, trong đó:
Người đã có xe chiếm 64%
Người chưa có xe chiếm 13,6%
22,4% người thuộc nhóm tài chính không ổn định, trong đó:
Người đã có xe chiếm 21,1%
Người chưa có xe chiếm 1,3%
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.2.3
##
## Attaching package: 'DescTools'
## The following object is masked from 'package:data.table':
##
## %like%
cpp <- table(d$Car, d$FS)
addmargins(cpp)
##
## Stable Unstable Sum
## No 54 84 138
## Yes 254 5 259
## Sum 308 89 397
RelRisk(cpp)
## [1] 0.3990072
Tỷ lệ người tài chính ổn định nhưng không có xe gần bằng 40% tỷ lệ người tài chính ổn định và có xe. Hay nói cách khác tỷ lệ người tài chính ổn định và có xe cao hơn gấp 2,5 lần (1/0,3990072) tỷ lệ người tài chính ổn định nhưng không có xe.
cpp <- table(d$Car, d$FS)
library(epitools)
riskratio(cpp, rev = 'c')
## $data
##
## Unstable Stable Total
## No 84 54 138
## Yes 5 254 259
## Total 89 308 397
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## No 1.000000 NA NA
## Yes 2.506221 2.033962 3.088132
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0 3.167693e-42 5.308648e-41
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ người tài chính ổn định và có xe cao hơn gấp 2,5 lần tỷ lệ người tài chính ổn định nhưng không có xe.
cpp <- table(d$Car, d$FS)
cpp
##
## Stable Unstable
## No 54 84
## Yes 254 5
OddsRatio(cpp)
## [1] 0.01265467
Tỷ lệ người tài chính ổn định so với người tài chính chưa ổn định mà không có xe gần bằng 1,3% tỷ lệ người tài chính ổn định so với người tài chính chưa ổn định mà đã có xe.
cpp <- table(d$Car, d$FS)
cpp
##
## Stable Unstable
## No 54 84
## Yes 254 5
oddsratio(cpp, rev = 'r')
## $data
##
## Stable Unstable Total
## Yes 254 5 259
## No 54 84 138
## Total 308 89 397
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Yes 1.00000 NA NA
## No 75.71606 32.09469 226.2817
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Yes NA NA NA
## No 0 3.167693e-42 5.308648e-41
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ người tài chính ổn định so với người tài chính chưa ổn định mà đã có xe cao hơn gấp 75 lần tỷ lệ người tài chính ổn định so với người tài chính chưa ổn định mà không có xe.
Phương pháp Chi bình phương
Giả thuyết
\(H_0\): X, Y độc lập
k <- data.frame(d$Car, d$FS, d$FH, d$Occupation, years, income, credit)
cpp <- table(d$Car, d$FS)
cpp
##
## Stable Unstable
## No 54 84
## Yes 254 5
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 176.45, df = 1, p-value < 2.2e-16
Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy quyền sở hữu xe và tình trạng tài chính có liên quan với nhau .
cpp <- table(d$Car, d$FH)
cpp
##
## Late payments Missed payments in the past No significant issues
## No 42 43 53
## Yes 5 0 254
chisq.test(cpp)
##
## Pearson's Chi-squared test
##
## data: cpp
## X-squared = 183.93, df = 2, p-value < 2.2e-16
Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy quyền sở hữu xe và lịch sử tài chính có liên quan với nhau .
cpp <- table(k$income, d$Car)
cpp
##
## No Yes
## thap 98 9
## tb 39 81
## cao 1 169
chisq.test(cpp)
##
## Pearson's Chi-squared test
##
## data: cpp
## X-squared = 240.18, df = 2, p-value < 2.2e-16
Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy quyền sở hữu ô tô và thu nhập mỗi tháng là có liên quan với nhau.
cpp <- table(d$Car, k$years)
cpp
##
## it nhieu
## No 121 17
## Yes 28 231
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 223.64, df = 1, p-value < 2.2e-16
Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy quyền sở hữu xe và kinh nghiệm làm việc có liên quan với nhau .
Chọn 1 hoặc 2 biến định tính và 1 biến định lượng làm biến phụ thuộc để phân tích, giải thích lý do.
Bộ dữ liệu 397 quan sát có 8 biến bao gồm 4 biến định tính (thông tin
về nghề nghiệp, tình trạng tài chính, lịch sử tài chính và quyền sở hữu
xe hơi) và 4 biến định lượng (thu nhập hàng tháng, điểm tín dụng, số năm
làm việc, số con). Thông tin nguồn dữ liệu được lấy từ
kaggle nguồn: https://www.kaggle.com/datasets/rkiattisak/car-ownership-predictionbeginner-intermediate
Occupation: thông tin về nghề nghiệp.
MI (Monthly Income): thông tin về số tiền mỗi cá nhân kiếm được trong một tháng.
CS (Credit Score): thông tin về điểm tín dụng của mỗi cá nhân, biểu thị bằng số về mức độ đáng tin cậy của họ.
YE (Years of Employment): thông tin về khoảng thời gian mỗi cá nhân đã được tuyển dụng tại công việc hiện tại của họ.
FS (Finance Status): thông tin về tình trạng tài chính của mỗi cá nhân (Stable: ổn định / Unstable: không ổn định).
FH (Finance History): thông tin về lịch sử tài chính của mỗi cá nhân, bao gồm hành vi trong quá khứ của họ với việc thanh toán hóa đơn, vay tiền và quản lý tín dụng (No significant issues: Không vấn đề / Missed payments in the past: trong quá khứ bỏ lỡ một khoản thanh toán hóa đơn hoàn toàn / Late payments: thanh toán sau ngày đến hạn).
NC (Number of Children): Số con của mỗi cá nhân.
Car: cho biết mỗi cá nhân có sở hữu ô tô hay không (Yes/No).
setwd("D:/HỌC TẬP/Phân tích dữ liệu định tính")
library(xlsx)
library(readxl)
library(data.table)
d <- read.xlsx("Car Ownership.xlsx",1)
data.table(d)
## Occupation MI CS YE FS FH Car
## 1: Nurse 4500 720 3 Stable No significant issues Yes
## 2: Software Developer 7800 800 5 Stable No significant issues Yes
## 3: Chef 3200 650 2 Unstable Missed payments in the past No
## 4: Accountant 6500 750 7 Stable No significant issues Yes
## 5: Salesperson 3000 600 1 Unstable Missed payments in the past No
## ---
## 393: Project Manager 7000 730 5 Stable No significant issues Yes
## 394: Chef 4500 680 4 Stable No significant issues Yes
## 395: Interior Designer 5500 690 4 Stable No significant issues Yes
## 396: Medical Assistant 3500 640 3 Stable No significant issues No
## 397: Customer Service Rep 3200 641 4 Stable No significant issues No
## NC
## 1: 0
## 2: 0
## 3: 0
## 4: 1
## 5: 0
## ---
## 393: 0
## 394: 0
## 395: 1
## 396: 1
## 397: 2
Xem biến Quyền sở hữu xe (Car) là biến phụ thuộc nhằm mục đích đo lường các yếu tố ảnh hưởng đến quyết định có mua ô tô hay không thông qua các yếu tố như thông tin về nghề nghiệp (Occupation), tình trạng tài chính (Finance Status), lịch sử tài chính (Finance History), thu nhập hàng tháng (Monthly Income), điểm tín dụng (Credit Score), số năm làm việc (Years of Employment), số con (Number of Children). Từ đó, xác định được đối tượng khách hàng phù hợp, triển khai những chính sách khuyến mãi, bán hàng kịp thời.
Xem thu nhập hàng tháng (Monthly Income) là biến phụ thuộc nhằm mục đích xem xét mối quan hệ giữa thu nhập trung bình hàng tháng với các biến độc lập như quyền sở hữu xe (Car), tình trạng tài chính (Finance Status), thu nhập hàng tháng (Monthly Income), điểm tín dụng (Credit Score), số năm làm việc (Years of Employment), số con (Number of Children).
Giả sử thu nhập hàng tháng (Y) là biến phụ thuộc, biến độc lập định lượng số năm làm việc (X).
Biến độc lập định tính quyền sở hữu xe (D) có 2 phạm trù Yes và No.
Đặt D = 1 nếu là Yes, D = 0 nếu là No.
Mô hình: \(Y = \beta_1 + \beta_2D + \beta_3X + u\)
Nếu là Yes (D = 1) - > \(Y = (\beta_1 + \beta_2) + \beta_3X + u\)
Nếu là No (D = 0) - > \(Y = \beta_1 + \beta_3X + u\)
Ý nghĩa
Giá trị trung bình của Y là \(\beta_1\) (đơn vị) khi \(X = 0\) và biến định tính là No.
X không đổi, giá trị trung bình của Y khi biến định tính là Yes cao hơn giá trị trung bình của Y khi biến định tính là No \(\beta_2\) (đơn vị).
Khi X tăng 1 đơn vị thì giá trị trung bình của Y tăng \(\beta_3\) (đơn vị) trong cả 2 trường hợp biến định tính là Yes hoặc No.
Tìm một dataset có dữ liệu định tính, dữ liệu định lượng, có trên 5 biến và nhiều hơn 300 quan sát.
Dữ liệu thu thập được gồm 1000 quan sát có 7 biến bao gồm 4 biến định
tính (gender, classify, parental level of education, test preparation
course) và 3 biến định lượng (math score, reading score, writing score).
Thông tin nguồn dữ liệu được lấy từ kaggle nguồn: https://www.kaggle.com/datasets/spscientist/students-performance-in-exams
- Gender: giới tính (Nam_Male/Nữ_Female)
- Classify: phân loại sinh
viên theo khoa (A: Khoa tài chính ngân hàng, B: Khoa hệ thống thông tin,
C: Khoa kinh tế, D: Khoa kinh tế đối ngoại)
- ploe (Parental level
of education): học vấn của cha mẹ
+ Bachelor’s degree: Bằng cử
nhân
+ Master’s degree: Bằng thạc sĩ
+ Associate’s degree: Bằng
chương trình học liên kết
+ High school: Trung học phổ thông
+
Some high school: Chưa học hoàn thành bậc THPT
+ Some college: Chưa
hoàn thành xong bậc đại học/cao đẳng
- tpc (Test preparation
course): Đánh giá mức độ hoàn thành khóa luyện thi của sinh viên.
+
None: không làm bài
+ Completed: đã hoàn thành 100% bài kiểm tra
- ms (Math score), rs (reading score), ws (writing score) lần lượt là
điểm toán, điểm đọc, điểm viết của sinh viên trong bài thi cuối kì.
setwd("D:/HỌC TẬP/Phân tích dữ liệu định tính")
library(xlsx)
library(readxl)
library(data.table)
cpp <- read.xlsx("DATA.xlsx",1)
data.table(cpp)
## gender classify ploe tpc ms rs ws NA.
## 1: female group B bachelor's degree none 72 72 74 NA
## 2: female group C some college completed 69 90 88 NA
## 3: female group B master's degree none 90 95 93 NA
## 4: male group A associate's degree none 47 57 44 NA
## 5: male group C some college none 76 78 75 NA
## ---
## 997: male group C high school none 62 55 55 NA
## 998: female group C high school completed 59 71 65 NA
## 999: female group D some college completed 68 78 77 NA
## 1000: female group D some college none 77 86 86 NA
## 1001: <NA> <NA> <NA> <NA> NA NA NA NA