BÀI THỰC HÀNH TUẦN 2

MÔ TẢ DỮ LIỆU

CreditCard - Dữ liệu chéo về lịch sử tín dụng của một người xin cấp thẻ tín dụng.

Ý nghĩa các biến thuộc dữ liệu CreditCard

- Card: trả lời cho câu hỏi “Đơn xin cấp thẻ tín dụng có được chấp nhận không?”

- Reports:Số báo cáo xúc phạm lớn.

- Age: Tuổi (tính bằng số năm cộng với tháng).

- Income: Thu nhập hàng năm (bằng USD 10,000).

- Share: Tỷ lệ chi tiêu thẻ tín dụng hàng tháng so với thu nhập hàng năm.

- Expenditure: Chi tiêu thẻ tín dụng trung bình hàng tháng.

- Owner: Trả lời cho câu hỏi “Cá nhân có sở hữu nhà riêng không?”

- Selfemp: Trả lời cho câu hỏi “cá nhân tự làm chủ hay không?”

- Dependents: Số người phụ thuộc vào người được khảo sát

- Months: Thời gian sống tại địa chỉ hiện tại.

- Majorcards: Số lượng thẻ tín dụng chính được tổ chức.

- Active:Số lượng tài khoản tín dụng đang hoạt động.

Chủ đề:Phân tích sự tác động từ dữ liệu chéo biến định lượng: “age” và biến định tính: “selfemp” của dataset:“CreditCard” lên biến định lượng “income” thuộc package: “AER”

Khai báo tên package trước khi sử dụng, liệt kê tất cả các thư viện sẵn dùng trong R

library(AER)
## Loading required package: car
## Loading required package: carData
## Loading required package: lmtest
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival

Lấy dữ liệu “Creditcard” từ package “AER” để tiến hành phân tích

data("CreditCard")

ĐÁNH GIÁ DỮ LIỆU

Biến định lượng “income”: biến thu nhập hằng năm (USD)

Trung bình:

mean(CreditCard$income)
## [1] 3.365376

Trung vị:

median(CreditCard$income, na.rm = FALSE)
## [1] 2.9

Phương sai:

var(CreditCard$income)
## [1] 2.869303

Độ lệch chuẩn:

sd(CreditCard$income)
## [1] 1.693902

Biến định lượng expenditure: Mức chi tiêu thẻ tín dụng hằng tháng

Trung bình:

mean(CreditCard$expenditure)
## [1] 185.0571

Trung vị:

median(CreditCard$expenditure, na.rm = FALSE)
## [1] 101.2983

Phương sai:

var(CreditCard$expenditure)
## [1] 74103.14

Độ lệch chuẩn:

sd(CreditCard$expenditure)
## [1] 272.2189

LẬP BẢNG TẦN SỐ

Lập bảng tần số của biến thu nhập (income):

TN <- CreditCard$income
BangTN <- cut(TN, breaks = c(0.2100, 2.868, 5.526, 8.184, 10.842, 13.5000 ), labels = c("thấp", "trung bình" , "trung bình cao", "cao", "rất cao"), right = TRUE)
tabin= table(BangTN)
tabin
## BangTN
##           thấp     trung bình trung bình cao            cao        rất cao 
##            647            550             92             24              5

Đồ thị của biến thu nhập (income):

barplot(tabin, xlab = "Thu Nhập", ylab = "Tần số",  main = "Biểu đồ biểu thị mức độ thu nhập hằng năm(USD)", col = c("green", "red", "blue", "white", "pink"))

Giải thích kết quả từ bảng tần số của biến thu nhập (income):

Dựa vào biểu đồ ta có thể thấy mức độ thụ nhập Cao chiếm tỷ lệ rất thấp và ngược lại, mức độ thu nhập thấp lại chiếm tỷ lệ cao nhất và mức thu nhập từ thấp đến cao lại có xu hướng giảm dần. Điều đó cho thấy thu nhập hằng năm của hầu hết người được khảo sát thuộc mức thu nhập thấp

Lập bảng tần số của biến dependents: số người phụ thuộc vào người được khảo sát

Sng <- CreditCard$dependents
BangSng <- cut(Sng, breaks = c(0,2,4,6), labels = c("0-2", "2-4", "4-6"), right = TRUE)
tabde=table(BangSng)
tabde
## BangSng
## 0-2 2-4 4-6 
## 485 159  16

Đồ thị của biến dependents

barplot(tabde, xlab = "Sng", ylab = "Tần số",  main = "Biểu đồ thể hiện số người phụ thuộc vào người được khảo sát", col = c("green", "red", "yellow"))

