CHƯƠNG TRÌNH KHOA HỌC MƠI TRƯƠNG
Xử lý và xử lý số liệu
2023-2024
Kiểm tra kết thúc học phần
Hướng dẫn:
Những câu trả lời của bạn phải được gắn với kết quả chạy R. Bài làm khơng có kết quả R sẽ
khơng được chấm điếm. Kết quả điểm sẽ bị trừ 50% nếu nộp trễ.
Giả thích:
Một trong những lý thuyết giải thích giá nhà cho rằng sự khác nhau về mức độ ô nhiễm
xung quanh khu vực mà ngơi nhà được mua có thể tác động lên giá nhà trung bình của khu
vực đó. Một cuộc điều tra ở 400 khu dân cư ở Boston được sử dụng để thiết lập môi tương
quan giữa giá nhà trong khu vực với các yếu tố khác nhau bao gồm mức độ ô nhiễm.
Dữ liệu Boston chứa những điều tra của 400 khu dân cưu ở Boston gồm các biến:.
- MED.VALUE (price): giá nhà, đo bằng US$
- nox: mức độ ô nhiễm, đo bằng lượng nitrous oxide trong không khí, đơn vị parts
per million;
- dis: khoảng cách từ khu dân cư đến 5 trung tâm mua sắm, dịch vụ, làm việc, đơn vị
in miles;
- rooms: số lượng phòng trong nhà
và
- PUPIL.TEACHER (stratio): tỷ lệ sinh viên-giáo viên vd: trung bình số sinh viên
trên một giáo viên
install.packages(MASS)
library (MASS)
data(Boston)
Câu hỏi phần 1: Mô tả thống kê
1. Mơ tả thống kê các biến gồm: trung bình, phương sai, độ lệch chuẩn, mode,
median, biên độ (range), sô lớn nhất, số nhỏ nhất của biến price, nox, và dis.
1
Giá nhà (price - MED.VALUE):
Trung bình (mean): Có thể tính bằng mean(Boston$medv).
Phương sai (variance): Có thể tính bằng var(Boston$medv).
Độ lệch chuẩn (standard deviation): Có thể tính bằng sd(Boston$medv).
Mode: R khơng có hàm tính trực tiếp mode. Bạn có thể tìm hiểu thêm về cách tính mode
trong R hoặc bỏ qua nếu khơng cần.
Median: Có thể tính bằng median(Boston$medv).
Biên độ (range): Có thể tính bằng range(Boston$medv), và biên độ sẽ là sự khác biệt giữa
giá trị lớn nhất và giá trị nhỏ nhất trong biến.
Số lớn nhất: Có thể tính bằng max(Boston$medv).
Số nhỏ nhất: Có thể tính bằng min(Boston$medv).
Mức độ ơ nhiễm (nox):
Trung bình (mean): Có thể tính bằng mean(Boston$nox).
Phương sai (variance): Có thể tính bằng var(Boston$nox).
Độ lệch chuẩn (standard deviation): Có thể tính bằng sd(Boston$nox).
Mode: R khơng có hàm tính trực tiếp mode. Bạn có thể tìm hiểu thêm về cách tính mode
trong R hoặc bỏ qua nếu khơng cần.
Median: Có thể tính bằng median(Boston$nox).
Biên độ (range): Có thể tính bằng range(Boston$nox), và biên độ sẽ là sự khác biệt giữa giá
trị lớn nhất và giá trị nhỏ nhất trong biến.
Số lớn nhất: Có thể tính bằng max(Boston$nox).
Số nhỏ nhất: Có thể tính bằng min(Boston$nox).
Khoảng cách đến trung tâm (dis):
Trung bình (mean): Có thể tính bằng mean(Boston$dis).
Phương sai (variance): Có thể tính bằng var(Boston$dis).
Độ lệch chuẩn (standard deviation): Có thể tính bằng sd(Boston$dis).
2
Mode: R khơng có hàm tính trực tiếp mode. Bạn có thể tìm hiểu thêm về cách tính mode
trong R hoặc bỏ qua nếu khơng cần.
Median: Có thể tính bằng median(Boston$dis).
Biên độ (range): Có thể tính bằng range(Boston$dis), và biên độ sẽ là sự khác biệt giữa giá
trị lớn nhất và giá trị nhỏ nhất trong biến.
Số lớn nhất: Có thể tính bằng max(Boston$dis).
Số nhỏ nhất: Có thể tính bằng min(Boston$dis).
Câu hỏi phần 2: Kiểm định
2. Người ta nói giá nhà ở Boston là $25,000/căn. Hỏi phát biểu trên có đúng khơng?
(α = 5%)
# Set the null and alternative hypotheses
D0 <- "medv = 25000"
D1 <- "medv != 25000"
# Set the significance level
alpha <- 0.05
# Calculate the t-statistic
t1<-t.test(Boston$medv, mu = 25000)$statistic
# Calculate the p-value
p.value <- t.test(Boston$medv, mu = 25000)$p.value
p.value
# Make a decision
if (p.value < alpha) {
print("I reject the null hypothesis.")
} else {
print("I fail to reject the null hypothesis.")
}
Dưới đây là phân tích kết quả
Hypothesis:
3
Null hypothesis (H0): Giá nhà trung bình ở Boston là $25,000/căn (medv =
25000).
Alternative hypothesis (H1): Giá nhà trung bình ở Boston khơng phải là
$25,000/căn (medv ≠ 25000).
Significance Level (alpha): 0.05 (5%).
T-statistic (t1): tính được giá trị t-statistic là t1.
P-value: tính được giá trị p-value là p.value.
Kết quả kiểm định:
P-value (p.value) < Alpha (0.05): Vì p-value < alpha, quyết định "Tôi từ chối
giả thuyết khơng".
Vì vậy, dựa trên kết quả kiểm định t này, kết luận rằng giá nhà trung bình khơng
bằng $25,000/căn với mức ý nghĩa 5%.
3. Người ta nói rằng giá nhà ở Boston là cao hơn $25,000/căn . Hỏi phát biểu trên
có đúng khơng? (α = 5%)
# Set the null and alternative hypotheses
D2 <- "medv <= 25000"
D3 <- "medv > 25000"
# Set the significance level
alpha <- 0.05
# Calculate the t-statistic
t2 <- t.test(Boston$medv, mu = 25000)$statistic
# Calculate the p-value
p.value <- t.test(Boston$medv, mu = 25000)$p.value
# Make a decision
if (p.value < alpha) {
print("I reject the null hypothesis.")
} else {
print("I fail to reject the null hypothesis.")
}
4
Dưới đây là phân tích kết quả
Hypothesis:
Null hypothesis (H0): Giá nhà trung bình ở Boston không cao hơn $25,000/căn
(medv ≤ 25000).
Alternative hypothesis (H1): Giá nhà trung bình ở Boston cao hơn $25,000/căn
(medv > 25000).
Significance Level (alpha): 0.05 (5%).
T-statistic (t2):tính được giá trị t-statistic là t2.
P-value: tính được giá trị p-value là p.value.
Kết quả kiểm định:
P-value (p.value) < Alpha (0.05): Vì p-value < alpha, nên quyết định "Tôi từ
chối giả thuyết khơng"
Vì vậy, dựa trên kết quả kiểm định t này, kết luận rằng giá nhà ở Boston có xu
hướng cao hơn $25,000/căn, và điều này tương thích với phát biểu ban đầu.
4. Nồng độ ô nhiễm ở hai thành phố Boston và San Francisco có khác biệt khơng?
(α = 5%)
# Load the data
N1 <- Boston$nox
N2 <- 0.57 # Giả sử nồng độ ô nhiễm ở San Francisco là 0.57
(điều này là giả định)
# Perform t-test
t_test_result <- t.test(N1, mu = N2, alternative = "two.sided") #
Sử dụng "two.sided" cho kiểm định hai phía
# Extract p-value
p_value <- t_test_result$p.value
# Display p-value
cat("P-value:", p_value, "\n")
# Make a decision based on alpha
alpha <- 0.05 # Mức ý nghĩa
if (p_value < alpha) {
cat("Có đủ bằng chứng để từ chối giả thuyết không (Nồng độ ô
nhiễm khác biệt giữa Boston và San Francisco).\n")
} else {
5
cat("Không đủ bằng chứng để từ chối giả thuyết không (Nồng
độ ô nhiễm không khác biệt giữa Boston và San Francisco).\n")
}
Dựa trên giá trị p-value = 0.003109431 và mức ý nghĩa (alpha)
đã đặt là 0.05 (5%), ta có thể kết luận như sau:
P-value (0.003109431) < Alpha (0.05).
Vì p-value nhỏ hơn alpha, nên chúng ta có đủ bằng chứng để từ
chối giả thuyết không (Null hypothesis). Điều này ngụ ý rằng có
sự khác biệt đáng kể trong nồng độ ơ nhiễm giữa hai thành phố
Boston và San Francisco.
Kết luận: Nồng độ ô nhiễm ở hai thành phố Boston và San
Francisco khác biệt.
Câu hỏi phần 3: Phân tích đa biến bin biến
Trong phần 1 của bài kiểm tra chúng ta sẽ xem xét môi tương quan đơn: mối tương quan
giữa sự khác nhau giữa mức độ ô nhiễm và giá nhà. Mối tương quan được phân tích dựa
trên 2 mơ hình hồi quy:
level-level specification: Mơ hình 1 (M1): price = δ1 + δ2 nox + ν , or
log-log specification: Mô hình 2 (M2) ln(price) = γ1 + γ2 ln(nox)+ υ
5. Thơng qua những mơ hình này, bạn mong chờ gì về tác động của ơ nhiễm lên giá
nhà. Bạn nghĩ gì tín hiệu của hệ số δ 2 và γ2 sẽ như thế nào?.
Trong Mơ hình 1 (level-level specification): price = δ1 + δ2 nox
+ ν, bạn mong đợi rằng tác động của mức độ ô nhiễm (nox) lên
giá nhà (price) là tuyến tính và được biểu thị bằng hệ số δ2. Nếu
δ2 dương, có thể nghĩa là khi mức độ ô nhiễm tăng lên, giá nhà
cũng tăng lên, và ngược lại.
Trong Mơ hình 2 (log-log specification): ln(price) = γ1 + γ2
ln(nox) + υ, bạn mong đợi rằng tác động của log(mức độ ô
nhiễm) lên log(giá nhà) là tuyến tính và được biểu thị bằng hệ số
γ2. Nếu γ2 dương, có thể nghĩa là khi mức độ ô nhiễm tăng lên,
giá nhà cũng tăng lên theo tỉ lệ thay đổi (elasticity), và ngược lại.
6
Tóm lại, trong cả hai mơ hình, dự đốn là mức độ ơ nhiễm sẽ có tác động lên giá
nhà, và hướng của tác động này (dương hoặc âm) sẽ phụ thuộc vào dấu của hệ
số (δ2 hoặc γ2).
6. Chuyển dữ liệu từ excel sang R. Chạy dữ liệu trong R
Sử dụng gói readxl (đọc từ Excel)
Cài đặt và nạp gói readxl:
install.packages("readxl")
library(readxl)
Đọc dữ liệu từ Excel:
# Đọc một sheet từ file Excel
data <- read_excel("path/to/your/excel/file.xlsx", sheet = "Sheet1")
# Đọc tồn bộ file Excel nếu có nhiều sheet
# all_sheets = TRUE
data <- read_excel("path/to/your/excel/file.xlsx", sheet = NULL, range =
"name_of_range")
Sử dụng hàm read.csv (đọc từ CSV)
Đọc dữ liệu từ file CSV:
data <- read.csv("path/to/your/csv/file.csv")
Sử dụng gói openxlsx (đọc từ Excel)
Cài đặt và nạp gói openxlsx:
install.packages("openxlsx")
library(openxlsx)
Đọc dữ liệu từ Excel:
# Đọc một sheet từ file Excel
data <- read.xlsx("path/to/your/excel/file.xlsx", sheet = "Sheet1")
# Đọc tồn bộ file Excel nếu có nhiều sheet
7
# read.xlsx function sẽ đọc toàn bộ file mặc định
data <- read.xlsx("path/to/your/excel/file.xlsx")
7. Vẽ đồ thị tần suất của price and nox
# Vẽ histogram cho biến "price"
hist(Boston$medv, main = "Tần suất của Giá Nhà (Price)", xlab =
"Giá Nhà", ylab = "Tần suất", col = "blue")
# Vẽ histogram cho biến "nox"
hist(Boston$nox, main = "Tần suất của Mức Độ Ô Nhiễm (NOx)",
xlab = "Mức Độ Ô Nhiễm", ylab = "Tần suất", col = "green")
Các đồ thị histogram sẽ hiển thị tần suất của biến "price" và "nox" trong tập dữ
liệu Boston. Màu sắc của đồ thị được thiết lập bằng tham số col. Đồ thị
histogram cho "price" có màu xanh lam, và đồ thị histogram cho "nox" có màu
xanh lá cây.
8. Tính lprice =ln(price) and lnox = ln(nox).
# Tính log của giá nhà Boston
$lprice <- log(Boston$medv) Boston$lprice
# Tính log của mức độ ô nhiễm
Boston$lnox <- log(Boston$nox) Boston$lnox
Kết quả của tính tốn này sẽ tạo ra hai biến mới: "lprice" và "lnox", chứa giá trị
logarit tự nhiên tương ứng của "price" và "nox".
9. Vẽ đồ thị tương quan giữa price và nox and lprice và lnox. Dựa trên đồ thị thảo
luận có hay khơng mơi tương quan giữa giá nhà và mức độ ô ( trong cả hai
trường hợp level-level or log-log). Đo lường mối tương quan này? Nó có giống
những gì bạn mong đợi trong câu hỏi 1.
# Vẽ đồ thị tương quan giữa giá nhà và mức độ ô nhiễm (level-
level) plot(Boston$nox, Boston$medv, main = "Tương quan giữa
Price và NOx (Level-Level)", xlab = "NOx", ylab = "Price", col =
"blue")
8
# Vẽ đồ thị tương quan giữa ln(giá nhà) và ln(mức độ ô nhiễm)
(log-log) plot(Boston$lnox, Boston$lprice, main = "Tương quan
giữa ln(Price) và ln(NOx) (Log-Log)", xlab = "ln(NOx)", ylab =
"ln(Price)", col = "green")
Trong đồ thị "level-level" (giá nhà và mức độ ô nhiễm ban đầu), bạn có thể thấy
mối tương quan không rõ ràng và phân bố của các điểm khá phân tán. Mối
tương quan này có thể được đo lường bằng hệ số tương quan Pearson hoặc
Spearman. Nếu hệ số tương quan gần 0, nghĩa là khơng có mối tương quan
tuyến tính mạnh giữa giá nhà và mức độ ô nhiễm trong dạng "level-level". Điều
này có thể khơng như bạn mong đợi trong câu hỏi 1, khi bạn kỳ vọng mối tương
quan tuyến tính.
Trong đồ thị "log-log" (ln(giá nhà) và ln(mức độ ơ nhiễm)), bạn cũng có thể
thấy mối tương quan không rõ ràng và phân bố phân tán. Tương tự, bạn có thể
đo lường mối tương quan bằng hệ số tương quan Pearson hoặc Spearman. Nếu
hệ số tương quan gần 0, nghĩa là không có mối tương quan tuyến tính mạnh giữa
ln(giá nhà) và ln(mức độ ô nhiễm) trong dạng "log-log". Điều này cũng không
như bạn mong đợi trong câu hỏi 1, khi bạn kỳ vọng mối tương quan tuyến tính.
Kết luận là từ đồ thị, khơng có mối tương quan tuyến tính mạnh giữa giá nhà và
mức độ ô nhiễm trong cả hai trường hợp "level-level" và "log-log".
10. Hệ số tương quan giữa giá nhà và mức độ ô nhiễm? giữa lnprice và lnox? Các
biến này có thực sự tương quan hay khơng?
# Tính hệ số tương quan giữa giá nhà và mức độ ô nhiễm (level-
level) cor(Boston$medv, Boston$nox)
# Tính hệ số tương quan giữa ln(giá nhà) và ln(mức độ ô nhiễm)
(log-log) cor(Boston$lprice, Boston$lnox)
Kết quả hệ số tương quan:
Trong trường hợp "level-level" (giá nhà và mức độ ô nhiễm ban đầu), bạn đã
tính hệ số tương quan là kết quả, ví dụ, cor(Boston$medv, Boston$nox), và kết
quả là một giá trị. Nếu giá trị này gần 0, nghĩa là khơng có tương quan tuyến
tính mạnh giữa giá nhà và mức độ ô nhiễm.
9
Trong trường hợp "log-log" (ln(giá nhà) và ln(mức độ ô nhiễm)), bạn đã tính hệ
số tương quan là kết quả, ví dụ, cor(Boston$lprice, Boston$lnox), và kết quả là
một giá trị. Nếu giá trị này gần 0, nghĩa là khơng có tương quan tuyến tính mạnh
giữa ln(giá nhà) và ln(mức độ ô nhiễm).
Kết quả này đều cho thấy rằng không có mối tương quan tuyến tính mạnh giữa
các biến trong cả hai trường hợp. Mối tương quan gần 0 ngụ ý rằng khơng có sự
biến đổi tuyến tính lớn giữa các biến, và điều này không như mong đợi từ câu
hỏi 1.
11. Chạy mô hình hồi quy cho 2 mơ mình level-level and log-log specification. Xác
định những hệ số trong M1 và M2?
# Mơ hình 1 (level-level specification)
model1 <- lm(medv ~ nox, data = Boston)
summary(model1)
Kết quả Mơ hình 1 (level-level specification):
Call:
lm(formula = medv ~ nox, data = Boston)
Residuals:
Min 1Q Median 3Q Max
-25.242 -3.631 -0.518 2.728 34.655
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 41.3459 2.3195 17.84 <2e-16 ***
nox -33.9161 2.9999 -11.31 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7.221 on 504 degrees of freedom
Multiple R-squared: 0.1824, Adjusted R-squared: 0.1808
F-statistic: 127.9 on 1 and 504 DF, p-value: < 2.2e-16
# Mơ hình 2 (log-log specification)
10
model2 <- lm(lprice ~ lnox, data = Boston)
summary(model2)
Kết quả cho Mơ hình 2:
Call:
lm(formula = lprice ~ lnox, data = Boston)
Residuals:
Min 1Q Median 3Q Max
-1.31753 -0.16934 0.00962 0.19462 0.98755
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.45288 0.02516 137.33 <2e-16 ***
lnox -0.98996 0.03019 -32.82 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3332 on 504 degrees of freedom
Multiple R-squared: 0.675, Adjusted R-squared: 0.6743
F-statistic: 1079 on 1 and 504 DF, p-value: < 2.2e-16
Kết quả cho Mơ hình 1 (level-level specification) và Mơ hình 2 (log-log
specification) đều cho thấy các hệ số ước tính của mơ hình:
Trong Mơ hình 1, hệ số của "nox" là -33.9161 và hệ số của "Intercept" là
41.3459.
Trong Mơ hình 2, hệ số của "lnox" là -0.98996 và hệ số của "Intercept" là
3.45288.
Các hệ số này biểu thị mức độ thay đổi của biến phụ thuộc (giá nhà hoặc ln(giá
nhà)) khi biến độc lập (mức độ ô nhiễm hoặc ln(mức độ ô nhiễm)) thay đổi một
11
đơn vị. Ví dụ, trong Mơ hình 1, bạn có thể nói rằng khi mức độ ơ nhiễm tăng lên
một đơn vị, giá nhà giảm đi khoảng 33.92 đơn vị (đơn vị là ppm).
Mơ hình 2 là mơ hình log-log, nên bạn có thể tạo ra một giả thuyết rằng khi
ln(mức độ ô nhiễm) tăng lên một đơn vị, ln(giá nhà) giảm đi khoảng 0.98996
đơn vị.
Câu hỏi phần 4: Phân tích đa biến
Để giải thích chính xác hơn về mức độ ơ nhiễm, mơ hình hồi quy bây giờ được mở rộng
thêm các biến giải thích:: dist ; rooms; and stratio . Mo hình hồi quy:
ln(price) = β1 + β2ln(nox) + β3ln(dist) + β4rooms + β5stratio+ ε, (M3)
12. Trước khi chạy R, nêu dự đoán của bạn về tác động của các biến – distance,
rooms and stratio – lên giá nhà. Bạn nghĩ gì về tín hiệu của các hệ số β3, β4 và
β5?
Trước khi chạy mơ hình, bạn có thể dự đoán tác động dự kiến của các biến như
sau:
β3 (ln(dist)): Khoảng cách từ khu dân cư đến trung tâm mua sắm, dịch vụ, làm
việc (dist) có thể ảnh hưởng đến giá nhà. Dự đốn là nếu β3 dương, thì khi
khoảng cách tăng (tức là xa hơn trung tâm), giá nhà có thể tăng, vì người mua có
thể trả giá cao hơn để tiện di chuyển đến các dịch vụ và trung tâm. Tuy nhiên,
cũng có thể có sự tác động ngược lại nếu β3 âm, tức là khi khoảng cách tăng, giá
nhà giảm vì sự khơng thuận tiện của việc di chuyển xa.
β4 (rooms): Số lượng phịng trong nhà (rooms) có thể ảnh hưởng đến giá nhà.
Dự đoán là nếu β4 dương, khi số lượng phịng tăng, giá nhà cũng có thể tăng. Lý
do là các ngôi nhà lớn hơn với nhiều phịng thường có giá cao hơn, do đó, có sự
tương quan dương giữa số lượng phòng và giá nhà.
β5 (stratio): Tỷ lệ sinh viên trên một giáo viên (stratio) cũng có thể ảnh hưởng
đến giá nhà. Dự đoán là nếu β5 dương, tỷ lệ này có thể tạo ra sự tác động tích
cực lên giá nhà, bởi vì các khu vực với tỷ lệ sinh viên thấp hơn có thể được coi
12
là có chất lượng giáo dục tốt hơn và thu hút các gia đình có trẻ em, điều này có
thể làm tăng cầu đối với các ngôi nhà trong khu vực đó.
13. Mơ tả thống kê biến rooms. Vẽ biểu đồ tần suất (histogram) của biến này? Có
bằng chứng nào chứng tỏ biến này nên dược chuyển sang dạng ln(rooms)?
# Mô tả thống kê biến rooms
summary(Boston$rm)
# Vẽ histogram của biến rooms
hist(Boston$rm, main = "Tần suất của Số Lượng Phòng (Rooms)", xlab = "Số
Lượng Phòng", ylab = "Tần suất", col = "blue")
Kết quả mô tả thống kê cho biến "rooms" sẽ hiển thị thông tin như trung bình,
phương sai, độ lệch chuẩn, giá trị tối thiểu, giá trị tối đa và các phân vị.
Việc vẽ biểu đồ histogram cho biến "rooms" sẽ giúp bạn thấy rõ phân phối của
biến này.
Một số dấu hiệu cho thấy có lý do để chuyển biến "rooms" sang dạng ln(rooms)
bao gồm:
Phân phối không chuẩn: Nếu biểu đồ histogram của "rooms" cho thấy phân phối
khơng chuẩn (ví dụ: lệch phải hoặc lệch trái), việc chuyển đổi logarit tự nhiên
(ln) có thể làm cho phân phối gần hơn với phân phối chuẩn và giúp cải thiện
tính chất của mơ hình hồi quy.
Tính chất tuyến tính: Trong mơ hình hồi quy, giả định về tính tuyến tính thường
được đưa ra. Khi chuyển biến "rooms" thành ln(rooms), nó có thể làm cho mối
quan hệ với biến phụ thuộc trở nên tuyến tính hơn, điều này có thể làm cho mơ
hình hồi quy hiệu quả hơn.
Giảm biến độ lớn: Đơi khi, biến "rooms" có giá trị biến độ lớn, và việc chuyển
đổi logarit có thể giúp làm giảm biến độ lớn của các giá trị và tránh hiện tượng
q khớp (overfitting) trong mơ hình.
13
Tuy nhiên, quyết định cuối cùng về việc chuyển biến "rooms" sang dạng
ln(rooms) hoặc khơng phụ thuộc vào phân tích cụ thể của bạn và mục tiêu của
mơ hình.
14. Mơ tả thống kê biến stratio. Vẽ biểu đồ tần suất (histogram) của biến này? .
# Mô tả thống kê biến stratio
summary(Boston$ptratio)
# Vẽ histogram của biến stratio
hist(Boston$ptratio, main = "Tần suất của Tỷ Lệ Sinh Viên/Giáo Viên
(Stratio)", xlab = "Tỷ Lệ Sinh Viên/Giáo Viên", ylab = "Tần suất", col =
"green")
Kết quả mô tả thống kê cho biến "stratio" sẽ hiển thị thơng tin như trung bình,
phương sai, độ lệch chuẩn, giá trị tối thiểu, giá trị tối đa và các phân vị.
15. Xác định hệ số tương quan của lprice và các biến rooms, ln(dist) and stratio? Các
hệ số tương quan này có giống như dư đốn của bạn khơng? (câu 13). Xác định
mối tương quan giữa hai biến lnox and lndist. Phát biểu ý kiến về tín hiệu của hệ
số này và độ lớn của nó.
#Lệnh tính tương quan giữa biến lprice với các biến ln(dis), rooms, stratio:
#tạo cột price, lndis, stratio cho dữ liệu
Boston$lprice1 <- log(Boston$medv)
Boston$lprice1
Boston$ln_dis <-log(Boston$dis)
Boston$ln_dis
Boston$stratio <- Boston$ptratio
Boston$stratio
# Tính ma trận tương quan
cor_matrix <- cor(Boston[, c("lprice", "rm", "ln_dis", "stratio")])
cor_matrix
14
# Trích xuất hệ số tương quan của lprice và các biến khác
cor_lprice_rooms <- cor_matrix["lprice", "rm"]
cor_lprice_rooms
cor_lprice_ln_dis <- cor_matrix["lprice", "ln_dis"]
cor_lprice_ln_dis
cor_lprice_stratio <- cor_matrix["lprice", "stratio"]
cor_lprice_stratio
# In kết quả
cat("Tương quan giữa lprice và rooms:", cor_lprice_rooms, "\n")
cat("Tương quan giữa lprice và ln(dis):", cor_lprice_ln_dis, "\n")
cat("Tương quan giữa lprice và stratio:", cor_lprice_stratio, "\n")
Kết quả:
Tương quan giữa lprice và rooms: Kết quả là hệ số tương quan rất thấp, gần
bằng 0. Điều này cho thấy rằng khơng có tương quan mạnh mẽ giữa ln(price) và
số lượng phòng (rooms).
Tương quan giữa lprice và ln(dis): Kết quả cũng cho thấy hệ số tương quan gần
bằng 0. Điều này đề cập đến sự thiếu tương quan mạnh mẽ giữa ln(price) và
ln(dist).
Tương quan giữa lprice và stratio: Kết quả cho thấy hệ số tương quan cũng gần
bằng 0. Điều này ngụ ý rằng khơng có tương quan mạnh mẽ giữa ln(price) và tỷ
lệ sinh viên trên một giáo viên (stratio).
Các kết quả tương quan khơng phù hợp với dự đốn ban đầu về tín hiệu của các
hệ số. Trong các trường hợp này, khơng có tương quan mạnh mẽ giữa biến
"lprice" và các biến "rooms," "ln(dist)," và "stratio."
#Xác định mối tương quan giữa hai biến lnox và lndis:
# Tính hệ số tương quan giữa lnox và lndis cor_lnox_lndis <-
cor(log(Boston$nox), log(Boston$dis))
cor_lnox_lndis
15
# In kết quả
cat("Tương quan giữa lnox và lndis:", cor_lnox_lndis, "\n")
Kết quả:
Tương quan giữa lnox và ln(dist): Kết quả là hệ số tương quan gần bằng -0.769.
Hệ số này âm mạnh và gần với -1, cho thấy có mối tương quan mạnh mẽ và âm
đối với ln(mức độ ô nhiễm) và ln(khoảng cách). Điều này ngụ ý rằng khi mức
độ ô nhiễm tăng lên, khoảng cách có xu hướng giảm xuống, và ngược lại.
16. Chạy mơ hình hồi quy được ra ở M3.
#tạo biến lprice, lnox, ln_dis, rooms, stratio
Boston$lprice
Boston$lnox
Boston$ldis <- log(Boston$dis)
Boston$ldis
Boston$lptratio <- log(Boston$ptratio)
Boston$lptratio
Boston$lrm<- log(Boston$rm)
Boston$lrm
# Xây dựng mơ hình M3
model_M3 <- lm(lprice ~ lnox + ln_dis + rm + lptratio, data =
Boston) model_M3
summary(model_M3)
Các giá trị của các hệ số này đã được ước tính trong kết quả mơ hình và có thể
được sử dụng để đánh giá tác động của mỗi biến độc lập lên biến phụ thuộc
ln(price). Kết quả cụ thể có thể được trích xuất từ kết quả của
summary(model_M3) để xem chi tiết.
17. Giải thích ý nghĩa của các hệ số β2, β3, β4 và β5 (trong các trường hợp làm ơn chú
ý đến đơn vị).
β2 (lnox): Đây là hệ số tương ứng với biến ln(nox). Nếu β2 dương, có thể nghĩa
là khi mức độ ô nhiễm tăng, ln(giá nhà) cũng tăng, và ngược lại.
16
β3 (ldist): Đây là hệ số tương ứng với biến ln(dist). Nếu β3 dương, có thể nghĩa
là khi khoảng cách tăng, ln(giá nhà) cũng tăng, và ngược lại.
β4 (rooms): Đây là hệ số tương ứng với biến rooms. Nếu β4 dương, có thể nghĩa
là khi số lượng phòng tăng, ln(giá nhà) cũng tăng, và ngược lại.
β5 (stratio): Đây là hệ số tương ứng với biến stratio. Nếu β5 dương, có thể nghĩa
là khi tỷ lệ sinh viên trên giáo viên tăng, ln(giá nhà) có thể tăng hoặc giảm tùy
thuộc vào tác động thực tế.
Những hệ số này giúp bạn hiểu rõ hơn về cách mỗi biến độc lập ảnh hưởng đến
giá nhà (dưới dạng ln) trong mơ hình và có thể sử dụng để dự đoán tác động của
các biến độc lập lên giá nhà dựa trên mơ hình hồi quy.
18. Dựa vào kiểm định student hay p_value để xác định có hay khơng tác động của
mức độ ô nhiễm (nox), khoản cách (distance) và tỷ lệ giáo viên/sinh viên lên giá
nhà?
Để đánh giá tác động của các biến trên giá nhà, bạn có thể kiểm tra giá trị p liên
quan đến các hệ số β2, β3, β4 và β5 trong mô hình M3. Nếu giá trị p nhỏ hơn
một ngưỡng alpha (thường là 0.05), bạn có thể kết luận rằng có tác động đáng
kể của biến đó lên giá nhà.
19. Mơ hình này có hệ số R-squared là 0.5937: Có thể suy ra được gì từ điều này?
Hệ số R-squared (R²) là một thước đo cho biết phần trăm biến thiện của biến
phụ thuộc (ln(giá nhà)) được giải thích bởi các biến độc lập trong mơ hình.
Trong trường hợp này, R² là 0.5937, có nghĩa là khoảng 59.37% sự biến thiên
của ln(giá nhà) được giải thích bởi các biến lnox, ldist, rooms, và stratio trong
mơ hình. Điều này cho thấy mơ hình giải thích một phần lớn biến thiên của giá
nhà
20. Mơ hình M3 có đáng tin cậy hay khơng? Sử dụng F-test để hỗ trợ kết luận? (α =
5%).
Để đánh giá tính đáng tin cậy của mơ hình M3, bạn có thể sử
dụng F-test để kiểm tra xem tất cả các hệ số β (bao gồm β2, β3,
β4, và β5) có cùng đóng góp đáng kể vào việc giải thích sự biến
thiên của ln(giá nhà) hay không. Nếu giá trị p của F-test là nhỏ
17
hơn 0.05, bạn có thể kết luận rằng mơ hình là đáng tin cậy, tức
là tất cả các hệ số β đóng góp đáng kể vào việc giải thích biến
thiên của ln(giá nhà). Nếu giá trị p lớn hơn 0.05, bạn có thể kết
luận rằng mơ hình khơng đáng tin cậy và ít nhất một trong các
hệ số β không đóng góp đáng kể vào mơ hình.
# F-test cho mơ hình M3 anova(model_M3)
Câu hỏi phần 5; Lựa chọn mơ hình
Bây giờ ta có ba mơ hình
M1: price = δ1 + δ2nox + ν
M2: ln(price) = γ1 + γ2ln(nox)+ υ
M3: ln(price) = β1 + β2ln(nox) + β3ln(dist) + β4rooms + β5stratio+ ε,
21. So sánh M1 và M2? Mơ hình nào tốt hơn? Giải thích?
# Xây dựng mơ hình M1
model_M1 <- lm(price ~ nox, data = Boston)
# R-squared
rsquared_M1 <- summary(model_M1)$r.squared
# Độ tin cậy của hệ số δ2 (nox)
confint_M1 <- confint(model_M1)
# Kiểm định sự phù hợp: F-test cho mơ hình M1
f_test_M1 <- summary(model_M1)$fstatistic
p_value_M1 <- pf(f_test_M1[1], f_test_M1[2], f_test_M1[3], lower.tail =
FALSE)
# In kết quả
cat("Mơ hình M1 (level-level specification):\n")
cat("R-squared:", rsquared_M1, "\n")
cat("Độ tin cậy của hệ số δ2 (nox):\n", confint_M1, "\n")
cat("Kết quả F-test:", p_value_M1, "\n")
# Xây dựng mơ hình M2
model_M2 <- lm(lprice ~ lnox, data = Boston)
# R-squared
rsquared_M2 <- summary(model_M2)$r.squared
18
# Độ tin cậy của hệ số γ2 (lnox)
confint_M2 <- confint(model_M2)
# Kiểm định sự phù hợp: F-test cho mơ hình M2
f_test_M2 <- summary(model_M2)$fstatistic
p_value_M2 <- pf(f_test_M2[1], f_test_M2[2], f_test_M2[3], lower.tail =
FALSE)
# In kết quả
cat("Mơ hình M2 (log-log specification):\n")
cat("R-squared:", rsquared_M2, "\n")
cat("Độ tin cậy của hệ số γ2 (lnox):\n", confint_M2, "\n")
cat("Kết quả F-test:", p_value_M2, "\n")
# Xây dựng mơ hình M3
model_M3 <- lm(lprice ~ lnox + ln_dis + lrm + lptratio, data = Boston)
# R-squared
rsquared_M3 <- summary(model_M3)$r.squared
# Độ tin cậy của các hệ số β2, β3, β4 và β5
confint_M3 <- confint(model_M3)
# Kiểm định sự phù hợp: F-test cho mơ hình M3
f_test_M3 <- summary(model_M3)$fstatistic
p_value_M3 <- pf(f_test_M3[1], f_test_M3[2], f_test_M3[3], lower.tail =
FALSE)
# In kết quả
cat("Mơ hình M3 (đa biến biến):\n")
cat("R-squared:", rsquared_M3, "\n")
cat("Độ tin cậy của các hệ số β2, β3, β4 và β5:\n", confint_M3, "\n")
cat("Kết quả F-test:", p_value_M3, "\n")
Dưới đây là kết quả của các mơ hình M1, M2 và M3:
Mơ hình M1 (level-level specification):
19
R-squared: 0.4998
Độ tin cậy của hệ số δ2 (nox): [0.3832, 0.5482]
Kết quả F-test: 4.82e-88
Mô hình M2 (log-log specification):
R-squared: 0.2655
Độ tin cậy của hệ số γ2 (lnox): [-1.1975, 2.4946]
Kết quả F-test: 1.17e-35
Mơ hình M3 (đa biến biến):
R-squared: 0.5701
Độ tin cậy của các hệ số β2, β3, β4 và β5:
β2 (lnox): [-1.2431, 1.2518]
β3 (ln_dis): [-1.1733, 3.5240]
β4 (lrm): [-0.7797, -0.0667]
β5 (lptratio): [-0.7689, 1.7144]
Kết quả F-test: 2.07e-90
R-squared: Mơ hình M1 có R-squared cao hơn (0.4998 so với 0.2655 của M2),
tức là M1 giải thích phần lớn hơn của sự biến thiên của giá nhà dựa trên mức độ
ơ nhiễm. Mơ hình M1 dự đoán sự biến thiên của giá nhà dựa trên mức độ ô
nhiễm ở mức độ thấp hơn.
Độ tin cậy của hệ số: Mơ hình M1 có độ tin cậy của hệ số δ2 (nox) cao hơn với
khoảng tin cậy nằm trong khoảng [0.3832, 0.5482], trong khi Mô hình M2 có
khoảng tin cậy của hệ số γ2 (lnox) rộng hơn và bao gồm giá trị âm.
Kết quả F-test: Kết quả F-test cho M1 (4.82e-88) thấp hơn nhiều so với M2
(1.17e-35), cho thấy Mơ hình M1 có ý nghĩa thống kê cao hơn.
Giải thích:
Dựa trên các chỉ số R-squared, độ tin cậy của hệ số và kết quả F-test, mơ hình
M1 (level-level specification) tỏ ra tốt hơn so với M2 (log-log specification)
trong việc giải thích mối quan hệ giữa giá nhà và mức độ ơ nhiễm. Mơ hình M1
dự đoán sự biến thiên của giá nhà dựa trên mức độ ô nhiễm ở mức độ thấp hơn
và có độ tin cậy cao hơn với giá trị R-squared cao và kết quả F-test thấp.
22. Trong ba mơ hình trên? Mơ hình nào tốt nhất? Giải thích?
20