library(tidyverse) library(tidyr) library(dplyr) library(readr) library(readxl)
creditdata <- read_excel(“creditdata.xlsx”, sheet = 1) #có thể kết hợp làm sạch với các tình huống có lỗi NA sẽ được nhận diện là na luôn creditdata <- read_excel(“creditdata.xlsx”, na = c(“NA”,“N/A”,“null”, ““))
summary(creditdata)
creditdata <- na.omit(creditdata)
#có thể xử lý bằng các kỹ thuật làm sạch khác như lọc cột khác NAfilter( !is.na) #có thể thay thế NA bằng giá trị cột trên fill(creditdata,Term, .direction =” down”) /“up” # có thể thay thế NA bằng giá trị Null hoặc 0: creditdata[is.na(creditdata)] <- null/ 0
names(creditdata) <- gsub(” “,”_“, names(creditdata))
credit_loc <- creditdata %>%
filter(Credit Score>5000 )
creditdata <- creditdata%>%
filter(Credit Score< 2000)
View(creditdata) # 5. Các bài toán thống kê ## 5.1 Nhóm theo nhóm
Loai_sh_nha <- creditdata %>%
group_by(Home Ownership)%>% summarise( soluong = n(),
ThunhapTBnam = mean(Annual Income))
head(Loai_sh_nha)
muc_dich_vay <- creditdata%>% group_by(Purpose)%>%
summarise(soluong = n(), GiatrivayTB =
mean(Current Loan Amount))
head(muc_dich_vay) ## 5.2 Biểu đồ trực quan theo nhóm - so sánh với
ggplot #số lượng hợp đồng tín dụng theo nhóm sở hữu nhà
ggplot(creditdata, aes(x = Home Ownership, color = Term)) +
geom_bar()
#thêm nhãn
ggplot(creditdata, aes(x = Home Ownership, color =
Term)) + geom_bar()+ labs(title = “Số lượng tín dụng theo loại hình sở
hữu nhà”, x=” Loại hình sở hữu”, y = “Số lượng tín dụng”)
#đổ màu khối xếp trồng
ggplot(creditdata, aes(x = Home Ownership, fill = Term))
+ geom_bar()+ labs(title = “Số lượng tín dụng theo loại hình sở hữu
nhà”, x=” Loại hình sở hữu”, y = “Số lượng tín dụng”)
#thêm tiêu đề ggplot(creditdata, aes(x = Home Ownership,
fill = Term)) + geom_bar()+ labs(title = “Số lượng tín dụng theo loại
hình sở hữu nhà”, x=” Loại hình sở hữu”, y = “Số lượng tín dụng”) +
theme_minimal()
#Xếp cạnh nhau
ggplot(creditdata, aes(x = Home Ownership, fill = Term))
+ geom_bar(position = “dodge”)+ labs(title = “Số lượng tín dụng theo
loại hình sở hữu nhà”, x=” Loại hình sở hữu”, y = “Số lượng tín dụng”) +
theme_minimal()
#số lượng năm đi làm theo hdtín dụng
ggplot(creditdata, aes(x=Years in current job, fill =
Term)) + geom_bar()
ggplot(creditdata, aes(x=Years in current job, fill =
Term)) + geom_bar(position = “dodge”)
ggplot(creditdata, aes(x= Annual Income)) +
geom_histogram(bins =10, position = “stack”, fill = “blue”) #thêm nhãn
ggplot(creditdata, aes(x= Annual Income)) +
geom_histogram(bins =10, position = “stack”, fill = “blue”)+
labs(title = ” Phân bổ thu nhập hàng năm”, x= “Khoảng thu nhập”, y= “thu nhập”)
theme_minimal()
#mục đích vay ggplot(muc_dich_vay, aes(x= soluong)) + geom_histogram(bins =5, position = “stack”, fill = “blue”)
#Phân bổ điểm tín dụng
ggplot(creditdata, aes(x=Credit Score)) +
geom_histogram()
ggplot(creditdata, aes(x=Credit Score)) +
geom_histogram(bins = 10, color =“blue”, fill = “green”)
ggplot(creditdata, aes(x= Annual Income, y =
Credit Score, colour = Term)) + geom_point()
#Điểm tín dụng và trả theo tháng
ggplot(creditdata, aes(x= Annual Income, y =
Monthly Debt, colour = Term)) + geom_point()+ labs(title =
” Tương quan giữa điểm tín dụng và chi trả hàng tháng”, x=” Mức trả hàng
tháng”, y =” Điểm tín dụng”)
#Phân bổ điểm tín dụng theo nhóm sở hữu nhà
ggplot(creditdata, aes(x = Credit Score, y =
Home Ownership, fill = “pink” )) + geom_boxplot()
#Phân bổ lương năm theo năm công tac ggplot(creditdata, aes(x=
Years in current job, y = Annual Income,
fill=“darkblue”)) + geom_boxplot() + labs(title = ” phân bổ năm đi làm
và thu nhập”, x= “năm đi làm”, y=” Thu nhập năm”)
#1. Đánh giá phân phối chuẩn của mẫu với các giá trị thống kê như số dư, thu nhập năm, điểm tín dụng
#1.1Đánh giá độ phân khối của điểm tín dụng
qqnorm(creditdata\(`Credit Score`)
qqline(creditdata\)Credit Score, col = “red”)
#shapiro.test(credit_loc\(`Credit Score`)
shapiro.test(creditdata\)Credit Score)
#1.2Thu nhập năm qqnorm(creditdata\(`Annual
Income`)
qqline(creditdata\)Annual Income, col=“red”)
#1.3 Dư nợ tháng
shapiro.test(creditdata$Monthly Debt)
#Số dư
qqnorm(creditdata\(`Current Credit
Balance`)
qqline(creditdata\)Current Credit Balance, color =
“red”)
#biểu đồ ggplot(creditdata, aes(x= Annual Income, y =
Monthly Debt)) + geom_point()+ geom_smooth(method =
“lm”)
hoiquy <- lm(Monthly_Debt~
Annual_Income,creditdata)
#Dọc mô hình – Tìm ra phương trình hồi quy Monthly = Intercept + Annual Income hoiquy summary(hoiquy)
#–> Đọc hiểu bảng tóm tắt
#Biểu đồ quan sát
ggplot(creditdata, aes(x= Home_Ownership, y =Monthly_Debt )) + geom_boxplot(color =“darkblue”)
#mô hình hồi quy có phân nhóm hoiquyda <-lm(Monthly_Debt ~ Annual_Income + Home_Ownership, creditdata)
hoiquyda
summary(hoiquyda)
chaymau<-read.csv(“credit_test.csv”)
chaymau <- chaymau%>% na.omit(chaymau)
names(chaymau) <- gsub(“\.”,“_“, names(chaymau)) # chú ý dấu . giống * ở trong win nên cần ký tự \ để thay thế
View(chaymau)
dubaotraThang_theothunhapNam <- chaymau%>% mutate(Du_bao_chitra_Thang= predict(hoiquy, newdata = chaymau))
dubaotraThang_theothunhapNam
head(dubaotraThang_theothunhapNam)
View(dubaotraThang_theothunhapNam)
#trong creditdata chưa có cột Trạng thái này nên có thể tạo thêm cột mới trước khi làm nội dung này
#creditdata$Trangthai <- rep(0, nrow(creditdata))# ở dạng này trạng thái có 1 loại sẽ không xây dựng mô hình hồi quy logic được
creditdata\(Trangthai <-creditdata\)Annual_Income%%2
creditdata\(Trangthai <- factor(creditdata\)Trangthai, levels = c(0,1), labels = c(“Không vỡ nợ”, “Có”))
mohinhYN <- glm(Trangthai~ Credit_Score, family = “binomial”, data = creditdata)
summary(mohinhYN) #Đánh giá mô hình có ý nghĩa dự báo khi các giá trị p<0.05
dubaoYN <- predict(mohinhYN, newdata = chaymau, type = “response”)
View(dubaoYN)
mohinhgolicdabien <- glm(Trangthai~Annual_Income + Credit_Score + Current_Credit_Balance, data = creditdata, family = “binomial”)
summary(mohinhgolicdabien)
dubaodabienlogic <- predict(mohinhgolicdabien, newdata = chaymau, type=“response”)
View(dubaodabienlogic)
#—————–
sieuthi <-read_excel(“3.SUPERSTORE.xlsx”, sheet = 1)
names(sieuthi) <- gsub(” “,”_“, names(sieuthi))
bckh <- sieuthi%>% group_by(Customer_ID) %>%
summarise(
sodon = n_distinct(`Order_ID`),
LN = sum(Profit),
DS = sum(Sales))
#đánh giá bckh để chuyển sang hệ số đánh giá 0-1 dùng cho mô hình hồi quy - phâ ncụm
bckh_muot<- scale(bckh[-1])
mohinhphancum<- kmeans(bckh_muot, centers = 5)
##Thêm cụm
bckh\(Cluster <- mohinhphancum\)cluster
View(bckh$Cluster)
install.packages(“factoextra”) library(factoextra)
fviz_cluster(mohinhphancum, data = bckh_muot)
View(phancum)
library(cluster)
fviz_cluster(phancum, bckh)
#Tổng doanh số theo tháng DSThang <- sieuthi %>% mutate(Date = as.Date(Order_Date)) %>% group_by(Month = floor_date(Date, “month”)) %>% #Hàm làm tròn xuống về ngày đầu tiên của tháng summarise(Sales = sum(Sales))
View(sieuthi)
DS_chuoi <- ts(DSThang$Sales, start = c(2013, 1), frequency = 12) plot(DS_chuoi, main = “Chuỗi thời gian doanh số theo tháng”)
install.packages(“forecast”) library(forecast)
mohinharima <- auto.arima(DS_chuoi)
summary(mohinharima)
Dubaods <- forecast(mohinharima, h = 6) plot(Dubaods, main = “Dự báo doanh số 6 tháng tới”)