Giải thích kết quả từ bảng tần số của biến dependents:

Từ bảng tần số ta có thể thấy rằng trường hợp có từ 0-2 người phụ thuộc chiếm tỷ lệ cao nhất và tần số cũng giảm dần khi số người phụ thuộc càng nhiều, trường hợp có 4-6 người phụ thuộc là số người cao nhất lại chiếm tỷ lệ thấp nhất. Nghĩa là hầu hết mọi người được khảo sát không có quá nhiều người phụ thuộc vào mình, ho không gặp phải quá nhiều gánh nặng về kinh tế

Lập bảng tần số của biến selfemp :trả lời cho câu hỏi “cá nhân tự làm chủ hay không?”

CV <- CreditCard$selfemp
table(CV)
## CV
##   no  yes 
## 1228   91
tabse=table(CV)
tabse
## CV
##   no  yes 
## 1228   91

Đồ thị của biến giới tính (selfemp):

barplot(tabse, xlab = "CV", ylab = "Tần số",  main = "Biểu đồ cho biết cá nhân có  làm chủ hay không?", col = c("red","green"))

### Giải thích kết quả từ bảng tần số của biến selfemp: cá nhân có tự làm chủ hay không

Từ bảng tần số ta thấy tần số của câu trả lời “no” cao hơn 10 lần “yes”. Nghĩa là hầu hết công việc của người được khảo sát đều không phải là làm chủ

Phân tích sự tác động giữa 2 biến định lượng:“dependents”,“income”

- Income: Thu nhập hàng năm (bằng USD 10,000).

- Dependents: Số người phụ thuộc vào người được khảo sát

- Câu hỏi được đặt ra: Tổng số người phụ thuộc vào người khảo sát thì có ảnh hưởng đến thu nhập của người được khảo sát hay không

Lập bảng kết hợp của 2 biến

tabearnde = table(BangTN, BangSng)
tabearnde
##                 BangSng
## BangTN           0-2 2-4 4-6
##   thấp           205  41   1
##   trung bình     234  81  12
##   trung bình cao  33  27   2
##   cao              9  10   1
##   rất cao          3   0   0

Kiểm định chi bình phương (chi-squared):

Trong kiểm định này, chúng ta phải kiểm tra các giá trị p-value và đặt ra bài toán kiểm định gồm có giả thuyết H0 và H1.

Chúng ta sẽ bác bỏ giả thuyết H0 nếu giá trị p-value xuất hiện trong kết quả nhỏ hơn mức ý nghĩa xác định trước, mức ý nghĩa thường là 0,05.

H0: Hai biến độc lập

H1: Hai biến phụ thuộc

chisq.test(TN, Sng, correct=FALSE)
## Warning in chisq.test(TN, Sng, correct = FALSE): Chi-squared approximation may
## be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  TN and Sng
## X-squared = 3310, df = 2580, p-value < 2.2e-16

Ta thấy giá trị p-value = 2.2e-16 có nghĩa là con số đó rất nhỏ nên ta xem nó bằng 0 và vì giá trị P-value nhỏ hơn mức ý nghĩa lầ 0,05 nên ta bác bỏ H0.

=> Kết luận: Giữa 2 biến có sự liên quan đến nhau hay nói cách khác đây là 2 biến phụ thuộc

Sng0den2 <- Sng[Sng>=0 & Sng<2]
vearnandde0den2 <- c(205,234,33,9,3)
Sng2den4 <- Sng[Sng>=2 & Sng<4]
vearnandde2den4 <- c(41,81,27,10,0)
Sng4den6 <- Sng[Sng>=4 & Sng<6]
vearnandde4den6 <- c(1,12,2,1,0)
plot(vearnandde0den2, xlab = "Mức Thu Nhập: Thấp - Trung bình - Trung bình cao - Cao - Rất Cao", ylab= "Tần số", main = "Biểu đồ của biến thu nhập khi có từ 0-2 người phụ thuộc vào", col = c ("red", "green","yellow", "blue", "black"))

plot(vearnandde2den4, xlab = "Mức Thu Nhập: Thấp - Trung bình - Trung bình cao - Cao - Rất Cao", ylab= "Tần số", main = "Biểu đồ của biến thu nhập khi có từ 2-4 người phụ thuộc vào", col = c ("red", "green","yellow", "blue", "black"))

