You are on page 1of 47

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.

HỒ CHÍ MINH

BỘ MÔN TOÁN ỨNG DỤNG

-----🙞🙜🕮🙞🙜-----

Bài tập lớn Xác suất – Thống Kê


Nhóm: 10 – chủ đề: 4

Giáo viên hướng dẫn: Nguyễn Thị Mộng Ngọc

Nhiệm vụ được
STT MSSV Họ và tên Ghi chú
phân công

1 2113312 Lê Thị Bảo Hân - Tổng hợp PowerPoint


Nhóm
2 2111292 Huỳnh Nguyễn Đức Huy - Hoạt động 1
trưởng
3 2113861 Nguyễn Phúc Minh Kỳ - Hoạt động 2

4 2114563 Nguyễn Thị Thu Quế - Tổng hợp word

5 2114454 Nguyễn Khả Trâm - Hoạt động 1

TP. HỒ CHÍ MINH, 2022


BẢNG PHÂN CÔNG CÔNG VIỆC

Nhiệm vụ được Đánh giá


STT MSSV Họ và tên
phân công phần trăm

1 2113312 Lê Thị Bảo Hân - Tổng hợp PowerPoint 80%

- Hoạt động 1
2 2111292 Huỳnh Nguyễn Đức Huy - Tổng hợp word 100%
- Định dạng hình thức
- Hoạt động 2
- Trình bày word hoạt
động 2
- Thuyết trình hoạt động
3 2113861 Nguyễn Phúc Minh Kỳ 100%
2
- Chỉnh sửa, làm thêm
vài slide ppt của hoạt
động 2

4 2114563 Nguyễn Thị Thu Quế - Tổng hợp word 60%

- Hoạt động 1
- Thuyết trình hoạt động 1
5 2114454 Nguyễn Khả Trâm 100%
- Trình bày word hoạt động
1

i
MỤC LỤC
TÓM TẮT ..................................................................................................................1

LỜI CẢM ƠN ............................................................................................................2

ĐỀ BÀI.......................................................................................................................3

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ..........................................................................5

I. Phân tích hồi quy ........................................................................................................ 5

1.1. Định nghĩa ............................................................................................................ 5

1.2. Bản chất ................................................................................................................ 5

1.3. Ý nghĩa của hồi quy tuyến tính ........................................................................... 6

II. Mô hình hồi quy bội .................................................................................................. 6

2.1. Định nghĩa ............................................................................................................ 6

2.2. Các giả thiết của mô hình hồi quy bội................................................................ 7

2.3. Phương pháp ước lượng mô hình hồi quy bội – Phương pháp bình phương
nhỏ nhất (OLS)............................................................................................................ 7

2.4. Đánh giá mức độ phù hợp của mô hình hồi quy bội ........................................ 9

CHƯƠNG 2: XỬ LÍ SỐ LIỆU ................................................................................12

I. Đọc dữ liệu (Import data): gia_nha.csv .................................................................. 12

II. Làm sạch dữ liệu (Data cleaning): NA dữ liệu khuyết ........................................ 12

III. Làm rõ dữ liệu: (Data visualization) .................................................................... 13

3.1. Chuyển đổi biến ................................................................................................. 13

3.2. Thống kê mô tả: dùng thống kê mẫu và đồ thị. .............................................. 14

IV. Xây dựng mô hình hồi quy tuyến tính để đánh giá các nhân tố có thể ảnh
hưởng đến giá nhà ở quận King.................................................................................. 20
ii
V. Thực hiện dự báo cho giá nhà quận King ............................................................. 25

CHƯƠNG 3: PHÂN TÍCH SỐ LIỆU......................................................................27

I. Mô tả dữ liệu ............................................................................................................. 27

II. Phương pháp phân tích dữ liệu ............................................................................. 27

2.1. Đọc dữ liệu và làm rõ dữ liệu ............................................................................ 27

2.2. Xây dựng mô hình hồi quy tuyến tính: ............................................................... 27

III. Phân tích dữ liệu .................................................................................................... 28

3.1. Đọc dữ liệu và làm rõ dữ liệu ............................................................................ 28

3.2. Xây dựng các mô hình hồi quy tuyến tính ....................................................... 32

3.3 Dự báo .................................................................................................................. 34

TÀI LIỆU THAM KHẢO .......................................................................................36

iii
TÓM TẮT
Ở hoạt động 1, bản báo cáo trình bày việc áp dụng phương pháp phân tích hồi quy tuyến
tính bội vào việc phân tích mẫu dữ liệu là tập tin "gia_nha.csv" chứa thông tin về giá bán
ra thị trường (đơn vị đô la) của 21613 ngôi nhà ở quận King nước Mỹ trong khoảng thời
gian từ tháng 5/2014 đến 5/2015. Từ kết quả thu được rút ra những nhận xét về tác động
của các thuộc tính đó đối với sự thay đổi về giá bán ra của thị trường. Để thu được kết
quả phân tích, nhóm đã sử dụng các hàm cơ bản của ngôn ngữ lập trình R và vận dụng
linh hoạt giải quyết từng nhiệm vụ cụ thể đặt ra. Kết quả được trình bày dưới dạng bảng
số liệu tính toán hoặc đồ thị cung cấp một cái nhìn trực quan về khảo sát nhằm so sánh,
đối chiếu giữa ảnh hưởng của các điều kiện của ngôi nhà (số tầng, diện tích ngôi nhà,
khuôn viên, phong cảnh xung quanh,...) lên giá nhà bán ra thị trường. Trong bài báo cáo
này, trước hết nhóm sẽ nêu cơ sở lý thuyết và tính toán các giá trị thống kê mô tả để có
một cái nhìn sơ lược, sau đó áp dụng các phương pháp phân tích hồi quy tuyến tính bội.

Ở hoạt động 2, bản báo cáo trình bày việc áp dụng phương pháp phân tích hồi quy tuyến
tính vào việc phân tích, làm rõ dữ liệu và thông số môi trường xung quanh hàng giờ và
sản lượng điện ròng hàng giờ của Nhà máy điện chu trình hỗn hợp.

Cụ thể, bài báo cáo gồm có:

Phần 1: Cơ sở lý thuyết.

Phần 2: Xử lý số liệu gồm: Tính toán các giá trị thống kê mô tả giá nhà bán ra thị trường.

Phần 3: Phân tích dữ liệu: Phân tích mẫu dữ liệu PE_data.

1
LỜI CẢM ƠN
Xác suất thống kê là một môn học đại cương có tầm quan trọng đối với sinh viên nói
chung và sinh viên nhóm ngành Khoa học Kỹ thuật nói riêng. Do đó, việc dành cho môn
học này một khối lượng thời gian nhất định và thực hành là điều tất yếu để giúp sinh viên
có cơ sở vững chắc về kiến thức và kỹ năng cần thiết cho các môn học chuyên ngành
cũng như công việc sau này. Sự phát triển và ra đời của toán tin nói chung và phần mềm
R Studio, ngôn ngữ R nói riêng đã hỗ trợ rất nhiều trong quá trình học tập và nghiên cứu
bộ môn Xác suất thống kê. Việc phân tích và xử lý số liệu đã được rút ngắn và có hiệu
quả cao hơn. Vì vậy mà việc tìm hiểu R Studio và ngôn ngữ R trong việc thực hành môn
học Xác suất thống kê rất quan trọng và có tính cấp thiết. Ở bài tập lớn này, nhóm thực
hiện nội dung: Ứng dụng hồi quy tuyến tính bội để xử lý và phân tích dữ liệu. Trong suốt
quá trình thực hiện bài tập, nhóm đã nhận được rất nhiều sự quan tâm, ủng hộ và giúp đỡ
tận tình của thầy cô và bạn bè.

Ngoài ra, nhóm cũng xin gửi lời tri ân chân thành nhất đến cô Nguyễn Thị Mộng Ngọc –
giảng viên giảng dạy bộ môn Xác suất thống kê của nhóm và là người hướng dẫn cho đề
tài này. Nhờ sự hết lòng chỉ bảo mà nhóm đã hoàn thành bài tập đúng tiến độ và giải
quyết tốt những vướng mắc gặp phải. Sự hướng dẫn của cô đã là kim chỉ nam cho mọi
hành động của nhóm và phát huy được tối đa mối quan hệ hỗ trợ giữa cô và trò trong môi
trường giáo dục. Lời cuối, xin một lần nữa gửi lời biết ơn sâu sắc đến các cá nhân, các
thầy cô đã dành thời gian chỉ dẫn cho nhóm. Đây chính là niềm tin, là động lực to lớn để
nhóm có thể hoàn thành đề tài này.

