R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

THỰC HÀNH VỚI CÁC MÔ HÌNH THỐNG KÊ

Chuẩn bị

data()

cài đặt các gói nội dung

install.packages(“tidyverse”) # chạy các thư viện cần thiết cho dự án

library(tidyverse) library(tidyr) library(dplyr) library(ggplot2) library(readxl)

2. Thao tác với dữ liệu

2.1 Lấy dữ liệu từ file excel

creditdata <- read_excel(“creditdata.xlsx”,sheet =1)

2.1.1. Quan sát dữ liệu

View(creditdata)

2.1.2. Đánh giá tổng quan dữ liệu

summary(creditdata)

3. Làm sạch dữ liệu

3.1. Loại bỏ các dòng có giá trị NA xuất hiện

creditdata <- na.omit()

3.2. thay thế dấu cách bằng _

names(creditdata) <-gsub(” “,”_“, names(credit_data))

4, Khai thác dữ liệu

##4.1 Lọc các thông tin về điểm tín dụng

creditdata <- creditdata%>% filter(Credit_Score <1000)

creditdatamax <- creditdata%>% filter(Credit_Score>1000)

View (creditdata)

#————————PHẦN 1: PHÂN TÍCH MÔ TẢ———

Thống kê

5.1 So sánh

ggplot(creditdata, aes(x=Home_Ownership)) + geom_bar()

5.2 Phân bổ

ggplot(creditdata, aes(x= Credit_Score)) + geom_histogram()

ggplot(creditdata, aes(x= Credit_Score)) + geom_histogram(color=“blue”, fill = “orange”) labs(title = “Biểu đồ phân bổ điểm tín dụng”, x=“điểm tín dụng”, y=“số lượng khách hàng”)

## 5.3 So sánh tương quan giữa Thu nhập năm và điểm tín dụng

ggplot(creditdata, aes(x=Credit_Score, y = Annual_Income)) + geom_point()

ggplot(creditdata, aes(x=Credit_Score, y = Annual_Income)) + geom_point(color =“darkblue”)

5.4 Xác định ngoại lai dựa vào biểu đồ hộp

Điểm tín dụng theo loại hình sở hữu

ggplot(creditdata,aes(x=Credit_Score, y= Home_Ownership))+ geom_boxplot()

ggplot(creditdata,aes(x=Credit_Score, y= Home_Ownership))+ geom_boxplot(color=“red”,fill=‘lightgreen’)+ labs(title=“Phân bổ các loại hình sở hữu”)

5.5 Thống kê theo nhóm(thống kê theo nhóm xong thì bảng mới chỉ có 12 cột 3 dòng)

creditdata.theotuoidilam <- creditdata%>% group_by(Years_in_current_job)%>% summarise(soluong = n(), thunhap_BT = mean(Annual_Income))

so sánh sô lượng KH theo số năm đi làm

ggplot(creditdata, aes(x=Years_in_current_job)) + geom_bar(color=“darkblue”)

View(creditdata)

#—-PHẦN 2: PHÂN TÍCH CHUẨN ĐOÁN VÀ DỰ BÁO DỰA THEO CÁC MÔ HÌNH———

Mô hình hồi quy

2.1 mô hình hồi quy đơn biến (tương quan 1 -1 )

2.1.1. ĐÁNH GIÁ MỐI QUAN HỆ TƯƠNG QUAN giữa A và B (thu nhập năm vs mức thanh toán tín dụng theo tháng)

creditdata %>% filter(!is.na(Credit_Score), !is.na(Annual_Income)) %>% ggplot(aes(x = Credit_Score, y = Annual_Income)) + geom_point(color = “darkblue”) + geom_smooth(method = “lm”)

ggplot(creditdata, aes(x= Annual_Income, y= Monthly_Debt))+ geom_point(color=“blue”) geom_smooth(method=“lm”)

##–> có vẻ như có mối quan hệ tương quan, nên đưa vào phân tích ## xét các điều kiện xem có phù hợp với phân tích tương quan không: Các biến phải phân phối chuẩn ## cần xác định có phân phối chuẩn hay không ### cách 1: nhìn xem phân phối của các biến dựa theo phân bổ histogram

ggplot(creditdata, aes(x=Annual_Income))+ geom_histogram() ###cách 2: đánh giá phân phối chuẩn theo một số cách mở rộng

đánh giá phân phối chuẩn của Thu nhập năm

qqnorm(creditdata\(Annual_Income) qqline(creditdata\)Annual_Income, col=‘red’)