plot(vearnandde4den6, xlab = "Mức Thu Nhập: Thấp - Trung bình- Trung bình cao - Cao - Rất Cao", ylab= "Tần số", main = "Biểu đồ của biến thu nhập khi có từ 4-6 người phụ thuộc vào", col = c ("red", "green","yellow", "blue", "black")) 

Giải thích kết quả 3 đồ thị trên:

Xét theo biến dependents ta có 3 nhóm (0-2),(2-4),(4-6) đây là tổng số người phụ thuộc vào người được khảo sát, thì chúng ta có thể thấy số người có mức thu nhập thấp đều sẽ giảm dần (từ 205ng xuống 1ng) khi số người phụ thuộc tăng dần và tương tự như vậy, ở các mức thu nhập còn lại thì tần số cũng sẽ giảm dần trong khi số người phụ thuộc tăng dần. Tức là ở tất cả các mức thu nhập: số người phụ thuộc càng ít thì tần số càng nhiều và ngược lại.

=> Kết luận: Trên thực tế, khi số người phụ thuộc vào càng nhiều tức là gánh nặng càng lớn đồng nghĩa với chi tiêu sẽ càng cao thì lúc đó thu nhập sẽ thấp.

Phân tích sự tác động giữa 1 biến định tính(selfemp) và 1 biến định lượng(income)

- Selfemp: Trả lời cho câu hỏi “cá nhân tự làm chủ hay không?”

- Income: Thu nhập hàng năm (bằng USD 10,000).

- Câu hỏi được đặt ra:Việc cá nhân người được khảo sát có làm chủ hay không thì có ảnh hưởng đến thu nhập không

Lập bảng kết hơp của 2 biến

tabearnse = table(BangTN, CV)
tabearnse
##                 CV
## BangTN            no yes
##   thấp           615  32
##   trung bình     506  44
##   trung bình cao  80  12
##   cao             23   1
##   rất cao          3   2

Kiểm định chi bình phương (chi-squared):

Trong kiểm định này, chúng ta phải kiểm tra các giá trị p-value và đặt ra bài toán kiểm định gồm có giả thuyết H0 và H1.

Chúng ta sẽ bác bỏ giả thuyết H0 nếu giá trị p-value xuất hiện trong kết quả nhỏ hơn mức ý nghĩa xác định trước, mức ý nghĩa thường là 0,05.

H0: Hai biến độc lập

H1: Hai biến phụ thuộc

chisq.test(TN,CV,correct = FALSE)
## Warning in chisq.test(TN, CV, correct = FALSE): Chi-squared approximation may
## be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  TN and CV
## X-squared = 487.92, df = 430, p-value = 0.02773

Ta thấy giá trị p-value = 0.02773 và vì giá trị P-value<0,05 nên ta bác bỏ H0.

Kết luận: Giữa 2 biến có sự liên quan đến nhau hay nói cách khác đây là 2 biến phụ thuộc nhau.

Đồ thị kết hợp giữa 2 biến

vearnandno <- c(615,506,80,23,3)
vearnandyes <- c(32,44,12,1,2)

plot(vearnandno, xlab= "Mức Thu Nhập: Thấp - Trung Bình - Trung bình cao - Cao - Rất Cao", ylab = "Tần Số",  main = "Biểu đồ thể hiện mức thu nhập khi biết người được khảo sát làm chủ", col = c("red", "green","yellow", "blue", "black"))

plot(vearnandyes, xlab= "Mức Thu Nhập: Thấp - Trung Bình - Trung bình cao - Cao - Rất Cao", ylab = "Tần Số",  main = "Biểu đồ thể hiện mức thu nhập khi biết người được khảo sát không làm chủ", col = c("red", "green","yellow", "blue", "black"))

Gỉai thích kết quả từ 2 biểu đồ: Xét theo biến selfemp gồm “no” và “yes”.”No”:Người được khảo sát không phải là chủ.”Yes” người được khảo sát là chủ.

=> Nếu người có mức thu nhập thấp thì tỷ lệ không làm chủ sẽ cao hơn người làm chủ, tương tự các mức thu nhập còn lại cũng vậy. Nhưng vì những người có mức thu nhập thấp và không làm chủ chiếm tỷ lệ cao nhất là tỷ lệ đó cũng giảm dần khi thu nhập của họ cao lên. Điều đó cho thấy nếu người được khảo sát không phải làm chủ thì mức thu nhập của học sẽ thấp

BÀI THỰC HÀNH TUẦN 1

MÔ TẢ DỮ LIỆU

CreditCard - Dữ liệu chéo về lịch sử tín dụng của một người xin cấp thẻ tín dụng.