2
ĐỀ BÀI
HOẠT ĐỘNG 1:

Tập tin "gia_nha.csv" chứa thông tin về giá bán ra thị trường (đơn vị đô la) của 21613
ngôi nhà ở quận King nước Mỹ trong khoảng thời gian từ tháng 5/2014 đến 5/2015. Bên
cạnh giá nhà, dữ liệu còn bao gồm các thuộc tính mô tả chất lượng ngôi nhà. Dữ liệu gốc
được cung cấp tại: https://www.kaggle.com/harlfoxem/housesalesprediction.

Các biến chính trong bộ dữ liệu:


• price: Giá nhà được bán ra.
• floors: Số tầng của ngôi nhà được phân loại từ 1-3.5.
• condition: Điều kiện kiến trúc của ngôi nhà từ 1 - 5, 1: rất tệ và 5: rất tốt.
• view: Đánh giá cảnh quan xung quanh nhà theo mức độ từ thấp đến cao: 0-4.
• sqft_above: Diện tích ngôi nhà.
• sqft_living: Diện tích khuôn viên nhà.
• sqft_basement: Diện tích tầng hầm.

Các bước thực hiện:

1. Đọc dữ liệu (Import data): GN.csv (Đổi tên tập tin gia_nha thành GN)
2. Làm sạch dữ liệu (Data cleaning): NA (dữ liệu khuyết)
3. Làm rõ dữ liệu: (Data visualization)
a) Chuyển đổi biến (nếu cần thiết).
b) Thống kê mô tả: dùng thống kê mẫu và dùng đồ thị.
4. Xây dựng mô hình hồi quy tuyến tính để đánh giá các nhân tố có thể ảnh hưởng đến
giá nhà ở quận King.
5. Thực hiện dự báo cho giá nhà quận King.

HOẠT ĐỘNG 2:

• Sinh viên tự tìm một bộ dữ liệu thuộc về chuyên ngành của mình. Khuyến khích sinh
viên sử dụng dữ liệu thực tế sẵn có từ các thí nghiệm, khảo sát, dự án, . . . trong

3
chuyên ngành của mình. Ngoài ra sinh viên có thể tự tìm kiếm dữ liệu từ những nguồn
khác hoặc tham khảo trong kho dữ liệu cung cấp trong tập tin
"kho_du_lieu_BTL_xstk.xlsx".
• Sinh viên được tự do chọn phương pháp lý thuyết phù hợp để áp dụng phân tích dữ
liệu của mình, nhưng phải đảm bảo 2 phần: Làm rõ dữ liệu (data visualization) và mô
hình dữ liệu (model fitting).

4
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
I. Phân tích hồi quy
1.1. Định nghĩa
Hồi quy (regression) là phương pháp thống kê toán học để ước lượng và kiểm định các
quan hệ giữa các biến ngẫu nhiên, và có thể từ đó đưa ra các dự báo. Các quan hệ ở đây
được viết dưới dạng các hàm số hay phương trình.
Ý tưởng chung như sau: giả sử ta có một biến ngẫu nhiên Y , mà ta muốn ước lượng xấp
xỉ dưới dạng một hàm số F(X1 , . . . , X S ) của các biến ngẫu nhiên X1 , . . . , X S khác (control
variables), hay còn gọi là biến tự do, trong khi Y được gọi là biến phụ thuộc, tức là khi ta
có các giá trị của X1 , . . . , X S , thì ta muốn từ đó ước lượng được giá trị của Y . Hàm số F
này có thể phụ thuộc vào một số tham số β = (β1 , . . . , βS ) nào đó. Ta có thể viết Y như
sau:
Y = F(X1 , . . . , X S ) + ϵ
trong đó ϵ là phần sai số (cũng là một biến ngẫu nhiên). Ta muốn chọn hàm F một cách
thích hợp nhất có thể, và các tham số β, sao cho sai số ϵ là nhỏ nhất có thể.

