PDF bài luận: https://drive.google.com/file/d/1mAmeDW-qhHqqYQK_Go4118qMXd8Ki03R/view?usp=sharing
Trong thời đại khoa học, công nghệ phát triển vượt bậc, các quốc gia trên thế giới không ngừng phát triển theo hướng công nghiệp hóa, hiện đại hóa, nhiều mặt hàng và dịch vụ ngày càng đa dạng hơn, từ đó dẫn đến nhu cầu và mức sông của con người ngày càng tăng cao. Một trong những nhu cầu thiết yếu và an toàn đó chính là phương tiện di chuyển. Họ luôn mong muốn một loại phương tiện sang trọng, cao cấp và quan trọng nhất là nằm trong khả năng tài chính của họ.
Trong bối cảnh cạnh tranh gay gắt, để duy trì lợi thế trong thị phần xe ô tô trên thị trường, các nhà sản xuất và kinh doanh xe ô tô phải hiểu đúng thị hiếu của người tiêu dùng cũng như thái độ của khách hàng đối với các dòng xe ô tô. Để giành thị phần, các hãng ô tô phải đua nhau giảm giá, khuyến mãi, giới thiệu nhiều mẫu xe mới và cải thiện chất lượng dịch vụ bán hàng và hậu mãi để thu hút khách hàng. Vì vậy, họ cần hiểu rõ những yếu tố nào ảnh hưởng đến quyết định mua ô tô của khách hàng để tạo ra chiến lược kinh doanh. Việc hiểu rõ các yếu tố ảnh hưởng đến quyết định mua ô tô sẽ làm cơ sở giúp các doanh nghiệp hoạt động trong lĩnh vực ô tô có chiến lược kinh doanh (về giá, sản phẩm, marketing) đúng đắn, giúp các doanh nghiệp duy trì được khách hàng hiện tại và mở rộng thêm danh sách khách hàng. Từ những lý do trên, tác giả chọn đề tài: “Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua ô tô của khách hàng tại Canada” làm đề tài nghiên cứu của mình.
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)
## 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
Biến phụ thuộc là biến định tính
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.
Biến phụ thuộc là biến định lượng
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.
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')
Ước lượng tỷ lệ người đã có xe, đồng thời kiểm định xem tỷ lệ (%) người đã có xe có phải là 50% không?
ul <- d[d$Car == "Yes",]
prop.test(length(ul$Car), length(d$Car), p = 0.5)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$Car) out of length(d$Car), null probability 0.5
## X-squared = 36.272, df = 1, p-value = 1.716e-09
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.6030046 0.6987823
## sample estimates:
## p
## 0.6523929
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người đã có xe không bằng 50%. Khoảng ước lượng tỷ lệ người đã có xe với độ tin cậy 95% là (0,6030046 ; 0,6987823).
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()
Ước lượng tỷ lệ người làm nghề chef, đồng thời kiểm định xem tỷ lệ (%) người làm nghề chef có phải là 10% không?
ul <- d[d$Occupation == "Chef",]
prop.test(length(ul$Occupation), length(d$Occupation), p = 0.1)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$Occupation) out of length(d$Occupation), null probability 0.1
## X-squared = 4.8766, df = 1, p-value = 0.02722
## alternative hypothesis: true p is not equal to 0.1
## 95 percent confidence interval:
## 0.04404677 0.09568659
## sample estimates:
## p
## 0.06549118
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người làm nghề chef không bằng 10%. Khoảng ước lượng tỷ lệ người làm nghề chef với độ tin cậy 95% là (0,04404677 ; 0,09568659).
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).
hist(d$MI)
income <- cut(d$MI, breaks= c(0 , 4000 , 15000), labels= c('thap' , 'cao'))
table(income)
## income
## thap cao
## 144 253
table(income)/sum(table(income))
## income
## thap cao
## 0.3627204 0.6372796
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')
Ước lượng tỷ lệ người có thu nhập mỗi tháng trên 10000USD, đồng thời kiểm định xem tỷ lệ (%) người thu nhập mỗi tháng trên 10000USD có phải là 10% không?
ul <- d[d$MI > 10000,]
prop.test(length(ul$MI), length(d$MI), p = 0.1)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$MI) out of length(d$MI), null probability 0.1
## X-squared = 22.257, df = 1, p-value = 2.385e-06
## alternative hypothesis: true p is not equal to 0.1
## 95 percent confidence interval:
## 0.01463550 0.05050911
## sample estimates:
## p
## 0.02770781
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người có thu nhập mỗi tháng trên 10000USD không bằng 10%. Khoảng ước lượng tỷ lệ người có thu nhập mỗi tháng trên 10000USD với độ tin cậy 95% là ( 0,01463550 ; 0,05050911).
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 , 700 , 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')
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,700] và 46,6% người có điểm tín dụng trong khoảng (700,890].
Ước lượng tỷ lệ người có điểm tín dụng trên 800, đồng thời kiểm định xem tỷ lệ (%) người có điểm tín dụng trên 800 có phải là 20% không?
ul <- d[d$CS > 800,]
prop.test(length(ul$CS), length(d$CS), p = 0.2)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$CS) out of length(d$CS), null probability 0.2
## X-squared = 45.737, df = 1, p-value = 1.352e-11
## alternative hypothesis: true p is not equal to 0.2
## 95 percent confidence interval:
## 0.04198476 0.09276907
## sample estimates:
## p
## 0.06297229
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người có điểm tín dụng trên 800 không bằng 20%. Khoảng ước lượng tỷ lệ người có điểm tín dụng trên 800 với độ tin cậy 95% là (0,04198476 ; 0,09276907).
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')
Ước lượng tỷ lệ người có kinh nghiệm làm việc trên 10 năm, đồng thời kiểm định xem tỷ lệ (%) người có kinh nghiệm làm việc trên 10 năm có phải là 20% không?
ul <- d[d$YE > 10,]
prop.test(length(ul$years), length(d$YE), p = 0.2)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$years) out of length(d$YE), null probability 0.2
## X-squared = 98.004, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.2
## 95 percent confidence interval:
## 0.00000000 0.01194674
## sample estimates:
## p
## 0
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người có kinh nghiệm làm việc trên 10 năm không bằng 20%. Khoảng ước lượng tỷ lệ người có kinh nghiệm làm việc trên 10 năm với độ tin cậy 95% là (0,00000000 ; 0,01194674).
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')
Ước lượng tỷ lệ người có tình trạng tài chính ổn định, đồng thời kiểm định xem tỷ lệ (%) người có tình trạng tài chính ổn định có phải là 50% không?
ul <- d[d$FS == "Stable",]
prop.test(length(ul$FS), length(d$FS), p = 0.5)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$FS) out of length(d$FS), null probability 0.5
## X-squared = 119.71, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.7309357 0.8152538
## sample estimates:
## p
## 0.7758186
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người có tình trạng tài chính ổn định không bằng 50%. Khoảng ước lượng tỷ lệ người có tình trạng tài chính ổn định với độ tin cậy 95% là (0,7309357 ; 0,8152538).
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')
Ước lượng tỷ lệ người có lịch sử tài chính không vấn đề, đồng thời kiểm định xem tỷ lệ (%) người có lịch sử tài chính không vấn đề có phải là 50% không?
ul <- d[d$FH == "No significant issues",]
prop.test(length(ul$FH), length(d$FS), p = 0.5)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$FH) out of length(d$FS), null probability 0.5
## X-squared = 117.52, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.7282819 0.8129202
## sample estimates:
## p
## 0.7732997
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người có lịch sử tài chính không vấn đề không bằng 50%. Khoảng ước lượng tỷ lệ người có lịch sử tài chính không vấn đề với độ tin cậy 95% là (0,7282819 ; 0,8129202).
children <- factor(d$NC == 0, levels = c(FALSE, TRUE), labels = c("Dacocon", "Khongcon"))
table(children)
## children
## Dacocon Khongcon
## 244 153
table(children)/sum(table(children))
## children
## Dacocon Khongcon
## 0.6146096 0.3853904
library(ggplot2)
d |> ggplot(aes(x = children, 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 = 'Numbers of Children', y = 'Số người')
Ước lượng tỷ lệ người có số con trên 4, đồng thời kiểm định xem tỷ lệ (%) người có số con trên 4 có phải là 10% không?
ul <- d[d$NC > 4,]
prop.test(length(ul$NC), length(d$NC), p = 0.1)
##
## 1-sample proportions test with continuity correction
##
## data: length(ul$NC) out of length(d$NC), null probability 0.1
## X-squared = 43.007, df = 1, p-value = 5.454e-11
## alternative hypothesis: true p is not equal to 0.1
## 95 percent confidence interval:
## 0.00000000 0.01194674
## sample estimates:
## p
## 0
Ta có p_value < 0,05 nên ta bác bỏ \(H_0\). Vì vậy tỉ lệ người có số con trên 4 không bằng 10%. Khoảng ước lượng tỷ lệ người có số con trên 4 với độ tin cậy 95% là (0,00000000 ; 0,01194674).
k <- data.frame(d$Car, d$FS, d$FH, d$Occupation, years, income, credit, children)
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.
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, k$years)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## it nhieu Sum
## No 0.30478589 0.04282116 0.34760705
## Yes 0.07052897 0.58186398 0.65239295
## Sum 0.37531486 0.62468514 1.00000000
k |> ggplot(aes(x = d.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(. ~ years) +
# 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
37,5% người thuộc nhóm ít (có kinh nghiệm làm việc từ 3 năm trở xuống) trong đó:
Người đã có xe chiếm 7,1%
Người chưa có xe chiếm 30,5%
42,5% người thuộc nhóm nhiều (có kinh nghiệm làm việc từ 3 năm trở lên), trong đó:
Người đã có xe chiếm 58,2%
Người chưa có xe chiếm 4,3%
library(DescTools)
cpp <- table(d$Car, k$years)
addmargins(cpp)
##
## it nhieu Sum
## No 121 17 138
## Yes 28 231 259
## Sum 149 248 397
RelRisk(cpp)
## [1] 8.110507
Tỷ lệ người không có xe có kinh nghiệm làm việc từ 3 năm trở xuống hơn gấp 8,1 lần tỷ lệ người có xe có kinh nghiệm làm việc từ 3 năm trở xuống.
cpp <- table(d$Car, k$years)
cpp
##
## it nhieu
## No 121 17
## Yes 28 231
OddsRatio(cpp)
## [1] 58.72059
Tỷ lệ người có kinh nghiệm làm việc từ 3 năm trở xuống so với người có kinh nghiệm làm việc từ 3 năm trở lên mà chưa có xe cao hơn gấp 58 lần tỷ lệ người có kinh nghiệm làm việc từ 3 năm trở xuống so với người có kinh nghiệm làm việc từ 3 năm trở lên mà đã có xe.
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 .
cpp <- table(d$Car, k$credit)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## low high Sum
## No 0.33501259 0.01259446 0.34760705
## Yes 0.19899244 0.45340050 0.65239295
## Sum 0.53400504 0.46599496 1.00000000
k |> ggplot(aes(x = d.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(. ~ credit) +
# 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
54% người thuộc nhóm low (điểm tín dụng 700 trở xuống) trong đó:
Người đã có xe chiếm 34%
Người chưa có xe chiếm 20%
46% người thuộc nhóm high (điểm tín dụng 700 trở lên), trong đó:
Người đã có xe chiếm 1%
Người chưa có xe chiếm 45%
library(DescTools)
cpp <- table(d$Car, k$credit)
addmargins(cpp)
##
## low high Sum
## No 133 5 138
## Yes 79 180 259
## Sum 212 185 397
RelRisk(cpp)
## [1] 3.159695
Tỷ lệ người không có xe có điểm tín dụng 700 trở xuống hơn gấp 3,2 lần tỷ lệ người có xe có điểm tín dụng 700 trở lên.
cpp <- table(d$Car, k$credit)
cpp
##
## low high
## No 133 5
## Yes 79 180
OddsRatio(cpp)
## [1] 60.60759
Tỷ lệ người có điểm tín dụng 700 trở xuống so với người có điểm tín dụng 700 trở lên mà chưa có xe cao hơn gấp 60 lần tỷ lệ người có điểm tín dụng 700 trở xuống so với người có điểm tín dụng 700 trở lên mà đã có xe.
cpp <- table(d$Car, k$credit)
cpp
##
## low high
## No 133 5
## Yes 79 180
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 154.36, 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à điểm tín dụng có liên quan với nhau .
cpp <- table(d$Car, k$children)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## Dacocon Khongcon Sum
## No 0.1813602 0.1662469 0.3476071
## Yes 0.4332494 0.2191436 0.6523929
## Sum 0.6146096 0.3853904 1.0000000
k |> ggplot(aes(x = d.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(. ~ children) +
# 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
61,5% người thuộc nhóm đã có con trong đó:
Người đã có xe chiếm 43,3%
Người chưa có xe chiếm 18,1%
38,5% người thuộc nhóm không con, trong đó:
Người đã có xe chiếm 21,9%
Người chưa có xe chiếm 16,6%
cpp <- table(d$Car, k$children)
library(epitools)
riskratio(cpp, rev = 'c')
## $data
##
## Khongcon Dacocon Total
## No 66 72 138
## Yes 87 172 259
## Total 153 244 397
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## No 1.000000 NA NA
## Yes 1.272844 1.061351 1.526482
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## No NA NA NA
## Yes 0.005977916 0.006741118 0.005514824
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ người đã có con mà sở hữu xe cao hơn gấp 1,27 lần tỷ lệ người đã có con nhưng không có xe.
cpp <- table(d$Car, k$children)
cpp
##
## Dacocon Khongcon
## No 72 66
## Yes 172 87
oddsratio(cpp, rev = 'r')
## $data
##
## Dacocon Khongcon Total
## Yes 172 87 259
## No 72 66 138
## Total 244 153 397
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## Yes 1.000000 NA NA
## No 1.809072 1.185659 2.764979
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## Yes NA NA NA
## No 0.005977916 0.006741118 0.005514824
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ người đã có con so với người không con mà đã có xe cao hơn gấp 1,8 lần tỷ lệ người đã có con so với người không con mà chưa có xe.
cpp <- table(d$Car, k$children)
cpp
##
## Dacocon Khongcon
## No 72 66
## Yes 172 87
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 7.1131, df = 1, p-value = 0.007652
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à số con có liên quan với nhau .
cpp <- table(k$income, d$FS)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## Stable Unstable Sum
## thap 0.146095718 0.216624685 0.362720403
## cao 0.629722922 0.007556675 0.637279597
## Sum 0.775818640 0.224181360 1.000000000
k |> 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) +
facet_grid(. ~ d.FS) +
# theme_classic() +
labs(x = 'Thu nhập mỗi tháng', 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 thu nhập thấp chiếm 14,6%
Người thu nhập cao chiếm 63%
22,4% người thuộc nhóm tài chính không ổn định, trong đó:
Người thu nhập thấp chiếm 21,7%
Người thu nhập cao chiếm 0,8%
cpp <- table(k$income, d$FS)
library(epitools)
riskratio(cpp, rev = 'c')
## $data
##
## Unstable Stable Total
## thap 86 58 144
## cao 3 250 253
## Total 89 308 397
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## thap 1.000000 NA NA
## cao 2.453319 2.009929 2.994521
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thap NA NA NA
## cao 0 9.703964e-44 3.250256e-41
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ người tài chính ổn định và thu nhập cao hơn gấp 2,4 lần tỷ lệ người tài chính ổn định nhưng thu nhập thấp.
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(k$income, d$FS)
cpp
##
## Stable Unstable
## thap 58 86
## cao 250 3
oddsratio(cpp, rev = 'r')
## $data
##
## Stable Unstable Total
## cao 250 3 253
## thap 58 86 144
## Total 308 89 397
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## cao 1.0000 NA NA
## thap 116.0891 41.50903 495.5882
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## cao NA NA NA
## thap 0 9.703964e-44 3.250256e-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ó thu nhập cao hơn gấp 116 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à yhu nhập thấp.
cpp <- table(k$income, d$FS)
cpp
##
## Stable Unstable
## thap 58 86
## cao 250 3
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 177.44, 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 thu nhập mỗi tháng và tình trạng tài chính có liên quan với nhau .
cpp <- table(k$income, k$years)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## it nhieu Sum
## thap 0.31989924 0.04282116 0.36272040
## cao 0.05541562 0.58186398 0.63727960
## Sum 0.37531486 0.62468514 1.00000000
k |> 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) +
facet_grid(. ~ years) +
# theme_classic() +
labs(x = 'Thu nhập mỗi tháng', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát được
37,5% người thuộc nhóm ít (có kinh nghiệm làm việc từ 3 năm trở xuống) trong đó:
Người thu nhập thấp chiếm 32%
Người thu nhập cao chiếm 5,5%
42,5% người thuộc nhóm nhiều (có kinh nghiệm làm việc từ 3 năm trở lên), trong đó:
Người thu nhập thấp chiếm 4,3%
Người thu nhập cao chiếm 58,2%
library(DescTools)
cpp <- table(k$income, k$years)
addmargins(cpp)
##
## it nhieu Sum
## thap 127 17 144
## cao 22 231 253
## Sum 149 248 397
RelRisk(cpp)
## [1] 10.14236
Tỷ lệ người thu nhập thấp, có kinh nghiệm làm việc từ 3 năm trở xuống hơn gấp 10,1 lần tỷ lệ người thu nhập cao, có kinh nghiệm làm việc từ 3 năm trở lên.
cpp <- table(k$income, k$years)
cpp
##
## it nhieu
## thap 127 17
## cao 22 231
OddsRatio(cpp)
## [1] 78.44118
Tỷ lệ người có kinh nghiệm làm việc từ 3 năm trở xuống so với người có kinh nghiệm làm việc từ 3 năm trở lên mà thu nhập thấp hơn gấp 74 lần tỷ lệ người có kinh nghiệm làm việc từ 3 năm trở xuống so với người có kinh nghiệm làm việc từ 3 năm trở lên mà thu nhập cao.
cpp <- table(k$income, k$years)
cpp
##
## it nhieu
## thap 127 17
## cao 22 231
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 244, 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 thu nhập mỗi tháng và kinh nghiệm làm việc có liên quan với nhau .
cpp <- table(k$income, k$credit)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## low high Sum
## thap 0.357682620 0.005037783 0.362720403
## cao 0.176322418 0.460957179 0.637279597
## Sum 0.534005038 0.465994962 1.000000000
k |> 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) +
facet_grid(. ~ credit) +
# theme_classic() +
labs(x = 'Thu nhập mỗi tháng', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát được
53% người thuộc nhóm low (điểm tín dụng 700 trở xuống) trong đó:
Người thu nhập thấp chiếm 36%
Người thu nhập cao chiếm 18%
47% người thuộc nhóm high (điểm tín dụng 700 trở lên), trong đó:
Người thu nhập thấp chiếm 1%
Người thu nhập cao chiếm 46%
library(DescTools)
cpp <- table(k$income, k$credit)
addmargins(cpp)
##
## low high Sum
## thap 142 2 144
## cao 70 183 253
## Sum 212 185 397
RelRisk(cpp)
## [1] 3.564087
Tỷ lệ người thu nhập thấp có điểm tín dụng 700 trở xuống hơn gấp 3,6 lần tỷ lệ người thu nhập cao có điểm tín dụng 700 trở lên.
cpp <- table(k$income, k$credit)
cpp
##
## low high
## thap 142 2
## cao 70 183
OddsRatio(cpp)
## [1] 185.6143
Tỷ lệ người có điểm tín dụng 700 trở xuống so với người có điểm tín dụng 700 trở lên mà thu nhập thấp hơn gấp 186 lần tỷ lệ người có điểm tín dụng 700 trở xuống so với người có điểm tín dụng 700 trở lên mà thu nhập cao.
cpp <- table(k$income, k$credit)
cpp
##
## low high
## thap 142 2
## cao 70 183
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 182.76, 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 thu nhập mỗi tháng và điểm tín dụng có liên quan với nhau .
cpp <- table(k$income, k$children)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## Dacocon Khongcon Sum
## thap 0.1763224 0.1863980 0.3627204
## cao 0.4382872 0.1989924 0.6372796
## Sum 0.6146096 0.3853904 1.0000000
k |> 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) +
facet_grid(. ~ children) +
# theme_classic() +
labs(x = 'Thu nhập mỗi tháng', y = 'Số người')
Nhận xét: Trong tổng số 397 người khảo sát được
61,5% người thuộc nhóm đã có con trong đó:
Người thu nhập thấp chiếm 17,6%
Người thu nhập cao chiếm 43,8%
38,5% người thuộc nhóm không con, trong đó:
Người thu nhập thấp chiếm 18,6%
Người thu nhập cao chiếm 19,9%
cpp <- table(k$income, k$children)
library(epitools)
riskratio(cpp, rev = 'c')
## $data
##
## Khongcon Dacocon Total
## thap 74 70 144
## cao 79 174 253
## Total 153 244 397
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## thap 1.000000 NA NA
## cao 1.414794 1.173097 1.706288
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## thap NA NA NA
## cao 8.416319e-05 0.0001055465 7.22221e-05
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Tỷ lệ người đã có con mà thu nhập cao hơn gấp 1,4 lần tỷ lệ người đã có con nhưng thu nhập thấp.
cpp <- table(k$income, k$children)
cpp
##
## Dacocon Khongcon
## thap 70 74
## cao 174 79
oddsratio(cpp, rev = 'r')
## $data
##
## Dacocon Khongcon Total
## cao 174 79 253
## thap 70 74 144
## Total 244 153 397
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## cao 1.000000 NA NA
## thap 2.321982 1.524744 3.550759
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## cao NA NA NA
## thap 8.416319e-05 0.0001055465 7.22221e-05
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
Tỷ lệ người đã có con so với người không con mà thu nhập cao hơn gấp 2,3 lần tỷ lệ người đã có con so với người không con mà thu nhập thấp.
cpp <- table(k$income, k$children)
cpp
##
## Dacocon Khongcon
## thap 70 74
## cao 174 79
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 14.912, df = 1, p-value = 0.0001126
Kết quả kiểm định cho thấy p- value < 0,05 nên ta bác bỏ \(H_0\). Vậy thu nhập mỗi tháng và số con có liên quan với nhau .
cpp <- table(d$Car, k$income)
cpp <- prop.table(cpp)
addmargins(cpp)
##
## thap cao Sum
## No 0.30226700 0.04534005 0.34760705
## Yes 0.06045340 0.59193955 0.65239295
## Sum 0.36272040 0.63727960 1.00000000
k |> ggplot(aes(x = d.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(. ~ income) +
# 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
36,2% người thuộc nhóm thu nhập thấp, trong đó:
Người đã có xe chiếm 6%
Người chưa có xe chiếm 30,2%
63,8% người thuộc nhóm thu nhập cao, trong đó:
Người đã có xe chiếm 59,2%
Người chưa có xe chiếm 4,5%
library(DescTools)
cpp <- table(d$Car, k$income)
addmargins(cpp)
##
## thap cao Sum
## No 120 18 138
## Yes 24 235 259
## Sum 144 253 397
RelRisk(cpp)
## [1] 9.384058
Tỷ lệ người không có xe mà thu nhập thấp hơn gấp 9,4 lần tỷ lệ người có xe mà thu nhập cao.
cpp <- table(d$Car, k$income)
cpp
##
## thap cao
## No 120 18
## Yes 24 235
OddsRatio(cpp)
## [1] 65.27778
Tỷ lệ người thu nhập thấp so với người thu nhập cao mà không có xe hơn gấp 65 lần tỷ lệ người thu nhập thấp so với người thu nhập cao mà đã có xe.
cpp <- table(k$income, d$Car)
cpp
##
## No Yes
## thap 120 24
## cao 18 235
chisq.test(cpp)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: cpp
## X-squared = 231.73, 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 ô tô và thu nhập mỗi tháng là có liên quan với nhau.
\(log(\pi/1-\pi)\) = \(\beta_0\) + \(\beta_1\)MI + \(\beta_2\)CS + \(\beta_3\)FS + \(\beta_4\)FH + \(\beta_5\)YE + \(\beta_6\)NC
fit1 <- glm(factor(Car) ~ MI + CS + FS + FH + YE + NC, family = binomial(link = 'logit'), data = d)
summary(fit1)
##
## Call:
## glm(formula = factor(Car) ~ MI + CS + FS + FH + YE + NC, family = binomial(link = "logit"),
## data = d)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.69171 -0.00021 0.01653 0.21608 2.21641
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.343e+01 6.523e+03 -0.004 0.997134
## MI 1.644e-03 4.843e-04 3.395 0.000685 ***
## CS -3.061e-03 9.937e-03 -0.308 0.758054
## FSUnstable 1.633e+01 6.523e+03 0.003 0.998003
## FHMissed payments in the past -1.629e+01 9.380e+02 -0.017 0.986147
## FHNo significant issues 1.598e+01 6.523e+03 0.002 0.998045
## YE 9.819e-01 3.156e-01 3.111 0.001864 **
## NC -3.078e-01 2.391e-01 -1.288 0.197892
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 512.89 on 396 degrees of freedom
## Residual deviance: 175.17 on 389 degrees of freedom
## AIC: 191.17
##
## Number of Fisher Scoring iterations: 17
\(probit(\pi/1-\pi)\) = \(\beta_0\) + \(\beta_1\)MI + \(\beta_2\)CS + \(\beta_3\)FS + \(\beta_4\)FH + \(\beta_5\)YE + \(\beta_6\)NC
fit2 <- glm(factor(Car) ~ MI + CS + FS + FH + YE + NC, family = binomial(link = 'probit'), data = d)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(fit2)
##
## Call:
## glm(formula = factor(Car) ~ MI + CS + FS + FH + YE + NC, family = binomial(link = "probit"),
## data = d)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.70503 -0.00013 0.00082 0.19927 2.18526
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -8.672e+00 1.569e+03 -0.006 0.995589
## MI 8.720e-04 2.609e-04 3.342 0.000832 ***
## CS -1.211e-03 5.570e-03 -0.217 0.827926
## FSUnstable 4.449e+00 1.569e+03 0.003 0.997737
## FHMissed payments in the past -4.819e+00 2.106e+02 -0.023 0.981742
## FHNo significant issues 4.308e+00 1.569e+03 0.003 0.997809
## YE 5.660e-01 1.776e-01 3.186 0.001442 **
## NC -1.752e-01 1.351e-01 -1.297 0.194644
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 512.89 on 396 degrees of freedom
## Residual deviance: 175.40 on 389 degrees of freedom
## AIC: 191.4
##
## Number of Fisher Scoring iterations: 17
\(cloglog(\pi/1-\pi)\) = \(\beta_0\) + \(\beta_1\)MI + \(\beta_2\)CS + \(\beta_3\)FS + \(\beta_4\)FH + \(\beta_5\)YE + \(\beta_6\)NC
fit3 <- glm(factor(Car) ~ MI + CS + FS + FH + YE + NC, family = binomial(link = 'cloglog'), data = d)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(fit3)
##
## Call:
## glm(formula = factor(Car) ~ MI + CS + FS + FH + YE + NC, family = binomial(link = "cloglog"),
## data = d)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.59276 -0.00019 0.00000 0.15223 2.18499
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.284e+01 6.236e+03 -0.004 0.99708
## MI 6.375e-04 2.405e-04 2.650 0.00804 **
## CS 1.984e-03 5.867e-03 0.338 0.73526
## FSUnstable 1.633e+01 6.236e+03 0.003 0.99791
## FHMissed payments in the past -1.614e+01 9.354e+02 -0.017 0.98624
## FHNo significant issues 1.661e+01 6.236e+03 0.003 0.99787
## YE 6.517e-01 2.003e-01 3.254 0.00114 **
## NC -2.363e-01 1.454e-01 -1.625 0.10418
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 512.89 on 396 degrees of freedom
## Residual deviance: 178.13 on 389 degrees of freedom
## AIC: 194.13
##
## Number of Fisher Scoring iterations: 17
aic1 <- AIC(fit1)
aic2 <- AIC(fit2)
aic3 <- AIC(fit3)
AIC <-cbind(aic1, aic2, aic3)
AIC
## aic1 aic2 aic3
## [1,] 191.1709 191.3966 194.1345
de1 <- deviance(fit1)
de2 <- deviance(fit2)
de3 <- deviance(fit3)
deviance <- cbind(de1,de2,de3)
deviance
## de1 de2 de3
## [1,] 175.1709 175.3966 178.1345
library(DescTools)
BrierScore(fit1)
## [1] 0.06958084
library(DescTools)
BrierScore(fit2)
## [1] 0.07013952
library(DescTools)
BrierScore(fit3)
## [1] 0.07149978
library(caret)
## Warning: package 'caret' was built under R version 4.2.3
## Loading required package: lattice
##
## Attaching package: 'caret'
## The following objects are masked from 'package:DescTools':
##
## MAE, RMSE
confusionMatrix(table(predict(fit1, type="response") >= 0.5,fit1$data$Car == 'Yes'))
## Confusion Matrix and Statistics
##
##
## FALSE TRUE
## FALSE 120 15
## TRUE 18 244
##
## Accuracy : 0.9169
## 95% CI : (0.8852, 0.9421)
## No Information Rate : 0.6524
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.8158
##
## Mcnemar's Test P-Value : 0.7277
##
## Sensitivity : 0.8696
## Specificity : 0.9421
## Pos Pred Value : 0.8889
## Neg Pred Value : 0.9313
## Prevalence : 0.3476
## Detection Rate : 0.3023
## Detection Prevalence : 0.3401
## Balanced Accuracy : 0.9058
##
## 'Positive' Class : FALSE
##
MH logit có độ chính xác toàn thể là 91,69%, độ nhạy là 86,96% và độ hiệu quả là 94,21%
library(caret)
confusionMatrix(table(predict(fit2, type="response") >= 0.5,fit2$data$Car == 'Yes'))
## Confusion Matrix and Statistics
##
##
## FALSE TRUE
## FALSE 120 15
## TRUE 18 244
##
## Accuracy : 0.9169
## 95% CI : (0.8852, 0.9421)
## No Information Rate : 0.6524
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.8158
##
## Mcnemar's Test P-Value : 0.7277
##
## Sensitivity : 0.8696
## Specificity : 0.9421
## Pos Pred Value : 0.8889
## Neg Pred Value : 0.9313
## Prevalence : 0.3476
## Detection Rate : 0.3023
## Detection Prevalence : 0.3401
## Balanced Accuracy : 0.9058
##
## 'Positive' Class : FALSE
##
MH probit có độ chính xác toàn thể là 91,69%, độ nhạy là 86,96% và độ hiệu quả là 94,21%
library(caret)
confusionMatrix(table(predict(fit3, type="response") >= 0.5,fit3$data$Car == 'Yes'))
## Confusion Matrix and Statistics
##
##
## FALSE TRUE
## FALSE 120 17
## TRUE 18 242
##
## Accuracy : 0.9118
## 95% CI : (0.8795, 0.9378)
## No Information Rate : 0.6524
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.8053
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.8696
## Specificity : 0.9344
## Pos Pred Value : 0.8759
## Neg Pred Value : 0.9308
## Prevalence : 0.3476
## Detection Rate : 0.3023
## Detection Prevalence : 0.3451
## Balanced Accuracy : 0.9020
##
## 'Positive' Class : FALSE
##
MH cloglog có độ chính xác toàn thể là 91,18%, độ nhạy là 86,96% và độ hiệu quả là 93,44%
Kết luận: Trong 3 mô hình thì mô hình logit và mô hình probit đều có độ chính xác toàn thể là 91,69%, độ nhạy là 86,96% và độ hiệu quả là 94,21% (cao nhất). Nhưng chỉ số AIC, Deviance và Brier Score cho thấy mô hình lotgit tốt hơn. Vì vậy, dựa trên 4 tiêu chí đánh giá trên ta đi đến kết luận mô hình logit là phù hợp nhất.
Mặc khác ở kết quả hồi quy logistic cả 3 mô hình đều cho thấy trong tất cả 6 biến độc lập chỉ có 2 biến là có ý nghĩa thống kê ở mức 5% là biến MI và YE. Ta tiến hàng bỏ các biến không có ý nghĩa thống kê và chạy lại mô hình mới.
\(log(\pi/1-\pi)\) = \(\beta_0\) + \(\beta_1\)MI + \(\beta_5\)YE
f1 <- glm(factor(Car) ~ MI + YE , family = binomial(link = 'logit'), data = d)
summary(f1)
##
## Call:
## glm(formula = factor(Car) ~ MI + YE, family = binomial(link = "logit"),
## data = d)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.64568 -0.27735 0.01721 0.21658 2.40346
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.5229258 1.1768718 -8.092 5.88e-16 ***
## MI 0.0013592 0.0003329 4.083 4.45e-05 ***
## YE 1.2392617 0.2890771 4.287 1.81e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 512.89 on 396 degrees of freedom
## Residual deviance: 183.82 on 394 degrees of freedom
## AIC: 189.82
##
## Number of Fisher Scoring iterations: 8
\(probit(\pi/1-\pi)\) = \(\beta_0\) + \(\beta_1\)MI + \(\beta_5\)YE
f2 <- glm(factor(Car) ~ MI + YE , family = binomial(link = 'probit'), data = d)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(f2)
##
## Call:
## glm(formula = factor(Car) ~ MI + YE, family = binomial(link = "probit"),
## data = d)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.69164 -0.26842 0.00098 0.19468 2.39688
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -5.2886669 0.5989162 -8.830 < 2e-16 ***
## MI 0.0007421 0.0001831 4.054 5.05e-05 ***
## YE 0.7019320 0.1595153 4.400 1.08e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 512.89 on 396 degrees of freedom
## Residual deviance: 184.03 on 394 degrees of freedom
## AIC: 190.03
##
## Number of Fisher Scoring iterations: 8
\(cloglog(\pi/1-\pi)\) = \(\beta_0\) + \(\beta_1\)MI + \(\beta_5\)YE
f3 <- glm(factor(Car) ~ MI + YE, family = binomial(link = 'cloglog'), data = d)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(f3)
##
## Call:
## glm(formula = factor(Car) ~ MI + YE, family = binomial(link = "cloglog"),
## data = d)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.10811 -0.41508 0.00000 0.08935 2.14578
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -6.0328388 0.7035045 -8.575 < 2e-16 ***
## MI 0.0006726 0.0001885 3.567 0.000361 ***
## YE 0.8489936 0.1846105 4.599 4.25e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 512.89 on 396 degrees of freedom
## Residual deviance: 191.32 on 394 degrees of freedom
## AIC: 197.32
##
## Number of Fisher Scoring iterations: 10
aic1 <- AIC(f1)
aic2 <- AIC(f2)
aic3 <- AIC(f3)
AIC <-cbind(aic1, aic2, aic3)
AIC
## aic1 aic2 aic3
## [1,] 189.8186 190.0302 197.3155
de1 <- deviance(f1)
de2 <- deviance(f2)
de3 <- deviance(f3)
deviance <- cbind(de1,de2,de3)
deviance
## de1 de2 de3
## [1,] 183.8186 184.0302 191.3155
library(DescTools)
BrierScore(f1)
## [1] 0.07191108
library(DescTools)
BrierScore(f2)
## [1] 0.07231477
library(DescTools)
BrierScore(f3)
## [1] 0.07401281
library(caret)
confusionMatrix(table(predict(f1, type="response") >= 0.5,f1$data$Car == 'Yes'))
## Confusion Matrix and Statistics
##
##
## FALSE TRUE
## FALSE 120 19
## TRUE 18 240
##
## Accuracy : 0.9068
## 95% CI : (0.8738, 0.9335)
## No Information Rate : 0.6524
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.7949
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.8696
## Specificity : 0.9266
## Pos Pred Value : 0.8633
## Neg Pred Value : 0.9302
## Prevalence : 0.3476
## Detection Rate : 0.3023
## Detection Prevalence : 0.3501
## Balanced Accuracy : 0.8981
##
## 'Positive' Class : FALSE
##
MH logit có độ chính xác toàn thể là 90,68%, độ nhạy là 86,96% và độ hiệu quả là 92,66%
library(caret)
confusionMatrix(table(predict(f2, type="response") >= 0.5,f2$data$Car == 'Yes'))
## Confusion Matrix and Statistics
##
##
## FALSE TRUE
## FALSE 120 19
## TRUE 18 240
##
## Accuracy : 0.9068
## 95% CI : (0.8738, 0.9335)
## No Information Rate : 0.6524
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.7949
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.8696
## Specificity : 0.9266
## Pos Pred Value : 0.8633
## Neg Pred Value : 0.9302
## Prevalence : 0.3476
## Detection Rate : 0.3023
## Detection Prevalence : 0.3501
## Balanced Accuracy : 0.8981
##
## 'Positive' Class : FALSE
##
MH probit có độ chính xác toàn thể là 90,68%, độ nhạy là 86,96% và độ hiệu quả là 92,66%
library(caret)
confusionMatrix(table(predict(f3, type="response") >= 0.5,f3$data$Car == 'Yes'))
## Confusion Matrix and Statistics
##
##
## FALSE TRUE
## FALSE 123 26
## TRUE 15 233
##
## Accuracy : 0.8967
## 95% CI : (0.8625, 0.9249)
## No Information Rate : 0.6524
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.7765
##
## Mcnemar's Test P-Value : 0.1183
##
## Sensitivity : 0.8913
## Specificity : 0.8996
## Pos Pred Value : 0.8255
## Neg Pred Value : 0.9395
## Prevalence : 0.3476
## Detection Rate : 0.3098
## Detection Prevalence : 0.3753
## Balanced Accuracy : 0.8955
##
## 'Positive' Class : FALSE
##
MH cloglog có độ chính xác toàn thể là 89,67%, độ nhạy là 89,13% và độ hiệu quả là 89,96%
Kết luận: Trong 3 mô hình thì mô hình logit và mô hình probit đều có độ chính xác toàn thể là 90,68%, độ nhạy là 86,96% và độ hiệu quả là 92,66% (cao nhất). Nhưng chỉ số AIC, Deviance và Brier Score cho thấy mô hình lotgit tốt hơn. Vì vậy, dựa trên 4 tiêu chí đánh giá trên ta đi đến kết luận mô hình logit là phù hợp nhất.
summary(f1)
##
## Call:
## glm(formula = factor(Car) ~ MI + YE, family = binomial(link = "logit"),
## data = d)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.64568 -0.27735 0.01721 0.21658 2.40346
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.5229258 1.1768718 -8.092 5.88e-16 ***
## MI 0.0013592 0.0003329 4.083 4.45e-05 ***
## YE 1.2392617 0.2890771 4.287 1.81e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 512.89 on 396 degrees of freedom
## Residual deviance: 183.82 on 394 degrees of freedom
## AIC: 189.82
##
## Number of Fisher Scoring iterations: 8
Từ kết quả hồi quy, ta nhận thấy trong đầu vào 6 biến độc lập thì chỉ có 2 biến là có ý nghĩa thống kê ở mức 1% là biến CS và YE.
\[ logit(\pi/1-\pi)= -9,5229258 + 0,0013592*MI + 1,2392617*YE \]
Qua các thông tin, dữ liệu phân tích sau quá trình thu thập thông tin từ dân cư tại Canada, tác giả nhận thấy sự ảnh hưởng trên đến từ 2 yếu tố khách quan như sau:
Thu nhập mỗi tháng: có 6% người thu nhập thấp đã có ô tô. Bên cạnh đó, tỷ lệ người thu nhập cao đã có ô tô chiếm tỷ lệ 59,2%. Qua đó, ta có thể nhận thấy việc có sở hữu xe hay không phụ thuộc nhiều vào thu nhập mỗi tháng.
Kinh nghiệm làm việc : có 7,1% người có kinh nghiệm làm việc từ 4 năm trở xuống đã có ô tô. Bên cạnh đó, tỷ lệ người có kinh nghiệm làm việc từ 4 năm trở lên đã có ô tô chiếm tỷ lệ 58,2%. Qua đó, ta có thể nhận thấy việc có sở hữu xe hay không phụ thuộc nhiều vào kinh nghiệm làm việc.
Nghiên cứu thị hiếu và nhu cầu của khách hàng: Điều quan trọng đầu tiên là các hãng xe cần nghiên cứu kỹ về thị hiếu và nhu cầu của khách hàng đối với các dòng xe ô tô. Hiểu rõ mong muốn và yêu cầu của khách hàng sẽ giúp họ tạo ra các sản phẩm và dịch vụ phù hợp với thị trường và tăng cường sự hài lòng của khách hàng.
Cải thiện chất lượng dịch vụ bán hàng và sau bán hàng: Đảm bảo dịch vụ bán hàng chuyên nghiệp, tận tâm và thân thiện để tạo sự tin tưởng và hỗ trợ khách hàng trong quá trình mua xe. Hậu mãi tốt và chăm sóc khách hàng sau khi mua xe cũng rất quan trọng để duy trì mối quan hệ lâu dài và tạo niềm tin cho khách hàng.
Đa dạng hóa dòng sản phẩm: Các hãng xe có thể đa dạng hóa dòng sản phẩm, giới thiệu nhiều mẫu xe mới với tính năng và thiết kế đa dạng để đáp ứng nhu cầu và sở thích của đa dạng khách hàng. Điều này giúp tăng khả năng chọn lựa và thu hút đối tượng khách hàng rộng hơn.
Tăng cường quảng bá và marketing: Đầu tư vào hoạt động quảng bá và marketing để nâng cao nhận thức về thương hiệu và các sản phẩm của hãng xe. Tận dụng các kênh truyền thông và mạng xã hội để tiếp cận đến đối tượng khách hàng tiềm năng.
Tăng cường khuyến mãi và ưu đãi: Khuyến mãi, giảm giá và ưu đãi hấp dẫn có thể giúp thu hút khách hàng trong giai đoạn mua xe. Tuy nhiên, cần lưu ý đảm bảo tính minh bạch và công bằng trong chương trình khuyến mãi để tránh ảnh hưởng đến uy tín của hãng.