Ý nghĩa các biến thuộc dữ liệu CreditCard

- Card:trả lời cho câu hỏi “Đơn xin cấp thẻ tín dụng có được chấp nhận không?”

- Reports:Số báo cáo xúc phạm lớn.

- Age:Tuổi (tính bằng số năm cộng với tháng).

- Income: Thu nhập hàng năm (bằng USD 10,000).

- Share: Tỷ lệ chi tiêu thẻ tín dụng hàng tháng so với thu nhập hàng năm.

- Expenditure: Chi tiêu thẻ tín dụng trung bình hàng tháng.

- Owner: Trả lời cho câu hỏi “Cá nhân có sở hữu nhà riêng không?”

- Selfemp: Trả lời cho câu hỏi “cá nhân tự làm chủ hay không?”

- Dependents: Số người phụ thuộc vào người được khảo sát

- Months: Thời gian sống tại địa chỉ hiện tại.

- Majorcards: Số lượng thẻ tín dụng chính được tổ chức.

- Active:Số lượng tài khoản tín dụng đang hoạt động.

Phân tích dữ liệu CreditCard từ package “AER”

Khai báo tên package trước khi sử dụng, liệt kê tất cả các thư viện sẵn dùng

library(AER)

Lấy dữ liệu “Creditcard” từ package “AER” để tiến hành phân tích

data("CreditCard")
head(CreditCard)
##   card reports      age income       share expenditure owner selfemp dependents
## 1  yes       0 37.66667 4.5200 0.033269910  124.983300   yes      no          3
## 2  yes       0 33.25000 2.4200 0.005216942    9.854167    no      no          3
## 3  yes       0 33.66667 4.5000 0.004155556   15.000000   yes      no          4
## 4  yes       0 30.50000 2.5400 0.065213780  137.869200    no      no          0
## 5  yes       0 32.16667 9.7867 0.067050590  546.503300   yes      no          2
## 6  yes       0 23.25000 2.5000 0.044438400   91.996670    no      no          0
##   months majorcards active
## 1     54          1     12
## 2     34          1     13
## 3     58          1      5
## 4     25          1      7
## 5     64          1      5
## 6     54          1      1

Tạo dữ liệu bản sao “cr” từ dữ liệu gốc “CreditCard”

cr <- CreditCard

Xem cấu trúc của dữ liệu gốc “CreditCard”

str(CreditCard)
## 'data.frame':    1319 obs. of  12 variables:
##  $ card       : Factor w/ 2 levels "no","yes": 2 2 2 2 2 2 2 2 2 2 ...
##  $ reports    : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ age        : num  37.7 33.2 33.7 30.5 32.2 ...
##  $ income     : num  4.52 2.42 4.5 2.54 9.79 ...
##  $ share      : num  0.03327 0.00522 0.00416 0.06521 0.06705 ...
##  $ expenditure: num  124.98 9.85 15 137.87 546.5 ...
##  $ owner      : Factor w/ 2 levels "no","yes": 2 1 2 1 2 1 1 2 2 1 ...
##  $ selfemp    : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ dependents : num  3 3 4 0 2 0 2 0 0 0 ...
##  $ months     : num  54 34 58 25 64 54 7 77 97 65 ...
##  $ majorcards : num  1 1 1 1 1 1 1 1 1 1 ...
##  $ active     : num  12 13 5 7 5 1 5 3 6 18 ...

Đặt lại tên viết tắt cho các thuộc tính của dữ liệu bản sao “cr”

names(cr) <- c("ca","re","ag","in","sh","ex","ow","se","de","mo","ma","ac")

Liệt kê tất cả các biến có trong “cr”

list = ls(cr)

Hiển thị các quan sát của dữ liệu bản sao “cr”

xem thử 6 dòng đầu tiên của dữ liệu

head(cr)
##    ca re       ag     in          sh         ex  ow se de mo ma ac
## 1 yes  0 37.66667 4.5200 0.033269910 124.983300 yes no  3 54  1 12
## 2 yes  0 33.25000 2.4200 0.005216942   9.854167  no no  3 34  1 13
## 3 yes  0 33.66667 4.5000 0.004155556  15.000000 yes no  4 58  1  5
## 4 yes  0 30.50000 2.5400 0.065213780 137.869200  no no  0 25  1  7
## 5 yes  0 32.16667 9.7867 0.067050590 546.503300 yes no  2 64  1  5
## 6 yes  0 23.25000 2.5000 0.044438400  91.996670  no no  0 54  1  1