Đại lượng √𝔼(|𝜖|2 được gọi là sai số chuẩn (standard error) của mô hình hồi quy. Mô
hình nào mà có sai số chuẩn càng thấp thì được coi là càng chính xác
1.2. Bản chất
❖ Bản chất của biến phụ thuộc Y
Y nói chung được giả định là một biến ngẫu nhiên, và có thể được đo lường bằng một
trong bốn thước đo sau đây: thang đo tỷ lệ, thang đo khoảng, thang đo thứ bậc, và thang
đo danh nghĩa.
Thang đo tỷ lệ (ratio scale): Một thang đo tỷ lệ có 3 tính chất: (1) tỷ số của hai biến, (2)
khoảng cách giữa hai biến, và (3) xếp hạng các biến. Với thang đo tỷ lệ, ví dụ Y có hai
giá trị, 𝑌1 và 𝑌2 thì tỷ số 𝑌1 /𝑌2 và khoảng cách (𝑌2 - 𝑌1 ) là các đại lượng có ý nghĩa; và có
thể so sánh hoặc xếp thứ tự.
Thang đo khoảng (interval scale): Thang đo khoảng không thỏa mãn tính chất đầu tiên
của các biến có thang đo tỷ lệ.
Thang đo thứ bậc (ordinal scale): Các biến chỉ thỏa mãn tính chất xếp hạng của thang đo
tỷ lệ, chứ việc lập tỷ số hay tính khoảng cách giữa hai giá trị không có ý nghĩa.
Thang đo danh nghĩa (nominal scale): Các biến thuộc nhóm này không thỏa mãn bất kỳ
tính chất nào của các biến theo thang đo tỷ lệ. (như giới tính, tôn giáo,..).
5
❖ Bản chất của biến ngẫu nhiên X
Các biến ngẫu nhiên có thể được đo theo bất kỳ một trong bốn thang đo vừa nêu trên,
mặc dù trong nhiều ứng dụng thực tế thì các biến giải thích được đo theo thang đo tỷ số
và thang đo khoảng.
❖ Bản chất của sai số ngẫu nhiên (nhiễu) 𝜖
Sai số ngẫu nhiên đại diện cho tất cả các biến không được đưa vào mô hình vì những lý
do như không có sẵn dữ liệu, các lỗi đo lường trong dữ liệu. Và cho dù nguồn tạo nhiễu 𝜖
là gì đi nữa, thì người ta giả định rằng ảnh hưởng trung bình của sai số ngẫu nhiên lên Y
là không đáng kể.
Ta cũng giả định là hạng nhiễu có phân phối chuẩn với trung bình bằng 0 và phương sai
không đổi là 𝜎 2 : 𝜖~N(0; 𝜎 2 )
❖ Bản chất của tham số hồi quy 𝛽𝑆
Tham số hồi quy (tổng thể), βS , là những con số cố định (fixed numbers) và không ngẫu
nhiên (not random), mặc dù mình không thể biết giá trị thực của các Bs là bao nhiêu.
1.3. Ý nghĩa của hồi quy tuyến tính
Thuật ngữ tuyến tính (linear) trong mô hình hồi quy tuyến tính nghĩa là tuyến tính ở các
hệ số hồi quy (linearity in the regression coefficients), βS , và không phải tuyến tính ở các
biến Y và X.
II. Mô hình hồi quy bội
2.1. Định nghĩa
Mô hình hồi quy bội là mô hình hồi quy trong đó: biến phụ thuộc Y phụ thuộc vào (k – 1)
biến độc lập X2,X3, Xkk có dạng như sau:
Hàm hồi quy tổng thể: E(Y| X2,X3, Xk) = 1 + 2 X2 + 3 X3 + … + kXk
Mô hình hồi quy tổng thể: Y = 1 + 2 X2 + 3 X3 + … + kXk + 𝜖
Trong đó:
• 𝜖 là sai số ngẫu nhiên.
• 1 là hệ số tự do (hệ số chặn), bằng giá trị trung bình của Y khi Xj=0.
• j là hệ số hồi quy riêng (hay hệ số góc), thể hiện ảnh hưởng của riêng từng biến độc
lập Xj lên trung bình của Y khi các biến khác được giữ không đổi. Cụ thể, khi Xj tăng
hoặc giảm 1 đơn vị, trong điều kiện các biến độc lập khác không đổi, thì Y trung bình
sẽ thay đổi j đơn vị. Có thể nhận thấy ba khả năng có thể xảy ra đối với các hệ số
góc:
6
* Hệ số j > 0: khi đó mối quan hệ giữa Y và Xj là thuận chiều, nghĩa là khi Xj tăng
(hoặc giảm) trong điều kiện các biến độc lập khác không đổi thì Y cũng sẽ tăng (hoặc
giảm).
* Hệ số j < 0: khi đó mối quan hệ giữa Y và Xj là ngược chiều, nghĩa là khi Xj tăng
(hoặc giảm) trong điều kiện các biến độc lập khác không đổi thì Y sẽ giảm (hoặc
tăng).
* Hệ số j = 0: có thể cho rằng giữa Y và Xj không có tương quan với nhau, cụ thể là Y
có thể không phụ thuộc vào Xj hay là Xj không thực sự ảnh hưởng tới Y.
Dựa vào kết quả ước lượng với một mẫu cụ thể, ta có thể đánh giá được mối quan hệ giữa
biến phụ thuộc và các biến độc lập trong mô hình một cách tương đối.
Dù mô hình có nhiều biến độc lập nhưng vẫn tồn tại những yếu tố tác động đến biến phụ
thuộc nhưng không đưa vào mô hình vì nhiều lý do (không có số liệu hoặc không muốn
đưa vào). Do đó trong mô hình vẫn tồn tại sai số ngẫu nhiên 𝜖 đại diện cho các yếu tố
khác ngoài các biến Xj (j = 2,3, ,k) có tác động đến Y nhưng không đưa vào mô hình
như là biến số.
2.2. Các giả thiết của mô hình hồi quy bội
Giả thiết 1: Việc ước lượng được dựa trên cơ sở mẫu ngẫu nhiên.
Giả thiết 2: Kỳ vọng của sai số ngẫu nhiên tại mỗi giá trị (X2i, X3i, Xki) bằng 0:
E(𝜖| X2i, X3i, …, Xki) = 0
Giả thiết 3: Phương sai của sai số ngẫu nhiên tại các giá trị (X2i, X3i, …, Xki) đều bằng
nhau.
➢ Từ giả thiết 2 và 3 ta có thể nói sai số ngẫu nhiên (u) tuân theo phân phối chuẩn.
Giả thiết 4: Giữa các biến độc lập Xj không có quan hệ cộng tuyến hoàn hảo, nghĩa là
không tồn tại hằng số λ2, λ3,, λk không đồng thời bằng 0 sao cho:
λ2X2 + λ3X3 +… + λkXk = 0.
➢ Có thể nhận thấy nếu giữa các biến Xj (j = 2,3,,k) có quan hệ cộng tuyến hoàn
hảo thì sẽ có ít nhất một trong các biến này sẽ suy ra được từ các biến còn lại. Do đó, giả
thiết 4 được đưa ra để loại trừ tình huống này.
2.3. Phương pháp ước lượng mô hình hồi quy bội – Phương pháp bình phương nhỏ
nhất (OLS)
Sau khi xây dựng và tìm hiểu ý nghĩa của các hệ số hồi quy trong mô hình, vấn đề tiếp
theo ta quan tâm là làm sao để có được các ước lượng đáng tin cậy cho các hệ số j này.

7
Cũng như với mô hình hồi quy hai biến, ta sẽ sử dụng phương pháp bình phương nhỏ
nhất (OLS) để ước lượng các hệ số trong mô hình hồi quy k biến.
Xét mô hình k biến: Y = 1 + 2X2 + 3X3 + … + kXk + 𝜖
Giả sử có một mẫu quan sát với giá trị thực tế là (Yi, X2i, …, Xki) với (i = 1, 2, …, n). Ta
sẽ sử dụng thông tin từ mẫu để xây dựng các ước lượng cho các hệ số j (j = 1, 2, …, k),
ký hiệu là ̂ j (j = 1, 2, …, k). Từ các giá trị ước lượng này có thể viết thành hàm hồi quy
mẫu như sau:
̂ = ̂ 1 + ̂ 2X2 + ̂ 3X3 +…+ ̂ kXk
Y
Tại mỗi quan sát i, hàm hồi quy mẫu được viết thành:
̂i = ̂ 1 + ̂ 2X2i + ̂ 3X3i +…+ ̂ kXki
Y
Trong đó Ŷi là giá trị ước lượng cho Y
̂ và sai lệch giữa hai giá trị này được gọi là phần dư
với cách tính:
ei = Y
̂i - Y
̂

Tương tự như mô hình hồi quy hai biến, phương pháp OLS nhằm xác định các giá trị
̂ j (j = 1, 2, …, k) sao cho tổng bình phương các phần dư là bé nhất:
𝑛 𝑛 𝑛

∑ 𝑒12 ̂1 − 𝛽
̂𝑖 ) = ∑(𝑌𝑖 − 𝛽
= ∑(𝑌𝑖 − 𝑌 2 ̂2 𝑋2𝑖 − … − 𝛽
̂𝑘 𝑋𝑘𝑖 )2 = 𝑓(𝛽
̂1 , 𝛽
̂2 , … , 𝛽
̂𝑘 ) ⟶ 𝑀𝑖𝑛
𝑖=1 𝑖=1 𝑖=1

Khi đó, các giá trị = ̂ 1 + ̂ 2 + ̂ 3 +…+ ̂ k sẽ là nghiệm của hệ gồm k phương trình sau:
𝑛
𝜕𝑓(̂ 1 , ̂ 2 , … , ̂ k )
̂1 − 𝛽
= −2 ∑(𝑌𝑖 − 𝛽 ̂2 𝑋2𝑖 − … − 𝛽
̂𝑘 𝑋𝑘𝑖 ) = 0
𝜕̂1 𝑖=1
𝑛
𝜕𝑓(̂ 1 , ̂ 2 , … , ̂ k )
̂1 − 𝛽
= −2 ∑ 𝑋2𝑖 (𝑌𝑖 − 𝛽 ̂2 𝑋2𝑖 − … − 𝛽
̂𝑘 𝑋𝑘𝑖 ) = 0
𝜕̂ 2
𝑖=1
……………………… …………………………………………
𝑛
𝜕𝑓(̂ 1 , ̂ 2 , … , ̂ k )
̂1 − 𝛽
= −2 ∑ 𝑋𝑘𝑖 (𝑌𝑖 − 𝛽 ̂2 𝑋2𝑖 − … − 𝛽
̂𝑘 𝑋𝑘𝑖 ) = 0
𝜕 ̂
{ k 𝑖=1

Với điều kiện số quan sát trong mẫu lớn hơn số hệ số hồi quy cần ước lượng và giả thiết
4 được thỏa mãn thì hệ phương trình trên sẽ có nghiệm duy nhất. Việc giải hệ phương
trình khá dễ dàng qua các phầm mềm thống kê nếu số biến không quá lớn. Các giá trị ước

8
lượng bằng phương pháp OLS dựa trên số liệu mẫu cụ thể được xem như là các ước
lượng điểm của các hệ số trong tổng thể.
Với mô hình hồi quy bội (hồi quy k biến với k > 2), việc giải hệ phương trình để tìm các
ước lượng hệ số ̂ j (j = 1, 2, 3…k) sẽ trở nên khó khăn hơn so với mô hình hồi quy 2 biến
do đó ta sẽ có được các kết quả này với sự giúp của các phần mềm thống kê.
Từ kết quả ước lượng từ phương pháp OLS, ta có thể khai thác các thông tin để đánh giá
tác động của biến độc lập đối với sự thay đổi của biến phụ thuộc thông qua ý nghĩa các
hệ số hồi quy.
Khi các giả thiết từ 1 đến 4 thỏa mãn thì các ước lượng thu được từ phương pháp OLS là
ước lượng tuyến tính, không chệch và có phương sai nhỏ nhất trong lớp các ước lượng
tuyến tính không chệch. Hay nói một cách khác, nếu giả thiết từ 1 đến 4 được thỏa mãn
thì ước lượng OLS là ước lượng tốt nhất trong lớp các ước lượng tuyến tính không chệch.
2.4. Đánh giá mức độ phù hợp của mô hình hồi quy bội
Khi đánh giá một mô hình dựa trên số liệu mẫu, nếu chỉ quan tâm đến các ước lượng hệ
số và độ lệch chuẩn của nó thì chưa đầy đủ. Có một con số cũng góp phần không nhỏ khi
đánh giá chất lượng mô hình đó là hệ số xác định.
Sau khi ước lượng được mô hình hồi quy trong một khoảng tin cậy, ta muốn biết hàm hồi
quy mẫu phù hợp với số liệu mẫu đến mức nào. Có thể đánh giá điều đó qua hệ số xác
định bội. Ký hiệu R2 .
Cách xác định hệ số xác định bội:
Ta có:
𝑛 𝑛

𝑇𝑆𝑆 = ∑ 𝑦𝑖2 = ∑(𝑌𝑖 − 𝑌̅)2


𝑖=1 𝑖=1
𝑛 𝑛
2
𝐸𝑆𝑆 = ∑ 𝑦̂𝑖2 = ∑(𝑌̂𝑖 − 𝑌̅)
𝑖=1 𝑖=1
𝑛 𝑛
2
𝑅𝑆𝑆 = ∑ 𝑒𝑖2 = ∑(𝑌𝑖 − 𝑌̂𝑖 )
𝑖=1 𝑖=1

TSS (total sum of square): Tổng bình phương độ lệch toàn phần.
ESS (Explained sum of square): Tổng bình phương độ lệch phần hồi quy.
RSS (Residual sum of square): Tổng bình phương phần dư.

9
TSS = ESS + RSS
Khi đó hệ số xác định bội của mô hình được xác định bởi công thức sau:
𝐸𝑆𝑆 𝑅𝑆𝑆
R2 = × 100% = (1 - ) × 100%
𝑇𝑆𝑆 𝑇𝑆𝑆

Do các thành phần TSS, ESS, RSS đều không âm, nên từ biểu thức trên có thể thấy
0 ≤ R2 ≤ 1.
Giá trị R2 gắn liền với mẫu do đó nó đo sự phù hợp của mô hình (hàm hồi quy) với số
liệu mẫu. Ta kỳ vọng rằng nếu mô hình có độ phù hợp cao với số liệu mẫu thì nó cũng
phù hợp trong tổng thể.
Ý nghĩa của hệ số xác định bội
Với mô hình hồi quy k biến, R2 có ý nghĩa như sau:
R2 là tỷ lệ (hay tỷ lệ phần trăm) sự thay đổi của biến phụ thuộc được giải thích bởi các
biến độc lập trong mô hình.
Với điều kiện 0 ≤ R2 ≤ 1, ta có hai trường hợp đặc biệt đó là:
➢ R2 = 1 nghĩa là 100% sự thay đổi của biến phụ thuộc được giải thích bởi các biến
độc lập trong mô hình.
➢ R2 = 0 nghĩa là các biến độc lập không giải thích được một chút nào đối với sự
thay đổi của biến phụ thuộc.
Rõ ràng, trong thực tế, khi xem xét các mối quan hệ giữa các biến thông qua các mô hình
hồi quy thì R2 thường nằm trong khoảng (0,1) nhiều hơn.
Một tính chất quan trọng của R2 là nó sẽ tăng khi ta đưa thêm biến độc lập vào mô hình.
Dễ dàng thấy rằng TSS không phụ thuộc vào số biến giải thích trong mô hình nhưng RSS
lại giảm. Do đó, nếu tăng số biến biến độc lập trong mô hình thì R2 cũng tăng. Như vậy,
việc đưa thêm một biến số bất kỳ vào mô hình nói chung sẽ làm gia tăng R2, không kể nó
có giúp giải thích thêm cho biến phụ thuộc hay không. Điều này ngụ ý rằng R2 chưa phải
là thước đo tốt khi muốn so sánh các mô hình với số biến khác nhau.
Để giải quyết vấn đề thiếu sót này, ta xem xét khái niệm R2 hiệu chỉnh, ký hiệu là 𝑅̅2 và
được định nghĩa như sau:
(𝑛−1)
𝑅̅2 = 1 - (1 – R2)
(𝑛−𝑘)

Ta thấy rằng khi số biến độc lập (k – 1) tăng lên thì 𝑅̅2 cũng tăng lên nhưng tăng chậm
hơn so với R2.

10
Giá trị 𝑅̅2 thường được sử dụng thay R2 khi so sánh hai mô hình có cùng biến phụ thuộc
nhưng số lượng biến độc lập khác nhau.
Trong thực tế, khi muốn đánh giá sự phù hợp của mô hình thì 𝑅̅2 hơn vì R2 rất dể đưa ra
một kết quả lạc quan quá mức cho sự phù hợp của mô hình hồi quy khi số lượng biến giải
thích lớn hơn nhiều số lượng biến ta quan sát. Tuy nhiên, ta không thể nói trong mọi bài
toán 𝑅̅2 đều đưa ra mức độ phù hợp của mô hình hồi quy một cách chính xác nhất mà
phải dựa vào đặc trưng của từng bài toán cụ thể mà thực hiện tính toán sao cho phù hợp.

11
CHƯƠNG 2: XỬ LÍ SỐ LIỆU
I. Đọc dữ liệu (Import data): gia_nha.csv
Đọc dữ liệu trong tệp tin và gán vào R với tên gia_nha.

Kết quả khi đọc dữ liệu và xem 6 dòng đầu tiên của dữ liệu
II. Làm sạch dữ liệu (Data cleaning): NA dữ liệu khuyết
Tạo một dữ liệu mới chỉ bao gồm các biến chính cần quan tâm, lưu với tên new_DF.

Kết quả tạo dữ liệu mới chỉ bao gồm các biến chính
Kiểm tra dữ liệu khuyết trong new_DF.

Dựa vào kết quả kiểm tra dữ liệu khuyết trong new_DF, nhận thấy có 20 dữ liệu khuyết
của biến price tại các hàng 26, 54, 151,... Vì số lượng dữ liệu khuyết là rất ít so với tổng

12
số hàng dữ liệu (20 hàng trong tổng 21613 hàng) nên có thể bỏ qua dữ liệu này. Sử dụng
lệnh lưới đây để xóa các hàng chứa dữ liệu khuyết:

Kiểm tra dữ liệu khuyết còn hay không.

Dựa vào kết quả trên, nhận thấy dữ liệu đã bị xóa.


III. Làm rõ dữ liệu: (Data visualization)
3.1. Chuyển đổi biến
Tạo một data mới là new_DF2 (gồm các biến new_DF đã được làm sạch), thay các giá
trị trong biến sqft_basement là 0 thành 0.0000001 và chuyển đổi các biến price,
sqft_above, sqft_living, sqft_basement lần lượt thành log(price), log(sqft_above),
log(sqft_living), log(sqft_basement).

Giải thích thay các giá trị biến sqft_basement


- Dựa vào bảng số liệu, có 2 loại biến cần phân tích: biến phân loại (floors, condition,
view) và biến liên tục (price, sqft_above, sqft_living, sqft_basement).
- Khi chuyển đổi các biến liên tục thành dạng log, dữ liệu biến sqft_basement có giá trị
0, khi lấy log sẽ trở thành -INF. Vì vậy cần chuyển các giá trị biến sqft_basement
thành 0,0000001 để khi lấy log không bị lỗi và giá trị log là giá trị 0.
Giải thích chuyển đổi các biến thành dạng log(x)
- Cải thiện sự phù hợp của mô hình: giả định khi xây dựng mô hình hồi quy thì các sai
số hồi quy (phần dư) phải có phân phối chuẩn, do đó trong trường hợp sai số hồi quy
(phần dư) không có phân phối chuẩn thì việc lấy log của một biến giúp thay đổi tỉ lệ
và làm cho biến đó có phân phối chuẩn. Ngoài ra, trong trường hợp phần dư (phương
sai thay đổi) do các biến độc lập gây ra, cũng có thể chuyển đổi các biến đó sang dạng
log.

13
- Đây là lý do giúp giải thích mối quan hệ giữa 2 biến thuận tiện hơn. Nếu lấy log của
biến phụ thuộc Y và biến độc lập X, khi đó hệ số hồi quy β sẽ là hệ số co giãn và giải
thích như sau: X tăng 1% sẽ dẫn đến tăng việc kỳ vọng Y tăng lên β% (về mặt trung
bình của Y),...
- Ước lượng mô hình phi tuyến tính: việc lấy log cho phép ta ước lượng các mô hình
này bằng hồi quy tuyến tính.
3.2. Thống kê mô tả: dùng thống kê mẫu và đồ thị.
- Đối với các biến liên tục, cần tính các giá trị thống kê mô tả: trung bình (mean), trung
vị (median), độ lệch chuẩn (sd), giá trị nhỏ nhất (min), giá trị lớn nhất (max). Xuất kết
quả dưới dạng bảng.

Kết quả khi tính các biến price, sqft_above, sqft_living, sqft_basement

Kết quả khi tính các biến price, sqft_above, sqft_living, sqft_basement ở lạng log
- Đối với biến phân loại, cần thống kê các giá trị và tần số của từng giá trị dưới dạng
bảng.

14
Kết quả thống kê các giá trị biến floors, condition, view
Vẽ biểu đồ histogram thể hiện phân phối của biến price và log(price)

Kết quả vẽ biểu đồ histogram thể hiện phân phối biến price

Kết quả vẽ biểu đồ histogram của biến log(price)

15
Nhận xét: Dựa trên biểu đồ histogram của biến price, nhận thấy phân phối biến price có
xu hướng lệch phải, phần lớn ngôi nhà có giá tiền gần như nhau và một số ít ngôi nhà có
giá trị cao hơn. Biểu đồ của biến log(price) có hình dạng phân phối chuẩn.
Vẽ biểu đồ boxplot thể hiện phân phối của biến price và log(price) theo từng loại của
biến floors

Kết quả biểu đồ boxplot của biến price theo biến floors

Kết quả vẽ biểu đồ boxplot của biến log(price) theo biến floors

16
Vẽ biểu đồ boxplot thể hiện phân phối của biến price và log(price) theo từng loại của
biến condition

Kết quả biểu đồ boxplot của biến price theo biến condition

Kết quả biểu đồ boxplot của biến log(price) theo biến condition
Vẽ biểu đồ boxplot thể hiện phân phối của biến price và log(price) theo từng loại của
biến view

17
Kết quả vẽ biểu đồ boxplot của biến price theo biến view

Kết quả vẽ biểu đồ boxplot của biến log(price) theo biến price
Vẽ biểu đồ phân tán thể hiện phân phối của biến price theo biến sqft_above trước và
sau khi chuyển thành dạng log(x)

18
Kết quả vẽ biểu đồ thể hiện phân tán của biến price theo biến sqft_above
trước và sau khi chuyển sang dạng log(x)
Vẽ biểu đồ phân tán thể hiện phân phối của biến price theo biến sqft_living trước và
sau khi chuyển thành dạng log(x)

Kết quả vẽ biểu đồ thể hiện phân tán của biến price theo biến sqft_living
trước và sau khi chuyển sang dạng log(x)

19
Vẽ biểu đồ phân tán thể hiện phân phối của biến price theo biến sqft_basement trước
và sau khi chuyển thành dạng log(x)

Kết quả vẽ biểu đồ thể hiện phân tán của biến price theo biến sqft_basement
trước và sau khi chuyển sang dạng log(x)
Nhận xét: Dựa trên biểu đồ phân tán nhận thấy log(price) có quan hệ tuyến tính rõ hơn
với các biến log(sqft_above), log(sqft_living), log(sqft_basement) cụ thể là quan hệ
đồng biến.
Kết quả: dựa trên các đồ thị trên nhận thấy việc phân tích mối quan hệ tuyến tính giữa
các biến độc lập và phụ thuộc (giá nhà) sẽ hiệu quả hơn trong việc chuyển đổi các biến
sang dạng log(x). Khi đó để xác định mối quan hệ các biến với giá nhà là ngẫu nhiên hay
có mối quan hệ tuyến tính giữa các biến với giá nhà sẽ dựa vào mô hình hồi quy tuyến
tính. Mô hình hồi quy tuyến tính giúp kiểm tra thông qua các khoảng tin cậy, các phép
kiểm định và ước lượng giá trị của biến phụ thuộc (giá nhà) theo các biến độc lập.
IV. Xây dựng mô hình hồi quy tuyến tính để đánh giá các nhân tố có thể ảnh
hưởng đến giá nhà ở quận King
Xét mô hình hồi quy tuyến tính bao gồm:
Biến phụ thuộc: log(price)
Biến dự báo (biến độc lập): floors, condition, view, log(sqxft_above), log(sqft_living),
log(sqft_basement).

20
Mô hình được biểu diễn như sau: log(price) = β0 + β1 x floors1.5 + β2 x floors2 +...+ β14
x log(sqft_above) + β15 x log(sqft_living) + β16 x log(sqft_basement) + εi
Trước khi ước lượng các hệ số βi cần chuyển các biến floors, condition, view sang dạng
factor.

Thực hiện ước lượng các hệ số βi , i = 0,..., 16:

Kết quả xây dựng mô hình mô hình hồi quy tuyến tính
Nhận xét: Đường thẳng hồi quy ước lượng cho bởi phương trình sau:
log(price) = 7.3008421+ 0.1186386 x floors1.5 + 0.0512602 x floors2 +...+ 0.4815272 x
log(sqft_above) + 0.2741286 x log(sqft_living) + 0.0103920 x log(sqft_basement)
Với giả thuyết mức ý nghĩa 5% , đặt giả thuyết kiểm định hệ số hồi quy:
H0: Hệ số hồi quy không có ý nghĩa thống kê (βi = 0)

21
H1: Hệ số hồi quy có ý nghĩa thống kê (βi ≠ 0)
Nhận xét: Quan sát cột Pr ( > | t | )
Quan sát cột Pr: ứng với các biến as.factor(condition)2, as.factor(condition)3 có giá trị Pr
lớn hơn mức ý nghĩa 5%. Nên đối với các biến này, ta chấp nhận giả thiết H 0. Do đó các
hệ số ứng với các biến này không có ý nghĩa thống kê nên có thể loại bỏ khỏi mô hình.
Cân nhắc loại condition ra khỏi mô hình.
Các biến còn lại đều có Pr nhỏ hơn mức ý nghĩa nên ta có thể bác bỏ H0, chấp nhận H1
tức là hệ số hồi quy ứng với các biến này có ý nghĩa trong thống kê. Do đó, không thể
loại các biến này ra khỏi mô hình.
Đặc biệt, các biến có giá trị Pr là < 2e - 16 = 10-16 là rất nhỏ so với mức ý nghĩa 5%. Do
đó, các biến này có ảnh hưởng khá lớn đến biến phụ thuộc của chúng ta – biến price.
Xét 2 mô hình hồi quy tuyến tính m1, m2
Biến phụ thuộc: price
Biến độc lập:
- Mô hình m1: chứa tất cả các biến còn lại là biến độc lập.
- Mô hình m2: loại bỏ biến condition ra khỏi mô hình m1.

Kết quả xây dựng mô hình hồi quy tuyến tính m2


22
So sánh hiệu quả của hai mô hình: sử dụng anova để so sánh và rút ra mô hình phù hợp.

Kết quả so sánh anova 2 mô hình hồi quy tuyến tính


Đặt giả thuyết:
H0: Hai mô hình hiệu quả giống nhau.
H1: Hai mô hình hiệu quả khác nhau.
Nhận xét: Giá trị Pr(> F) << 0.05 nên có thể bác bỏ giả thiết H0 và chấp nhận giả thiết
H1. Tức là hai mô hình hiệu quả khác nhau. Đồng thời dựa vào R 2 hiệu chỉnh ở m1 =
0.521 cao hơn ở R2 ở m2 = 0.5142. Quan sát từ kết quả m1, ta thấy còn biến
as.factor(condition)4 và as.factor(condition)5 ảnh hưởng đến mô hình. Do đó khi ta bỏ
hoàn toàn biến condition khỏi mô hình sẽ khiến mô hình tệ hơn. Vì vậy dựa trên kết quả
anova, hệ số hiệu chỉnh R2 và lập luận từ biến condition chúng ta có thể thấy mô hình m1
hợp lý hơn mô hình m2.
Phân tích sự tác động của nhân tố lên giá nhà
- Mô hình hồi quy tuyến tính về ảnh hưởng của các nhân tố lên giá nhà được:
log(price) = 7.3008421+ 0.1186386 x floors1.5 + 0.0512602 x floors2 +...+
0.4815272 x log(sqft_above) + 0.2741286 x log(sqft_living) + 0.0103920 x
log(sqft_basement)
- p - value tương ứng với giá trị thống kê F bé hơn 2.2e - 16, có ý nghĩa rất cao. Cho
thấy rằng ít nhất một biến dự báo trong mô hình có ảnh hưởng rất lớn đến giá nhà.
- Để xét ảnh hưởng cụ thể của từng biến độc lập, xét hệ số βi và p - value tương ứng.
Quan sát kết quả thấy rằng p - value tương ứng các biến đa số đều bé hơn 2e - 16
(ngoại trừ as.factor(condition)2, as.factor(condition)3 lớn hơn mức ý nghĩa), nói lên
được rằng ảnh hưởng của các biến này có ý nghĩa rất cao với log.price.
- Mặt khác, hệ số hồi quy βi của một biến dự báo cũng có thể được xem như ảnh hưởng
trung bình lên biến phụ thuộc price khi tăng một đơn vị của biến dự báo, giả sử rằng
các biến dự báo khác không đổi. Cụ thể, β14 = 0.4815272 thì khi log của diện tích một

23
ngôi nhà bán ra tăng 1 đơn vị ta có thể kỳ vọng log.price tăng lên 0.4815272 về mặt
đơn vị của log.price. Tương tự đối với các biến còn lại.
- Hệ số R2 hiệu chỉnh bằng 0.521 nghĩa là 52.1% sự biến thiên trong log.price được
giải thích bởi các biến các biến độc lập.
Vẽ đồ thị biểu thị sai số hồi quy (residuals) và giá trị dự báo (fitted values).
Kiểm tra các giả định của mô hình:
- Tính tuyến tính của dữ liệu: mối quan hệ giữa biến dự báo X và biến phụ thuộc Y
được giả sử là tuyến tính.
- Sai số có phân phối chuẩn .
- Phương sai của các sai số là hằng số.
- Các sai số có kỳ vọng bằng 0.
- Các sai số thì độc lập với nhau.

24
➢ Đồ thị thứ 1 (Residuals vs Fitted) vẽ các giá trị thặng dư (sai số) tương ứng. Dùng
để kiểm tra tính tuyến tính của dữ liệu (giả định 1) và giả định sai số có kỳ vọng = 0 (giả
định 4). Nếu đường màu đỏ trên đồ thị phân tán là đường thẳng nằm ngang mà không
phải là đường cong, thì giả định tính tuyến tính của dữ liệu được thỏa mãn. Để kiểm tra
giả định thứ 4 (các sai số có kỳ vọng = 0) thì các điểm thặng dư phải phân tán đều nhau
xung quanh đường thẳng y = 0.
➢ Đồ thị thứ 2 (Normal Q-Q) cho phép kiểm tra giả định về phân phối chuẩn của
các sai số. Nếu các điểm thặng dư nằm trên cùng 1 đường thẳng thì điều kiện về phân
phối chuẩn được thỏa.
➢ Đồ thị thứ 3 (Scale - Location) vẽ căn bậc hai của các giá trị thặng dư được chuẩn
hóa với các giá trị dự báo, được dùng để kiểm tra giả định thứ 3 (phương sai của các sai
số là hằng số). Nếu như đường màu đỏ trên đồ thị là đường thẳng nằm ngang và các điểm
thặng dư phân tán đều xung quanh đường thẳng này thì giả định thứ 3 được thỏa. Nếu
như đường màu đỏ có độ dốc (hoặc cong) hoặc các điểm thặng dư phân tán không đều
xung quanh đường thẳng này, thì giả định thứ 3 bị vi phạm.
➢ Đồ thị thứ 4 (Residuals vs Leverage) cho phép xác định những điểm có ảnh
hưởng cao (influential observations), nếu chúng có hiện diện trong bộ dữ liệu. Những
điểm có ảnh hưởng cao này có thể là các điểm outliers, là những điểm có thể gây nhiều
ảnh hưởng nhất khi phân tích dữ liệu. Nếu như ta quan sát thấy một đường thẳng màu đỏ
đứt nét (Cook’s distance), và có một số điểm vượt qua đường thẳng khoảng cách này,
nghĩa là các điểm đó là các điểm có ảnh hưởng cao. Nếu như ta chỉ quan sát thấy đường
thẳng khoảng cách Cook ở góc của đồ thị và không có điểm nào vượt qua nó, nghĩa
không có điểm nào thực sự có ảnh hưởng cao.
Nhận xét:
- Đồ thị thứ 1 (Residuals vs Fitted) cho thấy giả định về tính tuyến tính của dữ liệu và
các sai số có kỳ vọng = 0 chưa thực sự thoả mãn.
- Đồ thị Normal Q-Q cho thấy giả định sai số có phân phối chuẩn thỏa mãn.
- Đồ thị thứ 1 và thứ 3 (Scale - Location) cho ta thấy rằng giả định về tính đồng nhất
của phương sai tương đối thoả mãn.
- Đồ thị thứ 4 chỉ ra có các quan trắc thứ 18877, 15294 và 2224 có thể là các điểm có
ảnh hưởng cao trong bộ dữ liệu.
V. Thực hiện dự báo cho giá nhà quận King
Từ mô hình m1, thực hiện dự báo giá nhà tại 2 thuộc tính và so sánh khoảng tin cậy của 2
thuộc tính.
25
Kết quả so sánh khoảng tin cậy 2 mô hình
Nhận xét:
- Giá trị trung bình của thuộc tính thứ nhất được dự báo là 13.07506.
- Giá trị trung bình của thuộc tính thứ hai được dự báo là 15.64859.
- Xét độ tin cậy 95%, giá nhà ở thuộc tính thứ nhất (X1) nằm trong khoảng (13.05749;
13.09263).
- Xét độ tin cậy 95%, giá nhà ở thuộc tính thứ hai (X2) nằm trong khoảng (15.29148;
15.09571).
Vậy khoảng tin cậy 95% của dự đoán X1 hẹp hơn X2, nghĩa là sự đoán X1 đáng tin
hơn dự đoán X2.

26
CHƯƠNG 3: PHÂN TÍCH SỐ LIỆU
I. Mô tả dữ liệu
- Tập dữ liệu “PE_data” chứa 9568 điểm dữ liệu thu thập từ Nhà máy điện chu trình hỗn
hợp trong vòng 6 năm (2006-2011), khi nhà máy điện này được thiết lập để làm việc với
đầy đủ phụ tải. Dữ liệu cho ta các thông số môi trường xung quanh hàng giờ và sản lượng
điện ròng hàng giờ của nhà máy.
- Dữ liệu được cung cấp tại:
http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant
Các biến chính trong dữ liệu:
AT: Nhiệt độ môi trường
V: Áp suất hút chân không
AP: Áp suất môi trường
RH: độ ẩm tỉ đối của môi trường
PE: sản phẩm điện ròng
II. Phương pháp phân tích dữ liệu
2.1. Đọc dữ liệu và làm rõ dữ liệu
(a) Dùng lệnh read.csv() để đọc tập tin.
(b) Kiểm tra các dữ liệu bị khuyết trong tệp tin. Nếu có dữ liệu bị khuyết thì đề xuất
phương pháp thay thế cho những dữ liệu bị khuyết này.
(c) Tính các giá trị thống kê mô tả bao gồm: trung bình, trung vị, độ lệch chuẩn giá trị lớn
nhất và giá trị nhỏ nhất. Xuất các kết quả dưới dạng bảng.
(d) Dùng hàm hist() vẽ đồ thị phân phối của biến PE.
(e) Dùng lệnh pairs() vẽ các phân phối của biến PE lần lượt theo các biến AT, V,AP, RH
2.2. Xây dựng mô hình hồi quy tuyến tính:
Đánh giá xem có những nhân tố nào và tác động như thế nào đến sản lượng điện ròng
theo giờ.
(a) Xét mô hình hồi quy tuyến tính gồm biến PE là biến phụ thuộc, và tất cả các biến còn
lại là biến độc lập. Dùng lệnh lm() để thực thi mô hình hồi quy tuyến tính bội.

27
(b) Dựa vào kết quả mô hình hồi quy tuyến tính trên, những biến nào sẽ bị bạn loại khỏi
mô hình với mức tin cậy 5%?
(c) Suy luận sự tác động của các biến đến Sản lượng điện ròng theo giờ.
(d) Dùng lệnh plot() để vẽ đồ thị biểu thị sai số hồi quy và giá trị dự báo. Trình bày ý
nghĩa và nhận xét.
2.3. Dự báo:
(a) Từ mô hình trên, dùng lệnh predict() để dự báo sản lượng điện năng lượng ròng theo
giờ (PE)
x1: AT = mean(AT), V = mean(V), AP = mean (AP), RH = mean (RH)
x2: AT = max(AT), V = max(V), AP = max (AP), RH = max (RH)
(b) So sánh khoảng tin cậy của 2 giá trị dự báo trên.
III. Phân tích dữ liệu
3.1. Đọc dữ liệu và làm rõ dữ liệu
3.1.1. Đọc dữ liệu (Import Data)

Kết quả đọc 6 dòng đầu tiên của dữ liệu


3.1.2. Làm sạch dữ liệu (Cleaning Data)
Kiểm tra và xuất ra vị trí dòng chứa giá trị khuyết của các biến trong “data”.

Nhận xét: không có dữ liệu khuyết trong tệp tin data.

28
3.1.3 Tính các giá trị thống kê mô tả bao gồm: trung bình (mean), trung vị (median),
độ lệch chuẩn (sd), giá trị lớn nhất (max) và giá trị nhỏ nhất (min). Xuất kết quả dưới
dạng bảng.

Kết quả các giá trị thống kê


3.1.4 Dùng hàm hist() để vẽ đồ thị phân phối của biến PE

3.1.5 Dùng lệnh pairs() vẽ các phân phối của biến PE lần lượt theo các biến AT, V,
AP, RH.

29
Kết quả vẽ phân phối của biến PE theo biến AT

Kết quả vẽ phân phối của biến PE theo biến V

30
Kết quả vẽ phân phối của biến PE theo biến AP.

Kết quả vẽ phân phối của biến PE theo biến RH


Nhận xét: Từ các đồ thị phân tán của biến PE theo AT, V, AP, RH ta nhận thấy rõ các
biến AT và V có quan hệ tuyến tính với PE, nói rõ hơn là quan hệ nghịch biến. Ngoài ra,
ta cũng có thể nhận thấy khi các biến AP và RH cũng có thể có quan hệ tuyến tính với PE
(đồng biến), tuy nhiên chưa thực sự rõ rệt.

31
3.2. Xây dựng các mô hình hồi quy tuyến tính
Chúng ta muốn đánh giá xem có những nhân tố nào và tác động như thế nào đến sản
lượng điện ròng theo giờ.
3.2.1. Xét mô hình hồi quy tuyến tính gồm biến PE là biến phụ thuộc, và tất cả các
biến còn lại đều là biến độc lập. Hãy dùng lệnh lm() để thực thi mô hình hồi quy tuyến
tính bội.

3.2.2. Dựa vào kết quả mô hình hồi quy tuyến tính trên, xét xem những biến nào sẽ bị
loại khỏi mô hình với mức tin cậy 95%
• Đặt giả thiết:
• H0: Các hệ số hồi quy không có ý nghĩa thống kê (βi = 0)
• H1: Các hệ số hồi quy có ý nghĩa thống kê (βi ≠ 0)
Nhận xét: Dựa vào kết quả của mô hình hồi quy, ta nhận thấy Pr(>|t|) của tất cả các biến
đều nhỏ hơn mức ý nghĩa 0.05 (2e - 16 < 0,05) ngoại trừ biến AP (5.51e – 11 > 0.05) nên
ta bác bỏ H0 đối với các biến (AT, V, RH) nhưng không đủ cơ sở bác bỏ H 0 với biến AP
với mức ý nghĩa 5%. Vậy hệ số hồi quy của biến AP không có ý nghĩa, cần loại bỏ biến
AP ra khỏi mô hình với độ tin cậy 95%
• Xây dựng mô hình m2 (loại biến AP), dùng Anova chọn ra mô hình hợp lý.
m2<-lm(PE ~ AT + V + RH, data = PE_data)
summary(m2)

32
anova(m1,m2)

Ta tiếp tục đặt giả thuyết:


• H0 là 2 mô hình hiệu quả như nhau (β1 = β2)
• H1 là 2 mô hình hiệu quả khác nhau (β1 ≠ β2)
Nhận xét: Pr(>|t|) = 5.507e – 11 > 0,05 nên ta chấp nhận H0 với mức ý nghĩa 5%. Vậy 2
mô hình có ý nghĩa như nhau với độ tin cậy là 95%
So sánh R2 hiệu chỉnh của m1 và m2 để đưa ra kết luận mô hình nào hiệu quả hơn.
Ta thấy: m1 có R2 = 0.9287, m2 có R2 = 0.9284
Suy ra: mô hình 1 có hiệu quả hơn mô hình 2 (0.9287 > 0.9284)
3.2.3 Suy luận sự tác động của các biến đến Sản lượng điện ròng theo giờ.
Nhận xét:
• Dựa trên kết quả tóm tắt trên mô hình 1, ta nhận thấy các biến AT, V, RH có
Pr(>t) rất bé (***), tức khả năng bác bỏ H0 càng cao, tức các hệ số ứng với các
biến trên có ý nghĩa thống kê cao, có nghĩa là những thay đổi của các biến này có
ảnh hưởng nhiều đến sự thay đổi của sản lượng điện ròng. Tiếp đến là biến AP có
Pr(>t) = 5.51e-11 cũng ảnh hưởng nhiều đến Sản lượng điện ròng (ít hơn so với
các biến còn lại).
• Mặt khác các hệ số hồi quy của 1 biến dự báo cũng được xem như ảnh hưởng
trung bình lên biến phụ thuộc là sản lượng điện ròng khi tăng hoặc giảm 1 đơn vị
của biến dự báo đó, giả sử khi các biến dự báo khác không đổi.
• Cụ thể hơn, hệ số hồi quy ứng với AT = -1.977513 thì ứng với nhiệt độ tăng 1 độ
thì ta có thể kỳ vọng sản lượng điện ròng giảm đi 1.9775 đơn vị (giả sử rằng các
biến dự báo còn lại không đổi).

33
• Tương tự, hệ số hồi quy ứng với V = -0.233916 thì ứng với áp suất hút chân không
tăng 1 đơn vị thì ta có thể kỳ vọng sản lượng điện ròng giảm đi 0.233916 đơn vị
(giả sử rằng các biến dự báo còn lại không đổi).
• Tương tự, hệ số hồi quy ứng với AP = 0.062083 thì ứng với áp suất tăng 1 đơn vị
thì ta có thể kỳ vọng sản lượng điện ròng tăng thêm 0.062083 đơn vị (giả sử rằng
các biến dự báo còn lại không đổi).
• Và cuối cùng là, hệ số hồi quy ứng với RH = -0.158054 thì ứng với độ ẩm tỉ đối
tăng 1% thì ta có thể kỳ vọng sản lượng điện ròng giảm đi thêm 0.158054 đơn vị
(giả sử rằng các biến dự báo còn lại không đổi).
3.2.4 Dùng lệnh plot() để vẽ đồ thị biểu thị sai số hồi quy và giá trị dự báo. Nêu ý nghĩa
và nhận xét.
plot (m1, which = 1)

- Nhận xét:
Đồ thị trên vẽ các giá trị dự báo và các giá trị thặng dư (sai số) tương ứng. Dựa vào đồ
thị ta thấy, đường màu đỏ trên đồ thị là cong, tức là mối quan hệ giữa các biến dự báo
X và biến phụ thuộc Y được không được xem là tuyến tính, nên không thỏa mãn giả
định tuyến tính của dữ liệu.
3.3 Dự báo
3.3.1 Từ mô hình trên, dùng lệnh predict () để dự báo sản lượng điện năng lượng ròng
theo giờ (PE)
Tạo 2 thuộc tính và dự báo sản lượng ròng tại 2 thuộc tính.

34
3.3.2 So sánh khoảng tin cậy của 2 giá trị dự báo trên.
- Tạo bảng thể hiện dự sản lượng điện ròng ở 2 thuộc tính X1,X2.
- Đổi tên dòng thành X1, X2.
- So sánh khoảng tin cậy của 2 giá trị dự báo.

Nhận xét: Với khoảng tin cậy 95%, ta thấy được độ dài khoảng tin cậy giá trị dự báo của
X1 < X2 nên ta có thể kết luận với tập dữ liệu từ X1, ta có thể thu được một giá trị dự báo
chính xác hơn so với X2.

35
TÀI LIỆU THAM KHẢO
[1] Douglas C. Montgomery, George C. Runger. Hoboken. Applied Statistics and
Probability for Engineers. NJ: Wiley, (2007).
[2] Peter Dalgaard Introductory Statistics with R. Springer, (2008).
[3] Gareth, J., Daniela, W., Trevor, H. and Robert, T. An introduction to statistical
learning: with applications in R. Springer, (2013).

36
PHỤ LỤC PHẦN CODE
I. Hoạt động 1
gia_nha <- read.csv("D:/năm 2/xác suất thống kê/btl/gia_nha.csv")
head(gia_nha)

new_DF<-gia_nha
[,c("price","floors","condition","view","sqft_above","sqft_living","sqft_basement")]
head(new_DF)

apply(is.na(new_DF), 2, which)
colSums(is.na(new_DF))
colMeans(is.na(new_DF))

new_DF <- na.omit(new_DF)

apply(is.na(new_DF), 2, which)

new_DF2<-new_DF
new_DF2$sqft_basement<-replace(new_DF2$sqft_basement,new_DF2$sqft_basement
== 0,0.0000001)
head(new_DF)

new_DF2[,c("price","sqft_above","sqft_living","sqft_basement")]<-
log(new_DF2[,c("price","sqft_above","sqft_living","sqft_basement")])

mean = apply(new_DF[,c("price","sqft_above","sqft_living","sqft_basement")],2,mean)

37
median = apply(new_DF[,c("price","sqft_above","sqft_living","sqft_basement")],2,
median)
sd = apply(new_DF[,c("price","sqft_above","sqft_living","sqft_basement")],2,sd)
max = apply(new_DF[,c("price","sqft_above","sqft_living","sqft_basement")],2, max)
min = apply(new_DF[,c("price","sqft_above","sqft_living","sqft_basement")],2, min)
data.frame(mean,median,sd,max,min)

mean = apply(new_DF2[,c("price","sqft_above","sqft_living","sqft_basement")],2,mean)
median = apply(new_DF2[,c("price","sqft_above","sqft_living","sqft_basement")],2,
median)
sd = apply(new_DF2[,c("price","sqft_above","sqft_living","sqft_basement")],2,sd)
max = apply(new_DF2[,c("price","sqft_above","sqft_living","sqft_basement")],2, max)
min = apply(new_DF2[,c("price","sqft_above","sqft_living","sqft_basement")],2, min)
data.frame(mean,median,sd,max,min)

table(new_DF$floors)
table(new_DF$condition)
table(new_DF$view)

hist(new_DF[,"price"], xlab = "price", main = "Histogram of price",


ylim=c(0,13000), labels = T , col=4)

hist(new_DF2[,"price"], xlab = "log(price)", main = "Histogram of log(price)",


ylim=c(0,13000), labels = T , col=4)

boxplot(price ~ floors,main="Boxplot of price for each category of floor",data =


new_DF)
38
boxplot(price ~ floors,main="Boxplot of log.price for each category of floor",data =
new_DF2)
boxplot(price ~ condition, main="Boxplot of price for each category of condition", data =
new_DF)
boxplot(price ~ condition, main="Boxplot of log.price for each category of condition",
data = new_DF2)
boxplot(price ~ view, main="Boxplot of price for each category of view", data =
new_DF)
boxplot(price ~ view, main="Boxplot of log.price for each category of view", data =
new_DF2)

par(mfrow=c(1,2))
plot
(new_DF[,"sqft_above"],new_DF[,"price"],xlab="sqft_above",ylab="price",main="price
and sqft_above",cex.main=0.8,col=2)
plot
(new_DF[,"sqft_above"],new_DF2[,"price"],xlab="log(sqft_above)",ylab="log(price)",m
ain="log(price) and log(sqft_above)",cex.main=0.8,col=4)

par(mfrow=c(1,2))
plot
(new_DF[,"sqft_living"],new_DF[,"price"],xlab="sqft_living",ylab="price",main="price
and sqft_living",cex.main=0.8,col=2)
plot
(new_DF[,"sqft_living"],new_DF2[,"price"],xlab="log(sqft_living)",ylab="log(price)",m
ain="log(price) and log(sqft_living)",cex.main=0.8,col=4)

par(mfrow=c(1,2))

39
plot
(new_DF[,"sqft_basement"],new_DF[,"price"],xlab="sqft_basement",ylab="price",main
="price and sqft_basement",cex.main=0.8,col=2)
plot
(new_DF[,"sqft_basement"],new_DF2[,"price"],xlab="log(sqft_basement)",ylab="log(pri
ce)",main="log(price) and log(sqft_basement)",cex.main=0.8,col=4)

new_DF$floors=as.factor(new_DF$floors)
new_DF$condition=as.factor(new_DF$condition)
new_DF$view=as.factor(new_DF$view)

m1<-lm(price ~ as.factor(floors) + as.factor(condition) + as.factor(view) + sqft_above +


sqft_living + sqft_basement, data=new_DF2)
summary(m1)
m2<-lm(price ~ as.factor(floors) + as.factor(view) + sqft_above + sqft_living +
sqft_basement, data=new_DF2)
summary(m2)

anova(m1,m2)

plot(m1)
plot(m1, which,1 )

X1 = data.frame( sqft_above = mean(new_DF2$sqft_above), sqft_living =


mean(new_DF2$sqft_living), sqft_basement = mean(new_DF2$sqft_basement), floors =
median(new_DF2$floors), condition = median(new_DF2$condition), view =
median(new_DF2$view))
predict_X1 = predict(m1, X1, interval = "confidence")

40
predict_X1
X2 = data.frame( sqft_above = max(new_DF2$sqft_above), sqft_living =
max(new_DF2$sqft_living), sqft_basement = max(new_DF2$sqft_basement), floors =
max(new_DF2$floors), condition = max(new_DF2$condition), view =
max(new_DF2$view))
predict_X2 = predict(m1, X2, interval = "confidence")
predict_X2
pred = data.frame(rbind(predict_X1,predict_X2))
rownames(pred) = c("X1","X2")
pred$range =pred$upr - pred$lwr
pred

41
II. Hoạt động 2
PE_data = read.csv("F:/Xác Xuất Thống Kê/PE_data.csv")
head(PE_data)
apply(is.na(PE_data), 2, which)
mean = apply(PE_data, 2, mean)
median = apply(PE_data, 2, median)
sd = apply(PE_data, 2, sd)
max = apply(PE_data, 2, max)
min = apply(PE_data, 2, min)
descriptive = data.frame(mean,median,sd,max,min)
descriptive
hist(PE_data$PE, xlab ="PE", main = "Histogram of PE", labels = T)
pairs(PE ~ AT, main = "Pairs of PE for AT",data=PE_data)
pairs(PE ~ V, main = "Pairs of PE for V",data=PE_data)
pairs(PE ~ AP, main = "Pairs of PE for AP",data=PE_data)
pairs(PE ~ RH, main = "Pairs of PE for RH",data=PE_data)
m1 = lm(PE ~ AT + V + AP + RH, data = PE_data)
summary(m1)
m2<-lm(PE ~ AT + V + RH, data = PE_data)
summary(m2)
anova(m1,m2)
plot(m1,which= 1)
X1 = data.frame(AT= mean(PE_data $AT), V= mean(PE_data $V), AP = mean(PE_data
$AP), RH = mean(PE_data$RH))
predict_X1 = predict(m1, X1, interval = "confidence")
predict_X1

42
X2 = data.frame(AT= max(PE_data $AT), V= max(PE_data $V), AP = max(PE_data
$AP), RH = max(PE_data$RH))
predict_X2 = predict(m1, X2, interval = "confidence")
predict_X2
pred = data.frame(rbind(predict_X1,predict_X2))
rownames(pred) = c("X1","X2")
pred$range =pred$upr - pred$lwr
pred

43

You might also like