{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
Bộ dữ liệu này cung cấp thông tin toàn diện để dự đoán giá nhà.
Dữ liệu nghiên cứu bao gồm 545 quan sát với 13 biến bao gồm 6 biến định lượng và 7 biến định tính.
Trong đó:
Price : Giá của ngôi nhà.
Area : Tổng diện tích của ngôi nhà tính bằng mét vuông.
Bedrooms : Số phòng ngủ trong nhà.
Bathrooms : Số lượng phòng tắm trong nhà.
Stories : Số lượng truyện trong nhà.
Mainroad : Ngôi nhà có kết nối với đường chính hay không (Yes/No).
Guestroom : Nhà có phòng cho khách không (Yes/No).
Basement : Nhà có tầng hầm hay không (Yes/No).
HWH : Nhà có hệ thống đun nước nóng hay không (Yes/No).
Airconditioning : Nhà có hệ thống điều hòa nhiệt độ hay không (Yes/No).
Parking : Số lượng chỗ đậu xe có sẵn trong nhà.
Prefarea : Ngôi nhà có nằm trong khu vực ưa thích hay không (Yes/No).
FS : Tình trạng nội thất của căn nhà (Đầy đủ nội thất, Bán nội thất, Không nội thất).
```{r}
library(readxl) library(DescTools) library(ggplot2) library(epitools) data <- read_excel(“C:/Users/PC/Downloads/Housing.xls”) str(data)
## TUẦN 2
```{r}
library(readxl)
data<-read_excel("C:/Users/PC/Downloads/Housing.xls")
data
Chon biến định tính: tình trạng nội thất của căn nhà (FS)
Chọn biến định lượng: tổng diện tích ngôi nhà (Area)
{r} age.in <- table(data$Area,data$FS) age.in
3.1. Thống kê mô tả cho biến Mainroad
{r} table(data$Mainroad) table(data$Mainroad)/sum(table(data$Mainroad)) ggplot(data = data) + geom_bar(aes(y = Mainroad), width = 0.3, fill = "gray") + theme_minimal() + labs(title = "Number of cases by Mainroad", y = "Mainroad")
3.2. Thống kê mô tả cho biến Guestroom
{r} table(data$Guestroom) table(data$Guestroom)/sum(table(data$Guestroom)) ggplot(data = data) + geom_bar(aes(y = Guestroom), width = 0.3, fill = "gray") + theme_minimal() + labs(title = "Number of cases by Guestroom", y = "Guestroom")
3.3. Thống kê mô tả cho biến Basement
{r} table(data$Basement) table(data$Basement)/sum(table(data$Basement)) ggplot(data = data) + geom_bar(aes(y = Basement), width = 0.3, fill = "gray") + theme_minimal() + labs(title = "Number of cases by Basement", y = "Basement")
3.4. Thống kê mô tả cho biến HWH
{r} table(data$HWH) table(data$HWH)/sum(table(data$HWH)) ggplot(data = data) + geom_bar(aes(y = HWH), width = 0.3, fill = "gray") + theme_minimal() + labs(title = "Number of cases by HWH", y = "HWH")
3.5. Thống kê mô tả cho biến Airconditioning
{r} table(data$Airconditioning) table(data$Airconditioning)/sum(table(data$Airconditioning)) ggplot(data = data) + geom_bar(aes(y = Airconditioning), width = 0.3, fill = "gray") + theme_minimal() + labs(title = "Number of cases by Airconditioning", y = "Airconditioning")
3.6. Thống kê mô tả cho biến Prefarea
{r} table(data$Prefarea) table(data$Prefarea)/sum(table(data$Prefarea)) ggplot(data = data) + geom_bar(aes(y = Prefarea), width = 0.3, fill = "gray") + theme_minimal() + labs(title = "Number of cases by Prefarea", y = "Prefarea")
3.7. Thống kê mô tả cho biến FS
{r} table(data$FS) table(data$FS)/sum(table(data$FS)) ggplot(data = data) + geom_bar(aes(y = FS), width = 0.3, fill = "gray") + theme_minimal() + labs(title = "Number of cases by FS", y = "FS")
```{r} tmp <- table(data\(Mainroad, data\)Guestroom)
addmargins(tmp) OddsRatio(tmp) oddsratio(tmp)
## TUẦN 4
**4.1. Thống kê mô tả biến phụ thuộc : tổng diện tích (Area) với biến độc lập : kết nối với đường chính (Mainroad)**
**4.1.1. Mã hoá biến phụ thuộc (Area) từ định lượng sang định tính**
```{r}
Area <- cut(data$Area, breaks = c(0,5000,17000), labels=c("Nhỏ","Lớn"))
table(Area)
4.1.2. Bảng tần số, tần suất và biểu đồ
BẢNG TẦN SỐ: {r} M <- table(data$Mainroad, Area);M
BẢNG TẦN SUẤT: {r} M1 <- prop.table(M);M1 PHÂN PHỐI
BIÊN: {r} addmargins(M) BIỂU ĐỒ CỘT:
{r} library(data.table) m <- data.frame(data$Mainroad, data$Guestroom, data$Basement, data$HWH, data$Airconditioning, data$Prefarea, data$Area, Area) m |> ggplot(aes(x=data$Mainroad,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~Area) + labs(x = "Kết nối với đường chính",y = "Số ngôi nhà")
4.1.3. Rủi ro tương đối (Risk ratio)
{r} library(epitools) riskratio(M)
Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong
bảng ngẫu nhiên: {r} riskratio(M, rev = "c")
4.1.4. Tỷ lệ chênh lệch (odd ratio)
Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong
bảng ngẫu nhiên:
{r} epitab(M, method = "oddsratio", rev = "r")
4.1.5. Thống kê suy diễn
Kiểm định tính độc lập cho 2 biến (Area) và (Mainroad):
Phương pháp chi bình phương: Giả thuyết Ho: Area và Mainroad độc lập
{r} M <- table(data$Mainroad, Area);M
{r} chisq.test(M)
4.2. Thống kê mô tả biến phụ thuộc: tổng diện tích (Area) với biến độc lập: phòng khách (Guestroom)
4.2.1. Bảng tần số, tần suất và biểu đồ
BẢNG TẦN SỐ: {r} G <- table(data$Guestroom, Area);G
BẢNG TẦN SUẤT: {r} G1 <- prop.table(G);G1 PHÂN PHỐI
BIÊN: {r} addmargins(G) BIỂU ĐỒ CỘT:
{r} library(data.table) g <- data.frame(data$Mainroad, data$Guestroom, data$Basement, data$HWH, data$Airconditioning, data$Prefarea, data$Area, Area) g |> ggplot(aes(x=data$Guestroom,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~Area) + labs(x = "Phòng khách",y = "Số ngôi nhà")
4.2.2. Rủi ro tương đối (Risk ratio)
{r} epitab(G, method = "riskratio")
Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong
bảng ngẫu nhiên:
{r} epitab(G, method = "riskratio", rev = "c")
4.2.3. Tỷ lệ chênh lệch (odd ratio)
{r} epitab(G, method = "oddsratio")
Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong
bảng ngẫu nhiên:
{r} epitab(G, method = "oddsratio", rev = "r")
4.2.4. Thống kê suy diễn
Kiểm định tính độc lập cho 2 biến (Area) và (Guestroom):
Phương pháp chi bình phương: Giả thuyết Ho: Area và Guestroom độc lập
{r} G <- table(data$Guestroom, Area);G
{r} chisq.test(G)
4.3. Thống kê mô tả biến phụ thuộc: tổng diện tích (Area) với biến độc lập: tầng hầm (Basement)
4.3.1. Bảng tần số, tần suất và biểu đồ
BẢNG TẦN SỐ: {r} B <- table(data$Basement, Area);B
BẢNG TẦN SUẤT: {r} B1 <- prop.table(B);B1 PHÂN PHỐI
BIÊN: {r} addmargins(B) BIỂU ĐỒ CỘT:
{r} library(data.table) b <- data.frame(data$Mainroad, data$Guestroom, data$Basement, data$HWH, data$Airconditioning, data$Prefarea, data$Area, Area) b |> ggplot(aes(x=data$Guestroom,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~Area) + labs(x = "Tầng hầm",y = "Số ngôi nhà")
4.3.2. Rủi ro tương đối (Risk ratio)
{r} epitab(B, method = "riskratio")
Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong
bảng ngẫu nhiên:
{r} epitab(B, method = "riskratio", rev = "c")
4.3.3. Tỷ lệ chênh lệch (odd ratio)
{r} epitab(B, method = "oddsratio")
Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong
bảng ngẫu nhiên:
{r} epitab(B, method = "oddsratio", rev = "r")
4.2.4. Thống kê suy diễn
Kiểm định tính độc lập cho 2 biến (Area) và (Basement):
Phương pháp chi bình phương: Giả thuyết Ho: Area và Basement độc lập
{r} B <- table(data$Basement, Area);B
{r} chisq.test(B)
4.4. Thống kê mô tả biến phụ thuộc: tổng diện tích (Area) với biến độc lập: hệ thống đun nước nóng (HWH)
4.4.1. Bảng tần số, tần suất và biểu đồ
BẢNG TẦN SỐ: {r} H <- table(data$HWH, Area);H BẢNG
TẦN SUẤT: {r} H1 <- prop.table(H);H1 PHÂN PHỐI BIÊN:
{r} addmargins(H) BIỂU ĐỒ CỘT:
{r} library(data.table) h <- data.frame(data$Mainroad, data$Guestroom, data$Basement, data$HWH, data$Airconditioning, data$Prefarea, data$Area, Area) h |> ggplot(aes(x=data$Guestroom,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~Area) + labs(x = "Hệ thống đun nước nóng",y = "Số ngôi nhà")
4.4.2. Rủi ro tương đối (Risk ratio)
{r} epitab(H, method = "riskratio")
Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong
bảng ngẫu nhiên:
{r} epitab(H, method = "riskratio", rev = "c")
4.4.3. Tỷ lệ chênh lệch (odd ratio)
{r} epitab(H, method = "oddsratio")
Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong
bảng ngẫu nhiên:
{r} epitab(H, method = "oddsratio", rev = "r")
4.4.4. Thống kê suy diễn
Kiểm định tính độc lập cho 2 biến (Area) và (HWH):
Phương pháp chi bình phương: Giả thuyết Ho: Area và HWH độc lập
{r} H <- table(data$HWH, Area);H
{r} chisq.test(H)
4.5. Thống kê mô tả biến phụ thuộc: tổng diện tích (Area) với biến độc lập: hệ thống điều hòa nhiệt độ (Airconditioning)
4.5.1. Bảng tần số, tần suất và biểu đồ
BẢNG TẦN SỐ:
{r} A <- table(data$Airconditioning, Area);A BẢNG TẦN
SUẤT: {r} A1 <- prop.table(H);A1 PHÂN PHỐI BIÊN:
{r} addmargins(A) BIỂU ĐỒ CỘT:
{r} library(data.table) a <- data.frame(data$Mainroad, data$Guestroom, data$Basement, data$HWH, data$Airconditioning, data$Prefarea, data$Area, Area) a |> ggplot(aes(x=data$Guestroom,y=after_stat(count))) + geom_bar(fill="green") + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = "count", color = "blue", vjust = - .5) + facet_grid(. ~Area) + labs(x = "Hệ thống điều hòa nhiẹt độ",y = "Số ngôi nhà")
4.5.2. Rủi ro tương đối (Risk ratio)
{r} epitab(A, method = "riskratio")
Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong
bảng ngẫu nhiên:
{r} epitab(A, method = "riskratio", rev = "c")
4.5.3. Tỷ lệ chênh lệch (odd ratio)
{r} epitab(A, method = "oddsratio")
Khi thêm tham số rev = “r” thì sẽ thực hiện việc đổi chỗ 2 dòng trong
bảng ngẫu nhiên:
{r} epitab(A, method = "oddsratio", rev = "r")
4.5.4. Thống kê suy diễn
Kiểm định tính độc lập cho 2 biến (Area) và (Airconditioning):
Phương pháp chi bình phương: Giả thuyết Ho: Area và Airconditioning
độc lập {r} A <- table(data$Airconditioning, Area);A
{r} chisq.test(A)
{r} library(tidyverse)
{r} library(tidyselect)
{r} library(dplyr) library(caTools)
{r} data$Mainroad<- as.factor(data$Mainroad) data$Guestroom<- as.factor(data$Guestroom) data$Basement<- as.factor(data$Basement) data$HWH<- as.factor(data$HWH) data$Airconditioning<- as.factor(data$Airconditioning) data$Prefarea<- as.factor(data$Prefarea) data$FS<- as.factor(data$FS)
1. Ma trận hệ số tương quan
{r} continuous_vars <- data[, sapply(data, is.numeric)] cor_matrix <- cor(continuous_vars) cor_matrix