–> Nếu các mẫu không phân phối chuẩn thì các nội dung phía sau khi xây dựng mô hình đưa ra không chính xác

2.1.3. Xây dựng mô hình hồi quy tuyến tính đơn biến

mohinh1 <- lm(creditdata\(Monthly_Debt ~ creditdata\)Annual_Income)

mohinh2 <- lm(Monthly_Debt ~ Annual_Income, data =creditdata)

mohinh1

View(mohinh1)

summary(mohinh1)


#2.4 Áp dụng mô hình cho mẫu mới

dulieutest <- read.csv(“credit_test.csv”)

dulieutest <- dulieutest%>% na.omit(dulieutest)

names(dulieutest) <- gsub(“\.”,“_“,names(dulieutest))

View(dulieutest)

#2.5 Chạy dự báo kết quả từ mô hình

Dubaochitrahangthang_theothunhapnam <- dulieutest%>% mutate(Dubaogiatri_Tha = predict(mohinh2,newdata = dulieutest ))

Dubaochitrahangthang_theothunhapnam

View(Dubaochitrahangthang_theothunhapnam)

#3 MÔ HÌNH HỒI QUY LOGIC ## lưu ý trong dữ liệu phải có cột ở định dạng 0 1 ## 3.1 Th không có thì thêm 1 cột trạng thái là phần dư phép chia hết cho 2

creditdata\(Trangthai <- creditdata\)Annual_Income %% 2 creditdata\(Trangthai <- factor(creditdata\)Trangthai, level = c(0,1),labels = c(“Không vỡ nợ”,“Có”))

View(creditdata)

#xây dụng mô hình logic

thống kê theo nhóm Term

tk_term <- creditdata%>% group_by(Term)%>% summarise(soluong= n())

ggplot(creditdata, aes(x=Term,y=n()))

3.2 xây dựng mô hình

Mohinhlogic <- glm(Trangthai ~ Credit_Score, family= “binomial”,data = creditdata)

summary( Mohinhlogic)

3.3 Chạy mô hình dự báo với bộ dữ liệu mới

Dubaotheologic <- predict(Mohinhlogic, newdata = dulieutest, type=“response”)

summary(Dubaotheologic)

View(Dubaotheologic)

3.4 mô hình logic hồi quy đa biến

mh_logicdabien <- glm(Trangthai~Credit_Score + Annual_Income + Current_Credit_Balance, family =“binomial”,data = creditdata)

summary(mh_logicdabien)

dubaodabien_moi <- predict(mh_logicdabien, newdata = dulieutest, type=“response”)

dubaodabien_moi

#4. MÔ HÌNH ARIMA # Dữ liệu thực hành là Superstore

sieuthi <- read_excel(“3.SUPERSTORE.xlsx”, sheet = 1)

View(sieuthi)

sieuthi

Thống kê tổng doanh số theo tháng năm

baocaoTG <- sieuthi%>% group_by( Thang = floor_date(Order Date, “month”) ) %>% summarise(Sales = sum(Sales))

baocaoTG

thiết lập tạo chuỗi thời gian tuần tự theo tháng cho các giá trị doanh số

Doanhso_thang <- ts(baocaoTG$Sales, start =c(2018,1),frequency = 12)

plot (Doanhso_thang)

4.2 Xây dựng mô hình dự báo theo thời gian

Cài gói dự báo forecast

install.packages(“forecast”) library(forecast) names(sieuthi) <-gsub(” “,”_“, names(sieuthi))

Tạo mô hình arima

mohinh_thoigian <- auto.arima(Doanhso_thang)

summary(mohinh_thoigian)

4.3 Dự báo dựa theo mô hình

Dubaodoanhso_6thangtoi <- forecast(mohinh_thoigian, h =6)

plot(Dubaodoanhso_6thangtoi)

5. Kmeans

5.1 Thống kê thông tin về giao dịch theo từng khách hàng

Tkgiaodich <- sieuthi%>% group_by(Customer_ID) %>% summarise( sodon = n_distinct(Order_ID), DS = sum(Sales), LN = sum(Profit) )

Tkgiaodich

5.2 biến đổi các giá trị cần phân cụm về giá trị nhị phân 0-1

Tkgiaodich_biendoi <- scale(Tkgiaodich[-1])

Tkgiaodich_biendoi

5.3 Xây dựng mô hình Kmeans sau khi làm mịn

mohinhKmeans <- kmeans(Tkgiaodich_biendoi, centers = 3)

install.packages(“factoextra”) library(factoextra)

fviz_cluster(mohinhKmeans, data = Tkgiaodich_biendoi)