PHẦN CHUNG
Hồi quy tuyến tính bội
Câu 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
Từ tháng 5/2014 đến tháng 5/2015, quận King, Mỹ ghi nhận 21,613 ngôi nhà được bán Dữ liệu không chỉ phản ánh giá nhà mà còn cung cấp thông tin về các thuộc tính mô tả chất lượng của từ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.
• sqft_living15: Diện tích trung bình của 15 ngôi nhà gần nhất trong khu dân cư
• 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
• sqft_above: Diện tích ngôi nhà
• sqft_living: Diện tích khuôn viên nhà
1 Đọc dữ liệu (Import data): Hãy dùng lênh read.csv() để đọc tệp tin
2 Làm sạch dữ liệu (Data cleaning):
Để bắt đầu, hãy tạo một tập dữ liệu con có tên là new_DF, chỉ bao gồm các biến chính mà chúng ta quan tâm, như đã nêu trong phần giới thiệu dữ liệu Tất cả các yêu cầu xử lý từ câu hỏi này trở đi sẽ dựa trên tập dữ liệu con new_DF này.
Để kiểm tra các dữ liệu bị khuyết trong tập tin, bạn có thể sử dụng các hàm như is.na(), which() và apply() Nếu phát hiện có dữ liệu bị khuyết, hãy đề xuất các phương pháp thay thế phù hợp để xử lý những giá trị này, nhằm đảm bảo tính toàn vẹn của dữ liệu.
3 Làm rõ dữ liệu (Data visualization):
Chuyển đổi các biến giá cả và diện tích sống thành dạng logarithmic là bước quan trọng trong phân tích dữ liệu Cụ thể, biến price được chuyển thành log(price), sqft_living15 thành log(sqft_living15), sqft_above thành log(sqft_above), và sqft_living thành log(sqft_living) Tất cả các phép tính liên quan đến các biến này sẽ được hiểu là đã áp dụng biến đổi logarithm.
Đối với các biến liên tục, cần tính toán các giá trị thống kê mô tả như trung bình, trung vị, độ lệch chuẩn, giá trị lớn nhất và giá trị nhỏ nhất Kết quả nên được xuất ra dưới dạng bảng Các hàm gợi ý bao gồm mean(), median(), sd(), min(), max(), apply(), as.data.frame() và rownames().
(c) Đối với các biến phân loại, hãy lập một bảng thống kê số lượng cho từng chủng loại (Hàm gợi ý: table())
(d) Hãy dùng hàm hist() để vẽ đồ thị phân phối của biến price
(e) Hãy dùng hàm boxplot() vẽ phân phối của biến price cho từng nhóm phân loại của biến floors và biến condition
(f) Dùng lệnh pairs() vẽ các phân phối của biến price lần lượt theo các biến sqft_living15, sqft_above, và sqft_living.
4 Xây dựng các mô hình hồi quy tuyến tính (Fitting linear regression models):
Chúng ta muốn khám phá rằng có những nhân tố nào và tác động như thế nào đến giá nhà ở quận King
Mô hình hồi quy tuyến tính được xây dựng với biến giá (price) là biến phụ thuộc, trong khi tất cả các biến khác đóng vai trò là biến độc lập Để thực hiện mô hình hồi quy tuyến tính bội, hãy sử dụng lệnh lm().
(b) Dựa vào kết quả của mô hình hồi quy tuyến tính trên, những biến nào bạn sẽ loại khỏi mô hình tương ứng với mức tin cậy 5%?
Trong nghiên cứu này, chúng tôi xem xét hai mô hình hồi quy tuyến tính với biến phụ thuộc là giá (price) Mô hình đầu tiên (M1) bao gồm tất cả các biến độc lập, trong khi mô hình thứ hai (M2) loại bỏ biến điều kiện (condition) từ M1 Để xác định mô hình hồi quy nào hợp lý hơn, chúng tôi sử dụng lệnh anova() để so sánh hiệu suất của hai mô hình này.
(d) Chọn mô hình hợp lý hơn từ câu (c) hãy suy luận sự tác động của các biến lên giá nhà.
Sử dụng mô hình hồi quy đã chọn, hãy áp dụng lệnh plot() để tạo đồ thị thể hiện sai số hồi quy và giá trị dự báo Đồ thị này giúp bạn đánh giá độ chính xác của mô hình, nhận diện các xu hướng và kiểm tra các giả định của hồi quy Việc phân tích đồ thị sẽ cung cấp thông tin quan trọng về sự phân tán của sai số và mối quan hệ giữa các biến trong mô hình.
(a) Từ mô hình bạn chọn trong câu (c), hãy dùng lệnh predict() để dự báo giá nhà tại 2 thuộc tính như sau:
X1: sqft_living15 = mean(sqft_living15), sqft_above = mean(sqft_above), sqft_living mean(sqft_living), floor = 2, condition = 3
X2: sqft_living15 = max(sqft_living15), sqft_above = max(sqft_above), sqft_living max(sqft_living), floor = 2, condition = 3
(b) So sánh khoảng tin cậy cho 2 giá trị dự báo này.
1 Đọc dữ liệu (Import data) Đọc dữ liệu “gia_nha.csv”.
2 Làm sạch dữ liệu (Data cleaning)
(a)Tạo một dữ liệu con new_DF chỉ bao gồm các biến chính mà ta quan tâm.
(b)Kiểm tra các dữ liệu bị khuyết trong new_DF
Khi kiểm tra dữ liệu bị khuyết trong new_DF, chúng ta phát hiện có 20 giá trị thiếu tại biến price, chiếm dưới 10% tổng số dữ liệu Do đó, việc xử lý các dữ liệu khuyết này là cần thiết.
Phương pháp thay thế cho các dữ liệu bị khuyết: xoá các quan sát chứa dữ liệu bị khuyết.
Sau khi thực hiện phương pháp, nhận thấy không còn dữ liệu bị khuyết.
3 Làm rõ dữ liệu (Data visualization)
Chuyển đổi các biến giá cả và diện tích sống thành dạng log là bước quan trọng trong phân tích dữ liệu Cụ thể, biến price được chuyển thành log(price), sqft_living15 thành log(sqft_living15), sqft_above thành log(sqft_above), và sqft_living thành log(sqft_living) Từ đây, mọi phép tính liên quan đến các biến này sẽ được thực hiện trên các giá trị đã được chuyển đổi sang dạng log.
Giải thích lý do chuyển sang dạng log(x):
Để cải thiện sự phù hợp của mô hình hồi quy, cần đảm bảo rằng các sai số hồi quy (phần dư) có phân phối chuẩn Khi phần dư không đạt yêu cầu này, việc sử dụng log của một biến có thể giúp thay đổi tỉ lệ và đưa biến đó về phân phối chuẩn Bên cạnh đó, nếu phần dư xuất phát từ phương sai thay đổi do các biến độc lập, chúng ta cũng có thể chuyển đổi các biến đó sang dạng log để cải thiện tính chính xác của mô hình.
Việc lấy log của biến phụ thuộc Y và biến độc lập X giúp chúng ta dễ dàng diễn giải mối quan hệ giữa hai biến Khi đó, hệ số hồi quy β sẽ biểu thị độ co giãn, cho thấy rằng nếu X tăng 1%, chúng ta kỳ vọng Y sẽ tăng lên β% về mặt trung bình.
+ Ước lượng mô hình phi tuyến: 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.
Để tính toán các giá trị thống kê mô tả cho các biến log.price, log.sqft_above, log.sqft_living và log.sqft_living15, chúng ta sẽ xác định các chỉ số như trung bình, trung vị, độ lệch chuẩn, giá trị lớn nhất và giá trị nhỏ nhất Kết quả sẽ được trình bày dưới dạng bảng để dễ dàng so sánh và phân tích.
(c) Lập một bảng thống kê số lượng cho từng chủng loại của biến floors và condition.
(d) Vẽ biểu đồ histogram thể hiện phân phối của log.price.
Dựa trên biểu đồ histogram của biến log.price, ta nhận thấy đồ thị có hình dạng phân phối chuẩn
(e) Vẽ biểu đồ boxplot thể hiện phân phối của biến log.price cho từng nhóm phân loại của biến floors và biến condition.
- Vẽ biểu đồ boxplot thể hiện phân phối của biến log.price cho từng nhóm phân loại của biến floors.
- Vẽ biểu đồ boxplot thể hiện phân phối của biến log.price cho từng nhóm phân loại của biến condition.
(f) Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_living15, log.sqft_above, log.sqft_living.
- Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_living15
- Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_above.
- Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_living.
Dựa trên các đồ thị phân tán, log.price cho thấy mối quan hệ tuyến tính đồng biến với các biến log.sqft_living15, log.sqft_above và log.sqft_living Việc chuyển đổi các biến sang dạng log(x) sẽ mang lại hiệu quả cao hơn trong phân tích mối quan hệ tuyến tính giữa các biến độc lập và biến phụ thuộc, cụ thể là giá nhà.
Mối quan hệ giữa các biến và giá nhà có thể được xác định thông qua mô hình hồi quy tuyến tính, giúp kiểm tra tính ngẫu nhiên hay mối quan hệ tuyến tính giữa chúng Mô hình này cho phép chúng ta ước lượng giá trị của biến phụ thuộc (giá nhà) dựa trên các biến độc lập như số tầng, điều kiện ngôi nhà và diện tích Các khoảng tin cậy và phép kiểm định sẽ hỗ trợ trong việc phân tích mối quan hệ này.
4 Xây dựng mô hình hồi quy tuyến tính
Chúng ta muốn khám phá rằng có những nhân tố nào và tác động như thế nào đến giá nhà ở quận King.
ANOVA
Tập tin flights.rda chứa thông tin về 162049 chuyến bay khởi hành từ hai sân bay lớn SEA ở Seattle và PDX ở Portland trong năm 2014 Dữ liệu được cung cấp bởi Văn phòng Thống kê Vận tải Mỹ (https://www.transtats.bts.gov/) và được sử dụng để phân tích nguyên nhân gây ra sự khởi hành trễ hoặc hoãn chuyến bay.
Tổng chuyến bay được thống kê: 162049.
Mô tả các biến chính:
1 year, month, day: ngày khởi hành của mỗi chuyến bay
2 carrier: tên của hãng hàng không, được mã hóa bằng 2 chữ cái in hoa Ví dụ: UA
= United Air Lines, AA = American Airlines, DL = Delta Airlines, v.v.
3 origin và dest: tên sân bay đi và đến Đối với sân bay đi, ta chỉ có hai giá trị SEA
4 dep_time và arr_time: thời gian cất cánh và hạ cánh (theo lịch dự kiến)
5 dep_delay và arr_time: chênh lệch (phút) giữa thời gian cất cánh/hạ cánh thực tế với thời gian cất cánh/hạ cánh in trong vé
6 distance: khoảng cách giữa hai sân bay (dặm)
1 Nhập và làm sạch dữ liệu, thực hiện các thống kê mô tả
(a) Trong R hãy nhập tập dữ liệu flights.rda
Create a new data frame named newFlights that includes only the essential variables: carrier, origin, dep_time, arr_time, dep_delay, and arr_delay From this point forward, all processing requests will be conducted on the newFlights data frame.
Trong quá trình phân tích dữ liệu, một số biến có chứa nhiều giá trị khuyết (NA - Not Available) Để đánh giá mức độ ảnh hưởng của các giá trị khuyết này, cần in bảng thống kê tỷ lệ giá trị khuyết cho từng biến Đề xuất một phương pháp hiệu quả để xử lý các giá trị khuyết này là sử dụng kỹ thuật imputation, trong đó có thể thay thế giá trị khuyết bằng giá trị trung bình, trung vị hoặc sử dụng các mô hình dự đoán để ước lượng giá trị thiếu.
Để tính toán các giá trị thống kê mô tả cho thời gian khởi hành trễ (biến dep_delay) của từng hãng hàng không (carrier), cần xác định các thông số như cỡ mẫu, trung bình, độ lệch chuẩn, giá trị tối thiểu (min), giá trị tối đa (max) và các điểm tứ phân vị Kết quả sẽ được trình bày dưới dạng bảng để dễ dàng so sánh và phân tích.
(e) Vẽ đồ thị boxplot cho thời gian khởi hành trễ dep_ delay tương ứng với từng hãng hàng không carrier.
Trong quá trình phân tích dữ liệu về thời gian khởi hành trễ của các hãng hàng không, chúng ta nhận thấy nhiều điểm outliers trên đồ thị boxplot của biến dep_delay Để cải thiện độ chính xác của phân tích, cần sử dụng khoảng tứ phân vị (interquartile range) để loại bỏ các điểm outlier này Sau khi loại bỏ, hãy vẽ lại đồ thị boxplot cho biến dep_delay và đưa ra nhận xét về thời gian khởi hành trễ của từng hãng hàng không dựa trên kết quả mới.
2 Phân tích phương sai một nhân tố (one way ANOVA)
Nghiên cứu này tập trung vào việc kiểm định sự khác biệt về thời gian khởi hành trễ trung bình giữa các hãng hàng không cho các chuyến bay khởi hành từ Portland trong suốt năm.
Phân tích phương sai là công cụ quan trọng giúp xác định mối quan hệ giữa biến phụ thuộc và các biến độc lập, từ đó trả lời các câu hỏi nghiên cứu một cách chính xác Trong nghiên cứu này, biến phụ thuộc cần được xác định rõ ràng để đo lường sự ảnh hưởng của các nhân tố khác nhau Các biến độc lập, hay còn gọi là các nhân tố, sẽ được phân tích để hiểu rõ hơn về vai trò và tác động của chúng đối với biến phụ thuộc Việc sử dụng phân tích phương sai không chỉ giúp tăng cường độ tin cậy của kết quả mà còn hỗ trợ tối ưu hóa quá trình ra quyết định dựa trên dữ liệu thu thập được.
(b) Phát biểu các giả thuyết và đối thuyết bằng lời và công thức toán Nêu các giả định cần kiểm tra của mô hình.
Để kiểm tra các giả định của mô hình, bao gồm giả định về phân phối chuẩn và tính đồng nhất của các phương sai, chúng ta có thể áp dụng phân tích thăng dư kết hợp với đồ thị QQ-plot Ngoài ra, việc sử dụng kiểm định Shapiro-Wilk sẽ giúp xác định tính chuẩn của phân phối, trong khi kiểm định Levene hoặc Bartlett có thể được sử dụng để kiểm tra tính đồng nhất của các phương sai.
(d) Thực hiện phân tích ANOVA một nhân tố Trình bày bảng phân tích phương sai trong báo cáo Cho kết luận.
1 Nhập và làm sạch dữ liệu, thực hiện các thống kê mô tả
(a) Dùng lệnh load để đọc tệp tin flights.rda vào R:
(b) Tạo data.frame mới bao gồm các biến chính: carrier, origin, dep_time, arr_time, dep_delay và arr_delay, đặt tên là newFlights:
(c) Trong các biến đang xét, có một số biến chứa nhiều giá trị khuyết (NA – Not Available)
Dùng lệnh apply để kiểm tra tổng và tỷ lệ giá trị khuyết đối với từng biến.
Dựa vào bảng thống kê, chúng ta thấy rằng biến arr_delay, arr_time, dep_time và dep_delay có nhiều giá trị khuyết Tuy nhiên, lượng giá trị khuyết này chỉ chiếm tối đa 4% tổng số quan sát, cho thấy dữ liệu vẫn đủ đáng tin cậy để phân tích.
10%) Do đó ta lựa chọn phương pháp xoá các quan sát của biến nào có giá trị khuyết trong tệp tin newFlight.
Ta sử dụng lệnh na.omit để xoá các quan sát của biến nào có giá trị khuyết trong newFlight:
Ta thực hiện kiểm tra lại lượng quan sát đã xoá:
Sau khi xóa, số lượng quan sát còn lại là 1301, chiếm 0,8% so với tổng dữ liệu ban đầu Điều này cho thấy việc loại bỏ các quan sát có giá trị khuyết trong tệp tin newFlight không ảnh hưởng đáng kể đến kết quả của dữ liệu.
Sử dụng các hàm length, mean, sd, min, max, quantile kết hợp với tapply để tính toán các giá trị thống kê mô tả cho thời gian khởi hành trễ (biến dep_delay) của từng hãng hàng không (carrier), bao gồm cỡ mẫu, trung bình, độ lệch chuẩn, giá trị tối thiểu, tối đa và các điểm tứ phân vị.
Dùng hàm data.frame để xuất Kết quả dưới dạng bảng thống kê:
(e)Dùng hàm boxplot để vẽ biểu đồ của biến dep_delay theo từng hãng hàng không:
Biểu đồ cho thấy sự hiện diện của nhiều điểm ngoại lai (outliers) trong biến dep_delay, điều này có thể tác động đến kết quả phân tích trong các bước tiếp theo.
Chúng tôi áp dụng khoảng tứ phân vị (interquartile range) để loại bỏ các điểm outlier Cụ thể, chúng tôi sẽ chuyển đổi các outliers của biến dep_delay ở từng hãng hàng không thành giá trị NA.
Từ đó đề xuất phương pháp xử lý các NA đó.
Trước tiên, ta tạo function xác định outliers, chuyển các outliers thành dạng NA Việc tạo function mới sẽ giúp ta tối ưu code hơn:
Ta hiện hiện lọc các outliers tương ứng với từng hãng và chuyển thành NA Thưc hiện như sau:
Ghép các dữ liệu lại với nhau và lưu lại vào newFlights3:
Kiểm tra tổng NA và tỷ lệ NA trong data newFlights3 (sau khi chuyển outliers thành NA):
Nhận xét: Số lượng NA = 18732 và chiếm tỉ lệ 11,65% lượng quan sát của dữ liệu.
Trong trường hợp này, chúng ta không loại bỏ các giá trị NA do số lượng NA chiếm hơn 10% dữ liệu Thay vào đó, phương pháp xử lý được áp dụng là thay thế các giá trị NA bằng giá trị trung bình tương ứng của từng hãng hàng không.
Ghép các dữ liệu lại với nhau và lưu lại vào newFlights3:
Kiểm tra lại NA trong data newFlights3 sau khi xử lý:
Nhận xét: Sau khi thay thế các NA bằng các giá trị trung bình, dữ liệu đã không còn NA.
Tính lại các đặc trưng mẫu của biến dep_delay theo từng hãng hàng không:
Dùng hàm boxplot để vẽ lại biểu đồ của biến dep_delay theo từng hãng hàng không:
Nhận xét: Đối với hãng hàng không AA:
Min = -18: Thời gian khởi hành sớm nhất: 18 phút.
Max = 26: Thời gian khởi hành trễ nhất: 26 phút.
Q1 = -6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút.
Q2 = -2: 50% chuyến bay có thời gian khởi hành sớm hơn 2 phút.
Q3 = 0: 75% chuyến bay có thời gian khởi hành sớm hơn thời điểm dự kiến bay. Đối với hãng hàng không AS:
Min = -15: Thời gian khởi hành sớm nhất: 15 phút.
Max = 12: Thời gian khởi hành trễ nhất: 12 phút.
Q1 = -5: 25% chuyến bay có thời gian khởi hành sớm hơn 5 phút.
Q2 = -2,5563: 50% chuyến bay có thời gian khởi hành sớm hơn 2,5563 phút.
Q3 = -1: 75% chuyến bay có thời gian khởi hành sớm 1 phút. Đối với hãng hàng không B6:
Min = -20: Thời gian khởi hành sớm nhất: 20 phút.
Max = 31: Thời gian khởi hành trễ nhất: 31 phút.
Q1 = -6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút.
Q2 = -2: 50% chuyến bay có thời gian khởi hành sớm hơn 2 phút.
Q3 = 1: 75% chuyến bay có thời gian khởi hành sớm 1 phút. Đối với hãng hàng không DL:
Min = -15: Thời gian khởi hành sớm nhất: 15 phút.
Max = 16: Thời gian khởi hành trễ nhất: 16 phút.
Q1 = -4: 25% chuyến bay có thời gian khởi hành sớm hơn 4 phút.
Q2 = -2: 50% chuyến bay có thời gian khởi hành sớm hơn 2 phút.
Q3 = 0: 75% chuyến bay có thời gian khởi hành sớm hơn thời điểm dự kiến bay. Đối với hãng hàng không F9:
Min = -20: Thời gian khởi hành sớm nhất: 20 phút.
Max = 36: Thời gian khởi hành trễ nhất: 36 phút.
Q1 = -6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút.
Q2 = -2: 50% chuyến bay có thời gian khởi hành sớm hơn 2 phút.
Q3 = 4: 75% chuyến bay có thời gian khởi hành trễ từ 4 phút trở xuống. Đối với hãng hàng không HA:
Min = -16: Thời gian khởi hành sớm nhất: 16 phút.
Max = 8: Thời gian khởi hành trễ nhất: 8 phút.
Q1 = -7: 25% chuyến bay có thời gian khởi hành sớm hơn 7 phút.
Q2 = -4,5056: 50% chuyến bay có thời gian khởi hành sớm hơn 4,5056 phút.
Q3 = -2: 75% chuyến bay có thời gian khởi hành sớm hơn 2 phút. Đối với hãng hàng không OO:
Min = -17: Thời gian khởi hành sớm nhất: 17 phút.
Max = 10: Thời gian khởi hành trễ nhất: 10 phút.
Q1 = -7: 25% chuyến bay có thời gian khởi hành sớm hơn 7 phút.
Q2 = -4,1136: 50% chuyến bay có thời gian khởi hành sớm hơn 4,1136 phút.
Q3 = -2: 75% chuyến bay có thời gian khởi hành sớm hơn 2 phút. Đối với hãng hàng không UA:
Min = -19: Thời gian khởi hành sớm nhất: 19 phút.
Max = 27: Thời gian khởi hành trễ nhất: 27 phút.
Q1 = -5: 25% chuyến bay có thời gian khởi hành sớm hơn 5 phút.
Q2 = -1: 50% chuyến bay có thời gian khởi hành sớm hơn 1 phút.
Q3 = 2: 75% chuyến bay có thời gian khởi hành trễ từ 2 phút trở xuống. Đối với hãng hàng không US:
Min = -15: Thời gian khởi hành sớm nhất: 15 phút.
Max = 11: Thời gian khởi hành trễ nhất: 11 phút.
Q1 = -6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút.
Q2 = -3,0085: 50% chuyến bay có thời gian khởi hành sớm hơn 3,0085 phút.
Q3 = -1: 75% chuyến bay có thời gian khởi hành sớm 1 phút. Đối với hãng hàng không VX:
Min = -17: Thời gian khởi hành sớm nhất: 17 phút.
Max = 15: Thời gian khởi hành trễ nhất: 15 phút.
Q1 = -5: 25% chuyến bay có thời gian khởi hành sớm hơn 5 phút.
Q2 = -2,6272: 50% chuyến bay có thời gian khởi hành sớm hơn 2,6272 phút.
Q3 = -1: 75% chuyến bay có thời gian khởi hành sớm hơn 1 phút. Đối với hãng hàng không WN:
Min = -11: Thời gian khởi hành sớm nhất: 11 phút.
Max = 45: Thời gian khởi hành trễ nhất: 45 phút.
Q1 = -2: 25% chuyến bay có thời gian khởi hành sớm hơn 2 phút.
Q2 = 3: 50% chuyến bay có thời gian khởi hành trễ từ 3 phút trở xuống.
Q3 = 11: 75% chuyến bay có thời gian khởi hành trễ từ 11 phút trở xuống.
2 Phân tích phương sai một nhân tố
Nghiên cứu này nhằm xác định sự khác biệt về thời gian khởi hành trễ trung bình giữa các hãng hàng không cho các chuyến bay xuất phát từ Portland trong suốt năm.
(a) Giải thích lý do sử dụng phân tích phương sai:
PHẦN RIÊNG
Đọc dữ liệu
Đọc dữ liệu “gia_nha.csv”.
Làm sạch dữ liệu
(a)Tạo một dữ liệu con new_DF chỉ bao gồm các biến chính mà ta quan tâm.
(b)Kiểm tra các dữ liệu bị khuyết trong new_DF
Khi kiểm tra dữ liệu trong new_DF, chúng ta phát hiện có 20 giá trị bị khuyết ở biến price, chiếm dưới 10% tổng số dữ liệu Do đó, việc xử lý các dữ liệu khuyết này là cần thiết.
Phương pháp thay thế cho các dữ liệu bị khuyết: xoá các quan sát chứa dữ liệu bị khuyết.
Sau khi thực hiện phương pháp, nhận thấy không còn dữ liệu bị khuyết.
Làm rõ dữ liệu
Chuyển đổi các biến giá cả (price), diện tích sống 15 (sqft_living15), diện tích trên mặt đất (sqft_above) và diện tích sống (sqft_living) thành dạng log, cụ thể là log(price), log(sqft_living15), log(sqft_above) và log(sqft_living) Tất cả các phép tính liên quan đến các biến này sẽ được hiểu là đã được chuyển đổi sang dạng log.
Giải thích lý do chuyển sang dạng log(x):
Để cải thiện sự phù hợp của mô hình hồi quy, cần đảm bảo rằng các sai số hồi quy (phần dư) có phân phối chuẩn Khi phần dư không tuân theo phân phối chuẩn, việc áp dụng log cho một biến có thể giúp điều chỉnh tỉ lệ và đưa biến đó về phân phối chuẩn Hơn nữa, trong trường hợp phần dư bị ảnh hưởng bởi phương sai thay đổi do các biến độc lập, việc chuyển đổi các biến này sang dạng log cũng là một giải pháp hiệu quả.
Việc lấy log của biến phụ thuộc Y và biến độc lập X giúp chúng ta dễ dàng diễn giải mối quan hệ giữa hai biến Cụ thể, hệ số hồi quy β sẽ được hiểu là hệ số co giãn, cho biết rằng khi X tăng 1%, chúng ta kỳ vọng Y sẽ tăng lên β% về mặt trung bình.
+ Ước lượng mô hình phi tuyến: 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.
Để tính toán các giá trị thống kê mô tả cho các biến log.price, log.sqft_above, log.sqft_living và log.sqft_living15, chúng ta sẽ xác định các chỉ số như trung bình, trung vị, độ lệch chuẩn, giá trị lớn nhất và giá trị nhỏ nhất Kết quả sẽ được trình bày dưới dạng bảng để dễ dàng so sánh và phân tích.
(c) Lập một bảng thống kê số lượng cho từng chủng loại của biến floors và condition.
(d) Vẽ biểu đồ histogram thể hiện phân phối của log.price.
Dựa trên biểu đồ histogram của biến log.price, ta nhận thấy đồ thị có hình dạng phân phối chuẩn
(e) Vẽ biểu đồ boxplot thể hiện phân phối của biến log.price cho từng nhóm phân loại của biến floors và biến condition.
- Vẽ biểu đồ boxplot thể hiện phân phối của biến log.price cho từng nhóm phân loại của biến floors.
- Vẽ biểu đồ boxplot thể hiện phân phối của biến log.price cho từng nhóm phân loại của biến condition.
(f) Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_living15, log.sqft_above, log.sqft_living.
- Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_living15
- Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_above.
- Vẽ biểu đồ phân tán thể hiện phân phối của biến log.price theo biến log.sqft_living.
Dựa trên các đồ thị phân tán, log.price có mối quan hệ tuyến tính đồng biến với log.sqft_living15, log.sqft_above và log.sqft_living Việc chuyển đổi các biến sang dạng log(x) cho thấy hiệu quả trong việc phân tích mối quan hệ tuyến tính giữa các biến độc lập và biến phụ thuộc là giá nhà.
Mối quan hệ giữa các biến và giá nhà có thể được xác định thông qua mô hình hồi quy tuyến tính, giúp kiểm tra xem liệu mối quan hệ này có thực sự tuyến tính hay không Mô hình này sử dụng các khoảng tin cậy và phép kiểm định để phân tích Đồng thời, nó cũng cho phép ước lượng giá trị của biến phụ thuộc (giá nhà) dựa trên các biến độc lập như số tầng, điều kiện ngôi nhà và diện tích.
4 Xây dựng mô hình hồi quy tuyến tính
Chúng ta muốn khám phá rằng có những nhân tố nào và tác động như thế nào đến giá nhà ở quận King.
Mô hình hồi quy tuyến tính được xây dựng với biến phụ thuộc là log.price, trong khi các biến độc lập bao gồm floors, condition, log.sqft_living15, log.sqft_above và log.sqft_living.
Mô hình được biểu diễn như sau: log.price = β 0 + β 1 × log.sqft_living15 + β 2 × floors1.5 + β 3 × floors2 + + β 11 × log.sqft_above + β 12 × log.sqft_living + εi
Trước khi ước lượng các hệ số βi, ta cần chuyển các biến floors và condition sang dạng factor.
Ta thực hiện ước lượng các hệ số β i , i = 0, , 12:
Nhận xét: Từ kết quả phân tích, ta thu được:
Như vậy, đường thẳng hồi quy ước lượng cho bởi phương trình sau: log.price = 5.314428 + 0.462153 × log.sqft_living15 + 0.181243 × floors1.5 + 0.067617 × floors2 + − 0.142451 × log.sqft_above + 0.670249 × log.sqft_living.
(b) Kiểm định các hệ số hồi quy
Giả thuyết H0: Hệ số hồi quy không có ý nghĩa thống kê ( β i = 0)
Giả thuyết H1: Hệ số hồi quy có ý nghĩa thống kê ( β i ≠ 0)
Chúng tôi nhận thấy rằng Pr(>|t|) của các hệ số liên quan đến biến condition2 lớn hơn mức ý nghĩa α 0.05, vì vậy chúng tôi chưa thể bác bỏ giả thuyết H0 Điều này cho thấy các hệ số này không có ý nghĩa trong mô hình hồi quy mà chúng tôi đã xây dựng Do đó, cần xem xét việc loại bỏ biến condition khỏi mô hình.
(c) Xét 2 mô hình tuyến tính cùng bao gồm biến log.price là biến phụ thuộc nhưng: + 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 là loại bỏ biến condition từ mô hình M1.
Xây dựng mô hình m2 loại bỏ biến condition từ mô hình m1.
So sánh hiệu quả của hai mô hình:
Giả thuyết H0: Hai mô hình hiệu quả giống nhau.
Giả thuyết H1: Hai mô hình hiệu quả khác nhau.
Ta nhận thấy Pr(>|t|) < 2.2e-16, tức bé hơn mức ý nghĩa α = 0.05 nên ta bác bỏ giả thuyết
Hai mô hình hiệu quả khác nhau, trong đó biến bỏ đi là biến condition có sự tồn tại của các biến condition2, condition3, condition4, condition5 vẫn có ý nghĩa với mô hình Việc loại bỏ biến có ý nghĩa sẽ làm giảm chất lượng của mô hình Do đó, mô hình 1 được chọn là mô hình phù hợp nhất.
(d) Phân tích sự tác động của các nhân tố lên giá nhà:
Mô hình hồi quy tuyến tính cho thấy các yếu tố ảnh hưởng đến giá nhà được biểu diễn qua công thức: log.price = 5.314428 + 0.462153 × log.sqft_living15 + 0.181243 × floors1.5 + 0.067617 × floors2 - 0.142451 × log.sqft_above + 0.670249 × log.sqft_living Các hệ số trong mô hình này chỉ ra rằng diện tích sống và số tầng có ảnh hưởng tích cực đến giá nhà, trong khi diện tích phía trên lại có tác động tiêu cực.
p-value tương ứng với thống kê F nhỏ hơn 2.2e−16 cho thấy có ý nghĩa rất cao, chỉ ra rằng ít nhất một biến dự báo trong mô hình có khả năng giải thích giá nhà Khi xem xét trọng số (hệ số β i) và p-value của từng biến độc lập, hầu hết các p-value đều nhỏ hơn 2e−16, ngoại trừ biến condition2 Điều này chứng tỏ ảnh hưởng của các biến này lên log.price là rất đáng kể Hệ số hồi quy β i của mỗi biến dự báo cũng phản á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ả định các biến khác không đổi.
Khi log diện tích trung bình của 15 ngôi nhà lân cận tăng 1 đơn vị, log.price dự kiến sẽ tăng 0.462153 Hệ số R² hiệu chỉnh là 0.5097, cho thấy 50.97% sự biến thiên trong log.price được giải thích bởi các biến độc lập.
Đồ thị biểu thị sai số hồi quy (residuals) và các giá trị dự báo (fitted values) giúp kiểm tra tính tuyến tính của dữ liệu, xác định rằng các sai số có kỳ vọng bằng 0 và tính đồng nhất của các phương sai sai số Nếu giả định về tính tuyến tính không được thỏa mãn, các điểm thặng dư sẽ phân bố theo một hình mẫu đặc trưng, chẳng hạn như hình parabol Ngược lại, nếu đường màu đỏ trên đồ thị là một đường thẳng nằm ngang, giả định tính tuyến tính được xác nhận Để kiểm tra giả định phương sai đồng nhất, các điểm thặng dư cần phân tán đều xung quanh đường thẳng màu đỏ, trong khi để giả định các sai số có kỳ vọng bằng 0 được thỏa mãn, đường màu đỏ phải gần sát với đường residuals = 0.
+ Đồ thị cho thấy giả định về tính tuyến tính của dữ liệu chưa thực sự thoả mãn.
+ Đồ thị cho ta thấy rằng giả định các sai số có kỳ vọng bằng 0 chưa thoả mãn.
+ Đồ thị cho ta thấy rằng giả định về tính đồng nhất của phương sai chưa thoả mãn.
(a) Từ mô hình 1, thực hiện dự báo tại hai thuộc tính như sau:
X1: sqft_living15 = mean(sqft_living15), sqft_above = mean(sqft_above), sqft_living mean(sqft_living), floor = 2, condition = 3
X2: sqft_living15 = max(sqft_living15), sqft_above = max(sqft_above), sqft_living max(sqft_living), floor = 2, condition = 3.
(b) So sánh khoảng tin cậy cho hai giá trị dự báo này:
Kết quả cho thấy khoảng ước lượng giá trị dự báo của thuộc tính X1 ngắn hơn so với khoảng ước lượng cho thuộc tính X2, điều này cho thấy khoảng ước lượng cho giá trị dự báo ở thuộc tính X1 là hợp lý hơn.
Tập tin flights.rda chứa thông tin về 162049 chuyến bay khởi hành từ hai sân bay lớn ở Tây Bắc Thái Bình Dương, SEA tại Seattle và PDX tại Portland trong năm 2014 Dữ liệu này được cung cấp bởi Văn phòng Thống kê Vận tải Mỹ (https://www.transtats.bts.gov/) và được sử dụng để phân tích nguyên nhân gây ra sự khởi hành trễ hoặc hoãn chuyến bay.
Tổng chuyến bay được thống kê: 162049.
Mô tả các biến chính:
1 year, month, day: ngày khởi hành của mỗi chuyến bay
2 carrier: tên của hãng hàng không, được mã hóa bằng 2 chữ cái in hoa Ví dụ: UA
= United Air Lines, AA = American Airlines, DL = Delta Airlines, v.v.
3 origin và dest: tên sân bay đi và đến Đối với sân bay đi, ta chỉ có hai giá trị SEA
4 dep_time và arr_time: thời gian cất cánh và hạ cánh (theo lịch dự kiến)
5 dep_delay và arr_time: chênh lệch (phút) giữa thời gian cất cánh/hạ cánh thực tế với thời gian cất cánh/hạ cánh in trong vé
6 distance: khoảng cách giữa hai sân bay (dặm)
1 Nhập và làm sạch dữ liệu, thực hiện các thống kê mô tả
(a) Trong R hãy nhập tập dữ liệu flights.rda
Xây dựng mô hình hồi quy: Phân tích các nhân tố ảnh hưởng đến lương của kỹ sư sau khi tốt nghiệp ĐH
sư sau khi tốt nghiệp ĐH.
Xây dựng mô hình 1 trong đó:
- Biến độc lập: tất cả các biến còn lại.
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ị loại khỏi mô hình với mức tin cậy 5% ?
H 0 : Các hệ số hồi quy không có ý nghĩa thống kê
H 1 : Các hệ số hồi quy có ý nghĩa thống kê
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 các biến
The variables Genderm, DegreeMCA, collegeGPA, English, Logical, Quant, ComputerScience, ElectricalEngg, TelecomEngg, and CivilEngg all have p-values less than 0.05, leading us to reject the null hypothesis (H0) and accept the alternative hypothesis (H1) This indicates that the coefficients corresponding to these variables are statistically significant.
Các biến Degree, GraduationYear và MechanicalEngg có giá trị Pr(>|t|) lớn hơn mức ý nghĩa 0,05, do đó chưa thể bác bỏ giả thiết H0 Điều này cho thấy các hệ số tương ứng với các biến này không có ý nghĩa thống kê, vì vậy chúng ta sẽ loại bỏ các biến Degree, GraduationYear và MechanicalEngg khỏi mô hình.
Xây dựng mô hình 2 loại bỏ biến GraduationYear từ mô hình 1. y dựng mô hình 3 loại bỏ biến MechanicalEngg từ mô hình 2 Xâ
Xây dựng mô hình 4 loại bỏ biến Degree từ mô hình 3.
So sánh các mô hình:
Dựa vào kết quả phân tích ANOVA hai mô hình M1 và M2, ta thu được giá trị Pr(>F)
Với mức ý nghĩa 5%, giá trị Pr(>F) lớn hơn 0,05 cho thấy hai mô hình không có sự khác biệt đáng kể Bên cạnh đó, khi xem xét R2 hiệu chỉnh (Adjusted R squared) của hai mô hình, chúng ta có thể rút ra kết luận về sự tương đồng giữa chúng.
Mô hình M2 có R2 hiệu chỉnh là 0,1813, cao hơn R2 hiệu chỉnh của M1 là 0,181 Mặc dù kết quả phân tích ANOVA cho thấy hai mô hình tương đương, chúng ta vẫn có thể kết luận rằng mô hình M2 tốt hơn M1.
Dựa vào kết quả phân tích ANOVA hai mô hình M2 và M3, ta thu được giá trị Pr(>F)
Với mức ý nghĩa 5%, Pr(>F) > 0,05 cho thấy hai mô hình là tương đương Tuy nhiên, khi xem xét R² hiệu chỉnh, M3 có giá trị 0,1815, cao hơn M2 với giá trị 0,1813 Do đó, mặc dù phân tích ANOVA cho thấy hai mô hình tương tự, chúng ta vẫn có thể kết luận rằng mô hình M3 vượt trội hơn M2.
Dựa vào kết quả phân tích ANOVA hai mô hình M3 và M4, ta thu được giá trị Pr(>F)
Với mức ý nghĩa 5%, Pr(>F) > 0,05 cho thấy hai mô hình là tương đương Tuy nhiên, khi xem xét R2 hiệu chỉnh, M4 có giá trị 0,1806 thấp hơn M2 với giá trị 0,1815 Do đó, mặc dù phân tích ANOVA cho thấy hai mô hình giống nhau, chúng ta vẫn có thể kết luận rằng mô hình M3 tốt hơn M4 Đặc biệt, giá trị Pr(>F) đã giảm đáng kể so với các giá trị trước đó, cho thấy có sự thay đổi lớn khi loại bỏ biến Degree.
Sau khi loại bỏ các biến GraduationYear, MechanicalEngg và Degree, các mô hình mới M2, M3, M4 được xây dựng Kết quả từ các mô hình này cho thấy các biến collegeGPA, English, ComputerScience, Quant và ElectricalEngg có giá trị Pr(>t) rất thấp (***) cho thấy khả năng bác bỏ giả thuyết H0 cao Điều này chỉ ra rằng các hệ số tương ứng với những biến này có ý nghĩa thống kê cao, cho thấy rằng sự thay đổi của chúng ảnh hưởng đáng kể đến mức lương của sinh viên kỹ sư mới ra trường.
Các biến Genderm, DegreeMCA, Logical, TelecomEngg, CivilEngg có Pr(>t) nhỏ, nhưng vẫn cho thấy xu hướng bác bỏ H0, cho thấy có ảnh hưởng nhất định đến lương, mặc dù ít hơn so với các biến có ý nghĩa cao hơn Biến GraduationYear, MechanicalEngg, Degree bị loại bỏ do không có ý nghĩa thống kê, nghĩa là sự thay đổi của các biến này không ảnh hưởng đến lương của kỹ sư mới ra trường Hệ số hồi quy của một biến dự báo cho thấy ảnh hưởng trung bình lên lương khi tăng hoặc giảm 1 đơn vị, ví dụ, với CollegeGPA = 8.212e-03, nếu điểm tăng 1, lương kỳ vọng tăng 8.212e-03 INR, giả định các biến khác không đổi.
Vẽ biểu đồ sai số hồi quy và giá trị dự báo:
Đồ thị hiển thị các giá trị dự báo và thặng dư tương ứng, cho thấy mối quan hệ tuyến tính giữa biến dự báo X và biến phụ thuộc Y, với đường thẳng màu đỏ nằm ngang Điều này xác nhận giả định tuyến tính của dữ liệu Hơn nữa, các giá trị thặng dư phân tán đều quanh đường thẳng y = 0, ngoại trừ một số ngoại lai, chứng tỏ phương sai của sai số là hằng số.
*** Các giả định cần kiểm tra trong mô hình hồi quy tuyến tính:
• Y và X có mối quan hệ tuyến tính
• Sai số hồi quy tuân theo phân phối chuẩn
• Các sai số phải độc lập với nhau
• Phương sai các sai số phải là hằng số
t.test: So sánh lương trung bình giữa Nam và Nữ
Tạo dữ liệu mới chỉ bao gồm các biến Salary, Gender, Degree
Xây dựng mô hình anova: So sánh mức lương trung bình giữa các ứng cử viên đạt các bằng cấp khác nhau
Lọc dữ liệu (chỉ xét 3 loại bằng cấp):
Kiểm tra giả định phân phối chuẩn:
• Đối với loại bằng cấp B.Tech/B.E:
Nhận xét về các đồ thị cho thấy hầu hết các biến tập trung quanh đường thẳng 15 độ Mặc dù ở hai đầu có một số giá trị lệch, nhưng mức độ không đáng kể Do đó, giả định rằng các sai số tuân theo phân phối chuẩn là hợp lý.
• Đối với loại bằng cấp M.Tech./M.E:
Nhận xét: Đây là biểu đồ chưa phân phối chuẩn do các biến quá rời rạc
• Đối với loại bằng cấp MCA:
Nhận xét từ các đồ thị cho thấy hầu hết các biến tập trung quanh đường thẳng 15 độ Mặc dù ở đầu và cuối có một số giá trị lệch khỏi đường thẳng, nhưng mức độ lệch này không đáng kể Do đó, giả định về các sai số tuân theo phân phối chuẩn được xác nhận.
Thực hiện kiểm tra giả định tính đồng nhất của phương sai:
Nhận xét: Do giá trị Pr(>F)=0,06524>0,05 nên phương sai bằng nhau, từ đó đủ điều kiện phân tích phương sai một nhân tố.
Thực hiện phân tích phương sai một nhân tố:
Nhận xét: Pr(>F)=0,134>0,05 nên trung bình bằng nhau, chưa đủ điều kiện để khẳng định có sự khác biệt giữa các nhóm đối với biến phụ thuộc