xem thử 9 dòng đầu tiên của dữ liệu

head(cr,9)
##    ca re       ag     in          sh         ex  ow se de mo ma ac
## 1 yes  0 37.66667 4.5200 0.033269910 124.983300 yes no  3 54  1 12
## 2 yes  0 33.25000 2.4200 0.005216942   9.854167  no no  3 34  1 13
## 3 yes  0 33.66667 4.5000 0.004155556  15.000000 yes no  4 58  1  5
## 4 yes  0 30.50000 2.5400 0.065213780 137.869200  no no  0 25  1  7
## 5 yes  0 32.16667 9.7867 0.067050590 546.503300 yes no  2 64  1  5
## 6 yes  0 23.25000 2.5000 0.044438400  91.996670  no no  0 54  1  1
## 7 yes  0 27.91667 3.9600 0.012575760  40.833330  no no  2  7  1  5
## 8 yes  0 29.16667 2.3700 0.076433760 150.790000 yes no  0 77  1  3
## 9 yes  0 37.00000 3.8000 0.245627900 777.821700 yes no  0 97  1  6

Truy vấn dữ liệu: ta sử dụng biến (“age”, “income”, “owner”) từ tập dữ liệu “CreditCard”

- Age:Tuổi (tính bằng số năm cộng với tháng).

- Income: Thu nhập hàng năm (bằng USD 10,000).

- Owner: Trả lời cho câu hỏi “Cá nhân có sở hữu nhà riêng không?”

ag <- CreditCard$age
inc <- CreditCard$income
ow <- CreditCard$owner
x <- CreditCard[,c("age","income","owner")]

Tiến hành trực quan hóa dữ liệu bằng package “ggplot2”

Khai báo sử dụng package “ggplot2”, liệt kê tất cả các thư viện có sẵn trong package

library(ggplot2)

Đồ thị trực quan hóa dữ liệu của biến định lượng “age”, tên viết tắt là “ag”

barplot( ag, xlab = " ", ylab = "ag", main = "Biểu đồ thể hiện dữ liệu của biến Tuổi age ", col =  c("red", "green", "blue", "pink", "white"))

Đồ thị trực quan hóa dữ liệu của biến định tính “income”, tên viết tắt là “in”

barplot(inc, xlab = " ", ylab ="inc", main = "Biểu đồ thể hiện dữ liệu của biến thu nhập ", col = c("green","black","red","yellow","pink"  ))

Xử lý dữ liệu

Sắp xếp dữ liệu: thực hiện sắp xếp dữ liệu của biến “Income” theo thứ tự thu nhập tăng dần.

ThuNhaptang = cr[order(cr$`in`), ]
head(ThuNhaptang)
##       ca re       ag    in           sh       ex  ow  se de  mo ma ac
## 1201 yes  0 49.83333 0.210 0.2718571000 47.24166 yes  no  2  42  1  1
## 1226  no  0 39.58333 0.490 0.0024489800  0.00000 yes  no  2 100  1  0
## 320   no  0 23.91667 1.200 0.0010000000  0.00000  no  no  0  15  0  0
## 1207  no  0 20.58333 1.200 0.0010000000  0.00000  no yes  1  24  1  0
## 226  yes  0 32.83333 1.320 0.0387553100 42.63083  no  no  1   6  1  2
## 660   no  0 23.25000 1.434 0.0008368201  0.00000 yes  no  0  12  1  6

LẬP BẢNG TẦN SỐ

Lập bảng tần số cho biến “ow” (biến định tính) của dữ liệu “cr”

- Owner: Trả lời cho câu hỏi “Cá nhân có sở hữu nhà riêng không?”

own <- cr$ow
table(own)
## own
##  no yes 
## 738 581

Kết quả hiển thị cho biết đối với câu hỏi khảo sát trên thì có 738 người không sở hữu nhà riêng và có 581 người đang sở hữu nhà riêng

Lập bảng tần số cho biến “de” (biến định lượng) của dữ liệu cr

- Dependents: Số người phụ thuộc vào người được khảo sát

de <- cr$de
table(cut(de,6))
## 
## (-0.006,1]      (1,2]      (2,3]      (3,4]      (4,5]   (5,6.01] 
##        926        218        115         44          9          7

Kết quả hiển thị cho biết đổi với trường hợp có từ 0-2 người phụ thuộc thì chiếm tần số cao nhất với 926 người và tần số càng giảm khi số người phụ thuộc càng tăng điều đó cho thấy hầu hết mọi người không có quá nhiều người phụ thuộc vào mình.