lOMoARcPSD|12836001 Duong Duc Nghia 2011 671-btl xác xuất thống kê hcmut Xác suất và thống kê (Trường Đại học Bách khoa, Đại học Quốc gia Thành phố Hồ Chí Minh) StuDocu is not sponsored or endorsed by any college or university Downloaded by Bu Bu (alobudaydayday@gmail.com) lOMoARcPSD|12836001 TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO BÀI TẬP LỚN - XÁC XUẤT THỐNG KÊ Đề tài 4: Danh sách các thành viên trong nhóm sinh viên thực hiện đề tài: • Lê Minh - MSSV: 2011611 • Nguyễn Hoàng Thanh Minh - MSSV: 2011618 • Dương Đức Nghĩa - MSSV: 2011671 • Nguyễn Trọng Phong - MSSV: 2011823 • Đinh Ngọc Phúc - MSSV: 2011838 • Mai Tấn Minh Quân - MSSV: 2011912 Thành phố Hồ Chí Minh, tháng 3 năm 2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Mục lục 1 Đề bài 1.1 Hoạt động 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Hoạt động 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 2 Cơ Sở Lý Thuyết 2.1 Thống kê . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Định Nghĩa . . . . . . . . . . . . . . . . . 2.1.2 Phân loại . . . . . . . . . . . . . . . . . . 2.1.3 Ứng dụng . . . . . . . . . . . . . . . . . . 2.2 ANOVA Một Nhân Tố . . . . . . . . . . . . . . . 2.2.1 Định Nghĩa . . . . . . . . . . . . . . . . . 2.2.2 Các bước phân tích ANOVA một nhân tố 2.3 Hồi Quy Tuyến Tính . . . . . . . . . . . . . . . . 2.3.1 Lý thuyết hồi quy tuyến tính đơn . . . . . 3 Thực Hiện 3.1 Cài đặt thư viện . . . . . . . . . . . . . . 3.2 Đọc dữ liệu (Import Data) . . . . . . . . . 3.3 Làm sạch dữ liệu ( Data Cleaning) . . . . 3.3.1 Kiểm tra cấu trúc dữ liệu . . . . . 3.3.2 Kiểm tra dữ liệu khuyết NA . . . . 3.3.3 Xử lí dữ liệu NA . . . . . . . . . . 3.4 Làm rõ dữ liệu (Data Visualization) . . . 3.5 Anova một nhân tố: đánh giá sự khác biệt 3.6 Mô hình hồi quy tuyến tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . trong việc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lệch giờ bay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . giữa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . các . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 4 4 4 4 5 5 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . hãng bay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 8 8 9 10 11 15 31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Kết Luận 36 5 HĐ riêng 5.1 Dẫn Nhập . . . . . . . . . . . . . . . . . 5.1.1 Tổng quan về tập dữ liệu . . . . 5.1.2 Hướng xử lí dữ liệu . . . . . . . . 5.2 Thực Hiện . . . . . . . . . . . . . . . . . 5.2.1 Đọc vào dữ liệu . . . . . . . . . . 5.2.2 Làm sạch dữ liệu . . . . . . . . . 5.2.3 Mô tả dữ liệu . . . . . . . . . . . 5.2.4 Xây dựng mô hình hồi quy tuyến . . . . . . . . . . . . . . . . . . . . . tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 37 37 37 37 37 37 39 40 Trang 2/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 1 Đề bài 1.1 Hoạt động 1 Tập tin flights.rda cung cấp thông tin về 162049 chuyến bay đã khởi hành từ hai sân bay lớn của vùng Tây bắc Thái Bình Dương của Mỹ, SEA ở Seattle và PDX ở Portland trong năm 2014. Dữ liệu cung cấp bởi Văn phòng Thống kê Vận tải, Mỹ (https://www.transtats.bts.gov/). Dữ liệu này được dùng để phân tích các nguyên nhân gây ra sự khởi hành trễ hoặc hoãn các chuyến bay. Chi tiết về bộ dữ liệu như sau: Các biến chính trong bộ dữ liệu: 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 (Seattle) và PDX (Portland) 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) Các bước thực hiện: 1. Đọc dữ liệu (Import data): flight.rda 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. ANOVA một nhân tố: đánh giá sự khác biệt trong việc lệch giờ bay (dep_delay) giữa các hãng bay. 5. Mô hình hồi quy tuyến tính: Sử dụng một mô hình hồi quy phù hợp để phân tích các yếu tố ảnh hưởng đến việc lệch giờ đế (arr_time) của các chuyến bay. 1.2 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 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). Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 3/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 2 Cơ Sở Lý Thuyết 2.1 2.1.1 Thống kê Định Nghĩa Thống kê là hệ thống các phương pháp dùng để thu thập, xử lý và phân tích các con số (mặt lượng) của những hiện tượng số lớn để tìm hiểu bản chất và tính quy luật vốn có của chúng (mặt chất) trong điều kiện thời gian và không gian cụ thể. 2.1.2 Phân loại Thống kê được chia thành hai lĩnh vực: • Thống kê mô tả: bao gồm các phương pháp thu thập số liệu, tính toán các đặc trưng đo lường, mô tả và trình bày số liệu. • Thống kê suy diễn: bao gồm các phương pháp như ước lượng, kiểm định, phân tích mối liên hệ, dự đoán. . . trên cơ sở các thông tin thu thập từ mẫu giúp ta có những hiểu biết về tổng thể. 2.1.3 Ứng dụng Thống kê hiện nay đã được ứng dụng vào mọi lĩnh vực: • Lĩnh vực kinh tế - xã hội tự nhiên, kỹ thuật, thống kê thường quan tâm nghiên cứu các hiện tượng • Về dân số, nguồn lao động. • Về tâm lý, giáo dục, thể thao, y tế. • Về sinh hoạt chính trị, xã hội • Về kỹ thuật. • Thời tiết, dự báo bão. . . 2.2 2.2.1 ANOVA Một Nhân Tố Định Nghĩa ANOVA một nhân tố hay one-way ANOVA là phương pháp so sánh trung bình của hai hay nhiều mẫu độc lập để xác định xem các mẫu có độ tương quan với nhau hay không với khả năng sai lầm là 5%. Ví dụ: Phân tích sự khác biệt giữa các thuộc tính khách hàng (giới tính, tuổi, nghề nghiệp, thu nhập. . . ) đối với 1 vấn đề nào đó (thường chọn là nhân tố phụ thuộc, vd: sự hài lòng). Một số giả định khi phân tích ANOVA: – Các nhóm so sánh phải độc lập và được chọn một cách ngẫu nhiên. – Các nhóm so sánh phải có phân phối chuẩn hoặc cỡ mẫu phải đủ lớn để được xem như tiệm cận phân phối chuẩn. – Phương sai của các nhóm so sánh phải đồng nhất. Lưu ý: nếu giả định tổng thể có phân phối chuẩn với phương sai bằng nhau không đáp ứng được thì bạn có thể dùng kiểm định phi tham số Kruskal-Wallis sẽ để thay thế cho ANOVA. Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 4/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 2.2.2 Các bước phân tích ANOVA một nhân tố Bước 1 : Kiểm định phương sai đồng nhất Levene test: dùng kiểm định phương sai bằng nhau hay không giữa các nhóm Giả thiết Ho: “Phương sai bằng nhau” Sig <= 0.05: bác bỏ Ho Sig >0.05: chấp nhận Ho -> đủ điều kiện để phân tích tiếp ANOVA Bước 2 : Kiểm định ANOVA Giả thiết Ho: “Trung bình bằng nhau” Sig <=0.05: bác bỏ Ho -> đủ đ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 Sig >0.05: chấp nhận Ho -> 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 Khi có sự khác biệt thì có thể phân tích sâu hơn để tìm ra sự khác biệt như thế nào giữa các nhóm quan sát bằng các kiểm định Tukey, LSD, Bonferroni, Duncan như hình dưới. Kiểm định sâu anova gọi là kiểm định Post-Hoc 2.3 2.3.1 Hồi Quy Tuyến Tính Lý thuyết hồi quy tuyến tính đơn Định nghĩa hồi quy: Hàm hồi quy của Y theo X là kỳ vọng có điều kiện của Y đối với X, tức là E(Y |X). Xét hàm hồi quy tuyến tính đơn có dạng: fY (X) = aX + b Giả sử ta có một mẫu ngẫu nhiên kích thước n thu được khi quan sát (Y, X) là: (Yi , Xi ) = (Y1 , X1 ), (Y2 , X2 ), ..., (Yn , Xn ) Khi đó chúng ta có thể viết: Hay: fY i (Xi ) = E(Yi /Xi ) = aXi + b Yi = aXi + b + Ui i = 1, n (mô hình hồi quy tuyến tính đơn) Trong đó Ui là các sai số ngẫu nhiên và giả thiết rằng chúng độc lập với nhau, cùng tuân theo quy luật phân phối chuẩn N (0, σ 2 ). Tìm các hệ số â, b̂ của đường hồi quy tuyến tính mẫu Giả sử ta có một mẫu cụ thể {(xi , yi )}; i = 1, 2, ..., n n X (yi − ŷ)2 là nhỏ nhất Hàm ŷ(x) = â + b̂x là hàm hồi quy tuyến tính mẫu của Y theo X nếu hàm Q = Giải bải toán cực trị tự do của hàm Q(a, b) = n X i=1 i=1 2 [yi − (a + bxi )] ta tìm được nghiệm: b̂ = xy − x y ŝ2x â = y − bx Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 5/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Đánh giá các sai số của ước lượng và tính phù hợp (hay đúng đắn) của hàm hồi quy SST = n X i=1 (yi − y)2 = SSE + SSR SSE = SSW = Q(a, b) = n X i=1 SSR = SSB = n X i=1 (yi − ŷ)2 (ŷi − y)2 SST đo mức biến động các giá trị của Y xung quanh giá trị trung bình của nó. SSR là sai số do khác biệt giữa đường hồi quy mẫu và trung bình của Y. Sự khác biệt này được giải thích bởi sự biến động của X. SSE được xem như sai số do những yếu tố khác ngoài X hoặc do lấy mẫu ngẫu nhiên. Kiểm định sự phù hợp của hàm hồi quy tuyến tính đơn: Giả thiết H0 : R2 = 0; H1 : R2 ̸= 0 hoặc H0 : b = 0; H1 : b ̸= 0 SSB M SR M SB = hoặc F = k−1 Tiêu chuẩn kiểm định: F = SSW M SW M SE n−k Miền bác bỏ: Wα = (F (1; n − 2); +∞) SSR SSE 2 2 2 Hệ số xác định R : R = hay R = 1− SST SST Hệ số R2 giải thích trong 100% sự biến động của Y so với trung bình của nó thì có bao nhiêu % là do biến X gây ra. 2 Trong mô hình hồi quy tuyến tính đơn, R2 = rxy (rxy : hệ số tương quan). Sai số chuẩn của ước lượng: 2 Nếu σ 2 chưa biết thì ta dùng ước lượng r không chệch của nó là σ̂ SSE Sai số chuẩn của ước lượng là σ̂ = n−2 Tìm khoảng tin cậy cho các hệ số a, b của hàm hồi quy tuyến tính đơn Các hệ số a, b trong mô hình lý thuyết f (x) = a + bX có a, b là những ước lượng tương ứng. Khoảng tin cậy của a, b lần lượt được xác định như sau: Khoảng ước lượng cho hệ số góc b là (b̂ − εb ; b̂ + εb ) với √ σ̂ SSE εb = tα/2 (n − 2) √ = tα/2 (n − 2) p Ŝx n Ŝx n(n − 2) Khoảng ước lượng cho tung độ gốc (hệ số tự do) a là (â − εa ; â + εa ) với p p σ̂ x2 SSEx2 εa = tα/2 (n − 2) √ = tα/2 (n − 2) p Ŝx n Ŝx n(n − 2) Kiểm định giả thiết về giá trị của các hệ số a, b • Giả thiết H0 : b = b0 ; Tiêu chuẩn kiểm định: Miền bác bỏ: H1 : b ̸= b0 b−b √ 0 T = SSE p Sx n(n − 2) Wα = (−∞; −tα (n − 2)) ∪ (tα (n − 2); +∞)) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 6/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh • Giả thiết H0 : a = a 0 ; Tiêu chuẩn kiểm định: Miền bác bỏ: H1 : a ̸= a0 a − a0 T = p SSEx2 p Sx n(n − 2) Wα = (−∞; −tα (n − 2)) ∪ (tα (n − 2); +∞)) Dự đoán các giá trị của Y theo X Dự báo giá trị trung bình của Y khi X = x0 fY (x0 ) = a + bx0 + ϵ v u (x0 − x)2 u1 a + bx0 ± tα/2 (n − 2)σ u + n un X t (xi − x)2 i=1 Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 7/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 3 3.1 Thực Hiện Cài đặt thư viện Một thư viện muốn được khai báo để sử dụng trong R trước hết phải được cài đặt Cú pháp : install.packages("ten_thu_vien") Để sử dụng thư viện đã cài đặt ta dùng câu lệnh : library("ten_thu_vien") Một số thư viện được sử dụng trong bài lần này : Tidyverse : thư viện tổng hợp một số thư viện ggplot2, tibble, stringr, readr, dplyr, tidyr, purrr, forcats 3.2 Đọc dữ liệu (Import Data) Trước khi đọc dữ liệu ta cần tải file về và lưu vào thư mục rồi lấy đường dẫn đến thư mục đó để chuẩn bị cho bước tiếp theo Sử dụng lệnh load() Cú pháp : load("Dia_Chi_Duong_Dan_Den_File") Thực hiện đọc dữ liệu : load("C:/Program Files/R/R-4.1.1/my doc/flights.rda") Ở phần Environment hiện ra file bên dưới 3.3 3.3.1 Làm sạch dữ liệu ( Data Cleaning) Kiểm tra cấu trúc dữ liệu Dữ liệu có thể chứa những thông tin lỗi ví dụ ở cột "year" có thể chứa các kí tự chữ không phù hợp. Vậy nên chúng ta cần kiểm tra thông tin kiểu dữ liệu của từng cột bằng lệnh : str("ten du lieu") Thực hiện : str(flights) Kết quả : Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 8/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 3.3.2 Kiểm tra dữ liệu khuyết NA Chúng ta không thể làm việc với dữ liệu Na vì chúng không chứa thông tin gì vì vậy phải tìm được các giá trị Na để xử lí. Dùng lệnh summary() Thực hiện: summary(flights) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 9/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 3.3.3 Xử lí dữ liệu NA Vì dữ liệu Na khá nhiều nên ta sẽ thay thế các giá trị NA này thành giá trị trung vị Ở đây ta sẽ thế các giá trị NA của dep_time làm mẫu các cột khác làm tương tự Sử dụng câu lệnh: flights$dep_time[is.na(flights$dep_time)] <- median(flights$dep_time, na.rm = TRUE) Lúc này cái giá trị Na của cột dep_time đã bị thay thế bởi giá trị trung vị Kiểm tra lại bằng lệnh summary thấy cột dep_time không còn chứa giá trị Na. Làm tương tự cho các cột còn lại. flights$dep_delay[is.na(flights$dep_delay)] <- median(flights$dep_delay, na.rm = TRUE) flights$arr_time[is.na(flights$arr_time)] <- median(flights$arr_time, na.rm = TRUE) flights$arr_delay[is.na(flights$arr_delay)] <- median(flights$arr_delay, na.rm = TRUE) flights$air_time[is.na(flights$air_time)] <- median(flights$air_time, na.rm = TRUE) flights$hour[is.na(flights$hour)] <- median(flights$hour, na.rm = TRUE) flights$minute[is.na(flights$minute)] <- median(flights$minute, na.rm = TRUE) Lúc này toàn bộ Na đã được xử lí xong. Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 10/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 3.4 Làm rõ dữ liệu (Data Visualization) Tính các giá trị thống kê mô tả ( kích thước mẫu, trung bình, độ lệch chuẩn, min, max, các điểm tứ phân vị, trung vị ) của chênh lệch giữa thời gian cất cánh/hạ cánh thực tế và thời gian cất cánh/ hạ cánh đặt trước ( biến dep_delay ) của từng hãng hàng không ( carrier ). length = tapply(flights$dep_delay,flights$carrier,length) mean = tapply(flights$dep_delay,flights$carrier,mean) sd = tapply(flights$dep_delay,flights$carrier,sd) min = tapply(flights$dep_delay,flights$carrier,min) max = tapply(flights$dep_delay,flights$carrier,max) Q1 = tapply(flights$dep_delay,flights$carrier,quantile,probs=.25) median = tapply(flights$dep_delay,flights$carrier,median) Q3 = tapply(flights$dep_delay,flights$carrier,quantile,probs=.75) data.frame(length,mean,sd,min,max,Q1,median,Q3) Ta có kết quả như sau: Sau đó, vẽ biểu đồ boxplot để thể hiện phân phối của biến dep_delay cho từng hãng hàng không. boxplot(dep_delay~carrier,data = flights,xlab="Carrier",ylab="Dep_delay", main = "Boxplot of dep_delay for a category of carrier") Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 11/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét: Qua biểu đồ trên ta có thể thấy được có rất nhiều điểm ngoại lai ( outliers ) ở biến dep_delay, chúng gây ảnh hưởng đến kết quả phân tích sau này. Do đó, ta sử dụng khoảng tứ phân vị để loại bỏ những điểm đó đi. Ý tưởng: Ta sẽ chuyển các outliers thành dạng NA và sau đó sẽ thay thế các outliers thành giá trị trung bình của hãng hàng không tương ứng. Trước tiên, ta sẽ tạo hàm nhận biết các outliers và biến chúng thành dạng NA. rm<-function(x,na.rm=T) { q25<-quantile(x,0.25) q75<-quantile(x,0.75) iqr<-q75-q25 y<-x y[x<(q25-1.5*iqr)]<-NA y[x>(q75+1.5*iqr)]<-NA y } Sau đó, ta sẽ thực hiện thay thế và sửa đổi cho từng hãng hàng không. AA=subset(flights,flights$carrier=="AA") #Tách các giá trị thuộc hãng AA và lưu vào AA. AA$dep_delay=rm(AA$dep_delay) #Thay thế các outliers thành dạng NA. AA$dep_delay[is.na(AA$dep_delay)]<-mean(AA$dep_delay,na.rm=T) #Thay thế các giá trị NA thành giá trị trung bình. Ta sẽ thực hiện tương tự cho 10 hãng hàng không còn lại: AS=subset(flights,flights$carrier=="AS") AS$dep_delay=rm(AS$dep_delay) AS$dep_deylay[is.na(AS$dep_delay)]<-mean(AS$dep_delay,na.rm=T) DL=subset(flights,flights$carrier=="DL") DL$dep_delay=rm(DL$dep_delay) DL$dep_delay[is.na(DL$dep_delay)]<-mean(DL$dep_delay,na.rm=T) B6=subset(flights,flights$carrier=="B6") B6$dep_delay=rm(B6$dep_delay) B6$dep_delay[is.na(B6$dep_delay)]<-mean(B6$dep_delay,na.rm=T) F9=subset(flights,flights$carrier=="F9") F9$dep_delay=rm(F9$dep_delay) F9$dep_delay[is.na(F9$dep_delay)]<-mean(F9$dep_delay,na.rm=T) HA=subset(flights,flights$carrier=="HA") HA$dep_delay=rm(HA$dep_delay) HA$dep_delay[is.na(HA$dep_delay)]<-mean(HA$dep_delay,na.rm=T) OO=subset(flights,flights$carrier=="OO") OO$dep_delay=rm(OO$dep_delay) OO$dep_delay[is.na(OO$dep_delay)]<-mean(OO$dep_delay,na.rm=T) UA=subset(flights,flights$carrier=="UA") UA$dep_delay=rm(UA$dep_delay) UA$dep_delay[is.na(UA$dep_delay)]<-mean(UA$dep_delay,na.rm=T) US=subset(flights,flights$carrier=="US") US$dep_delay=rm(US$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 12/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh US$dep_delay[is.na(US$dep_delay)]<-mean(US$dep_delay,na.rm=T) VX=subset(flights,flights$carrier=="VX") VX$dep_delay=rm(VX$dep_delay) VX$dep_delay[is.na(VX$dep_delay)]<-mean(VX$dep_delay,na.rm=T) WN=subset(flights,flights$carrier=="WN") WN$dep_delay=rm(WN$dep_delay) WN$dep_delay[is.na(WN$dep_delay)]<-mean(WN$dep_delay,na.rm=T) Sau khi đã thay thế xong, ta sẽ gộp các hãng lại với nhau tạo thành 1 mẫu hoàn chỉnh. new_flights<-rbind(AA,AS,B6,DL,F9,HA,OO,UA,US,VX,WN) length = tapply(new_flights$dep_delay,new_flights$carrier,length) new_mean = tapply(new_flights$dep_delay,new_flights$carrier,mean) new_sd = tapply(new_flights$dep_delay,new_flights$carrier,sd) new_min = tapply(new_flights$dep_delay,new_flights$carrier,min) new_max = tapply(new_flights$dep_delay,new_flights$carrier,max) new_Q1 = tapply(new_flights$dep_delay,new_flights$carrier,quantile,probs=.25) new_median = tapply(new_flights$dep_delay,new_flights$carrier,median) new_Q3 = tapply(new_flights$dep_delay,new_flights$carrier,quantile,probs=.75) data.frame(length,new_mean,new_sd,new_min,new_max,new_Q1,new_median,new_Q3) boxplot(dep_delay~carrier,data = new_flights,xlab="Carrier",ylab="Dep_delay", main = "Boxplot of dep_delay for a category of carrier",col="orange") Và sau khi đã chuyển đổi, ta có các kết quả sau: Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 13/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét: Các giá trị của biến dep_delay của từng hãng hàng không lúc này đã gần nhau hơn và biểu đồ đã thể hiện rõ hơn về các thông số min, max, điểm phân vị,. . . Từ đó ta có thể có những nhận xét chính xác hơn về sự khác nhau giữa các hãng hàng không. Cụ thể: Đối với hãng hàng không AA: Min = -18: Thời gian khởi hành sớm nhất là: 18 phút Max = 25: Thời gian khởi hành trễ nhất là: 25 phút Q1 = −5: 25% chuyến bay có thời gian khởi hành sớm hơn 5 phút Med = -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 gian 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 là: 15 phút Max = 12: Thời gian khởi hành trễ nhất là: 12 phút Q1 = −5: 25% chuyến bay có thời gian khởi hành sớm hơn 5 phút Med = -2.5554: 50% chuyến bay có thời gian khởi hành sớm hơn 2.5554 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 B6: Min = -20: Thời gian khởi hành sớm nhất là: 20 phút Max = 29: Thời gian khởi hành trễ nhất là: 29 phút Q1 = −6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút Med = -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 trễ hơn 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 là: 15 phút Max = 16: Thời gian khởi hành trễ nhất là: 16 phút Q1 = −4: 25% chuyến bay có thời gian khởi hành sớm hơn 4 phút Med = -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 gian 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 là: 20 phút Max = 36: Thời gian khởi hành trễ nhất là: 36 phút Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 14/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Q1 = −6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút Med = -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ễ hơn 4 phút Đối với hãng hàng không HA: Min = -16: Thời gian khởi hành sớm nhất là: 16 phút Max = 8: Thời gian khởi hành trễ nhất là: 8 phút Q1 = −7: 25% chuyến bay có thời gian khởi hành sớm hơn 7 phút Med = -4.4990: 50% chuyến bay có thời gian khởi hành sớm hơn 4.4990 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 = -15: Thời gian khởi hành sớm nhất là: 15 phút Max = 9: Thời gian khởi hành trễ nhất là: 9 phút Q1 = −6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút Med = -4.1570: 50% chuyến bay có thời gian khởi hành sớm hơn 4.1570 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 là: 19 phút Max = 27: Thời gian khởi hành trễ nhất là: 27 phút Q1 = −5: 25% chuyến bay có thời gian khởi hành sớm hơn 5 phút Med = -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ễ hơn 2 phút Đối với hãng hàng không US: Min = -15: Thời gian khởi hành sớm nhất là: 15 phút Max = 11: Thời gian khởi hành trễ nhất là: 11 phút Q1 = −6: 25% chuyến bay có thời gian khởi hành sớm hơn 6 phút Med = -3: 50% chuyến bay có thời gian khởi hành sớm hơn 3 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 VX: Min = -17: Thời gian khởi hành sớm nhất là: 17 phút Max = 15: Thời gian khởi hành trễ nhất là: 15 phút Q1 = −5: 25% chuyến bay có thời gian khởi hành sớm hơn 5 phút Med = -2.6258: 50% chuyến bay có thời gian khởi hành sớm hơn 2.6258 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 WN: Min = -11: Thời gian khởi hành sớm nhất là: 11 phút Max = 45: Thời gian khởi hành trễ nhất là: 45 phút Q1 = −2: 25% chuyến bay có thời gian khởi hành sớm hơn 2 phút Med = 2: 50% chuyến bay có thời gian khởi hành trễ hơn 2 phút Q3 = 11: 75% chuyến bay có thời gian khởi hành trễ hơn 11 phút 3.5 Anova một nhân tố: đánh giá sự khác biệt trong việc lệch giờ bay giữa các hãng bay Ta sẽ sử dụng anova để kiểm định rằng liệu có sự khác biệt về việc lệch giờ bay trung bình giữa các hãng hàng không đối với các chuyến bay khởi hành từ Seattle trong năm 2014 hay không. Code R và kết quả khi lọc các chuyến bay các chuyến bay khởi hành từ Seattle trong năm 2014: SEA = subset(new_flights,new_flights$origin =="SEA") #loc cac chuyen bay khoi hanh tu Portland head(SEA,3) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 15/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Giải thích tại cho việc sử dụng ANOVA một nhân tố: Để thực hiện so sánh trung bình của nhiều nhóm, phương pháp tối ưu nhất là dùng phân tích phương sai. Do ta có 11 hãng hàng không có chuyến bay khởi hành từ Seattle trong năm 2014. Nếu chỉ so sánh 2 trung bình của 2 nhóm, ta có thể dùng t-test. Vì vậy nếu dùng t-test cho bài toán này, ta phải thực hiện kiểm định rất nhiều lần. Phương pháp phân tích phương sai cho ta kết luận sự bằng nhau hoặc khác nhau giữa các nhóm so sánh thông qua một phép kiểm định duy nhất. Bảng anova của 1 nhân tố Source of Variation Between groups Within groups Total Sum of squares (SS) SSG SSW SST Degree of Freedom(df) k-1 n-k n-1 Mean squares (MS) M SG = SSG k−1 M SW = SSW n−k F F = M SG M SW Đặt giả thuyết: - Giả thuyết H0 : µ1 = µ2 = = µ11 , Việc lệch giờ bay trung bình giữa các hãng hàng không bằng nhau. - Đối thuyết H1: ∃mui = ∃muj với (i ̸= j) , Có ít nhất 2 hãng hàng không có việc lệch giờ bay trung bình khác nhau. Các giả định cần kiểm tra trong ANOVA một nhân tố: + Giả định phân phối chuẩn: Việc lệch giờ bay ở các hãng hàng không đối với các chuyến bay khởi hành từ Seattle tuân theo phân phối chuẩn. + Tính đồng nhất của các phương sai: Phương sai việc lệch giờ bay ở các hãng hàng không đối với các chuyến bay khởi hành từ Seattle bằng nhau. Kiểm tra giả định phân phối chuẩn: Giả thuyết H0 : Việc lệch giờ bay ở các hãng hàng không đối với các chuyến bay khởi hành từ Seattle tuân theo phân phối chuẩn. Giả thuyết H1 : Việc lệch giờ bay ở các hãng hàng không đối với các chuyến bay khởi hành từ Seattle không tuân theo phân phối chuẩn. Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không AA: AA_SEA = subset(SEA,SEA$carrier =="AA") qqnorm(AA_SEA$dep_delay) qqline(AA_SEA$dep_delay) library(nortest) ad.test(AA_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 16/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không AS: AS_SEA = subset(SEA,SEA$carrier =="AS") qqnorm(AS_SEA$dep_delay) qqline(AS_SEA$dep_delay) library(nortest) ad.test(AS_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 17/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không B6: B6_SEA = subset(SEA,SEA$carrier =="B6") qqnorm(B6_SEA$dep_delay) qqline(B6_SEA$dep_delay) library(nortest) ad.test(B6_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 18/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không DL: DL_SEA = subset(SEA,SEA$carrier =="DL") qqnorm(DL_SEA$dep_delay) qqline(DL_SEA$dep_delay) library(nortest) ad.test(DL_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 19/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không F9: F9_SEA = subset(SEA,SEA$carrier =="F9") qqnorm(F9_SEA$dep_delay) qqline(F9_SEA$dep_delay) library(nortest) ad.test(F9_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 20/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không HA: HA_SEA = subset(SEA,SEA$carrier =="HA") qqnorm(HA_SEA$dep_delay) qqline(HA_SEA$dep_delay) library(nortest) ad.test(HA_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 21/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không OO: OO_SEA = subset(SEA,SEA$carrier =="OO") qqnorm(OO_SEA$dep_delay) qqline(OO_SEA$dep_delay) library(nortest) ad.test(OO_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 22/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không UA: UA_SEA = subset(SEA,SEA$carrier =="UA") qqnorm(UA_SEA$dep_delay) qqline(UA_SEA$dep_delay) library(nortest) ad.test(UA_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 23/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không US: US_SEA = subset(SEA,SEA$carrier =="US") qqnorm(US_SEA$dep_delay) qqline(US_SEA$dep_delay) library(nortest) ad.test(US_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 24/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không VX: VX_SEA = subset(SEA,SEA$carrier =="VX") qqnorm(VX_SEA$dep_delay) qqline(VX_SEA$dep_delay) library(nortest) ad.test(VX_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 25/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Code R và kết quả khi kiểm định giả định phân phối chuẩn cho biến dep_delay ở hãng hàng không WN: WN_SEA = subset(SEA,SEA$carrier =="WN") qqnorm(WN_SEA$dep_delay) qqline(WN_SEA$dep_delay) library(nortest) ad.test(WN_SEA$dep_delay) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 26/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét chung: Biểu đồ QQ-plot cho ta thấy có nhiều giá trị quan sát không nằm trên đường thẳng kì vọng của phân phối chuẩn do đó biến dep_delay ở các hãng hàng không không tuân theo phân phối chuẩn. Ngoài ra, p-value ở các kiểm định ad.test bé hơn rất nhiều so với mức ý nghĩa α = 0.05, nên ta bác bỏ giả thuyết H0, nên cũng đưa ra kết luận là biến dep_delay ở các hãng hàng không không tuân theo phân phối chuẩn. Kiểm định giả định về tính đồng nhất của các phương sai: Giả thuyết H0: Phương sai việc lệch giờ bay ở các hãng hàng không đối với các chuyến bay khởi hành từ Seattle bằng nhau. Giả thiết H1: Có ít nhất 2 hãng hàng không đối với các chuyến bay khởi hành từ Seattle có phương sai việc lệch giờ bay khác nhau. Code R và kết quả khi kiểm định giả định về tính đồng nhất của phương sai: library(car) leveneTest(dep_delay~as.factor(carrier), data=SEA) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 27/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét: Dựa trên p-value ở kiểm định leveneTest bé hơn rất nhiều so với mức ý nghĩa α = 0.05, nên ta bác bỏ giả thuyết H0, vậy ta có thể đưa ra kết luận là có ít nhất 2 hãng hàng không đối với các chuyến bay khởi hành từ Seattle có phương sai việc lệch giờ bay khác nhau. Kết luận: Mặc dù giả định về phân phối chuẩn và đồng nhất phương sai chưa thực sự thỏa mãn. Tuy nhiên để thực hiện phân tích phương sai, ta giả sử các giả định đó thỏa mãn và sẽ cực kỳ thận trọng để phân tích tiếp Anova Thực hiện phân tích phương sai một nhân tố: Code R và kết quả khi thực hiện ANOVA một nhân tố: anova <- aov(dep_delay~as.factor(carrier), data = SEA) summary(anova) Dựa trên kết quả ANOVA cho thấy: SSB = 1686906, bậc tự do k - 1 = 10 (k = 11) SSW = 85028492, bậc tự do N - k = 108703 (N= 108714) M SB = M SW = SSB (k−1) = 168691 SSW (N −k) = 782 Giá trị thống kê kiểm định: f = M SB M SW = 215.7 Mức ý nghĩa quan sát: p - value< 2e−16 Dựa vào p - value rất bé so với mức ý nghĩa α = 0.05 nên ta bác bỏ được giả thuyết H0. Có sự khác biệt về việc lệch giờ bay trung bình giữa các hãng hàng không đối với các chuyến bay khởi hành từ Seattle trong năm 2014. So sánh bội sau ANOVA bằng phương pháp Tukey HSD: Code R và kết quả so sánh bội sau ANOVA bằng phương pháp Tukey HSD: TukeyHSD(anova) plot(TukeyHSD(anova)) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 28/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 29/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh So sánh trung bình giữa các nhóm với nhau: Giả thiết H0: Thời gian khởi hành trễ trung bình của hãng AA và hãng AS bằng nhau Giả thiết H1: Thời gian khởi hành trễ trung bình của hang AA và AS khác nhau Ta nhận thấy p - adj = 0 < mức ý nghĩa quan sát nên bác bỏ gỉa thiết H0, chấp nhận giả thiết H1 Kết luận: Thời gian trễ trung bình của hãng AA và hãng AS khác nhau, dự vào giá trị diff ta thấy được thời gian trễ trung bình hãng AA lớn hơn hãng AS Đặt giả thiết tương tự cho các cặp so sánh thời gian trễ trung bình giữa các hãng còn lại, ta thu được kết quả: OO-HA B6-AA US-AS US-HA UA-F9 HA-AS HA-DL VX-B6 US-OO VX-AA UA-B6 F9-B6 F9-AA WN-F9 p-adj 1 0.9999999 0.9999897 0.9998427 0.9966804 0.996342 0.9402323 0.7692464 0.7576524 0.7327933 0.6139725 0.5089536 0.1877453 0.0632775 Nên tạm chấp nhận giả thiết H0 là thời gian trễ trung bình của các hãng này bằng nhau Các cặp còn lại trong bảng thống kê dưới đây là các cặp có p - adj bé hơn mức ý nghĩa quan sát. Nên bác bỏ giả thiết H0, chấp nhận giả thiết H1 thời gian trễ trung bình giữa các hãng hàng không khác nhau. Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 30/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét bảng thống kê: Hãng WN có giá trị trễ trung bình lớn hơn các hãng khác và lớn nhất là đối với hãng AS Hãng VX có giá trị trễ trung bình lớn hơn so với hãng AS, US, HA, OO, DL và bé hơn so với các hãng UA, F9 Hãng US có giá trị trễ trung bình bé hơn so với các hãng DL, AA, B6, UA, F9 Hãng UA có giá trị trễ trung bình lớn hơn so với các hãng AS, HA, OO, DL, AA Hãng OO có giá trị trễ trung bình lớn hơn so với hãng AS và bé hơn so với hãng DL, AA, B6, F9 Hãng HA có giá trị trễ trung bình bé hơn so với các hãng AA, B6, F9 Hãng F9 có giá trị trễ trung bình lớn hơn so với các hãng AS, DL Hãng DL có giá trị trễ trung bình lớn hơn so với hãng AS và bé hơn so với hãng AA, B6 Hãng B6 có giá trị trễ trung bình lớn hơn so với hãng AS Hãng AS có giá trị trễ trung bình bé hơn so với hãng AA 3.6 Mô hình hồi quy tuyến tính Sử dụng một mô hình hồi quy phù hợp để phân tích các yếu tố ảnh hướng đến việc lệch giờ đến (arr_delay) của các chuyến bay. Để phân tích các yếu tố ảnh hưởng đến việc lệch giờ đến (arr_delay) của các chuyến bay, ta xem biến (arr_delay) là biến phụ thuộc, và các biến độc lập là biến hãng hàng không (carrier), biến chỉ sân bay đi (origin), biến chênh lệch thời gian khởi hành (dep_delay) và biến khoảng cách giữa hai sân bay (distance). Đây là những yếu tố dự báo có thể giúp giải thích sự biến đổi về việc lệch giờ Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 31/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Biến phụ thuộc: arr_delay Biến độc lập: carrier, origin, dep_delay, distance arr_delay = β0 + β1 × carrierAS + β2 × carrierB6 + β3 × carrierDL + β4 × carrierF 9 + ... + β10 × carrierW N + β11 × soriginSEA + β12 × depdelay + β13 × distance Ta thực hiện ước lượng các hệ số βi , i=0,...,13, dựa trên tệp tin new_DF2 Code R và kết quả khi xây dựng mô hình hồi quy tuyến tính lm_model_1 lm_model_1<-lm(arr_delay~carrier+origin+dep_delay+distance,new_DF2) # xay dung mo hinh hoi quy tuyenh tinh summary(lm_model_1) #tom tat ket qua mo hinh hoi quy Nhận xét: từ kết quả phân tích, ta thu được c0 = −2.750e − 01; β c1 = 6.322e − 01; β c2 = 7.521e − 02; β c3 = −8.403e − 01; β c4 = 2.068e + 00; β c5 = β c c c c c 6.628e + 00; β6 = 1.858e − 01; β7 = −3.494e + 00; β8 = 1.160e − 01; β9 = −2.075e + 00; β10 = c c −2.890e + 00; βc 11 = 3.192e − 01; β12 = 9.965e − 01; β13 = −2.684e − 03 Như vậy, đường thẳng hồi quy ước lượng cho bởi phương trình sau: Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 32/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh d arr_delay = −2.750e − 01 + 6.322e − 01 × carrierAS + 7.521e − 02 × carrierB6 + −8.403e − 01 × carrierDL + 2.068e + 00 × carrierF 9 + ... + −2.890e + 00 × carrierW N + 3.192e − 01 × originSEA + 9.965e − 01 × arr_delay + −2.684e − 03 × distance 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) + Pr(>|t|) của các hệ số ứng với biến carrierB6, carrierOO, carrierUS lớn hơn mức ý nghĩa α = 0.05 nên ta chưa đủ cơ sở để bác bỏ giả thuyết H0. Do đó hệ số ứng với các biến này không có ý nghĩa với mô hình hồi quy ta xây dựng. Ta có thể cân nhắc việc loại bỏ các biến này ra khỏi mô hình. Ta xây dựng mô hình 2: là mô hình loại bỏ biến carrier Code R và kết quả khi xây dựng mô hình hồi quy tuyến tính lm_model_2 lm_model_2<-lm(arr_delay~origin+dep_delay+distance,new_DF2) # xay dung mo hinh hoi quy tuyen tinh summary(lm_model_2) #tom tat ket qua mo hinh hoi quy Ta so sánh các mô hình 1 và mô hình 2 Code R và kết quả khi so sánh 2 mô hình lm_model_1 và lm_model_2 anova(lm_model_1,lm_model_2) #so sanh mo hinh 1 va mo hinh 2 Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 33/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét: Dựa trên việc so sánh 2 mô hình, ta thấy p - value < 2.2e - 16 rất bé so với mức ý nghĩa α = 0.05 nên ta bác bỏ giả thuyết H0, ta có thể kết luận 2 mô hình hiệu quả khác nhau. Mặt khác dựa vào hệ số xác định hiệu chỉnh ở mô hình 1 (AdjustedR - squared = 0.8577) cao hơn so với mô hình 2 (AdjustedR - squared = 0.8548), chứng tỏ sự biến thiên của biến arr_delay được giải thích nhiều hơn bởi các biến độc lập. Như vậy mô hình 1 là mô hình hiệu quả hơn mô hình 2. Phân tích sự tác động của các nhân tố lên việc lệch giờ đến: Như vậy mô hình hồi quy tuyến tính về ảnh hưởng của các nhân tố lên việc lệch giờ đến được cho bởi: d arr_delay = −2.750e − 01 + 6.322e − 01 × carrierAS + 7.521e − 02 × carrierB6 + −8.403e − 01 × carrierDL + 2.068e+00×carrierF 9+...+−2.890e+00×carrierW N +3.192e−01×originSEA+9.965e−01×dep_delay+ −2.684e − 03 × distance Trước hết, ta thấy rằng p - value tương ứng với thống kê F bé hơn 2.2e - 16, có ý nghĩa rất cao. Điều này chỉ ra rằng, ít nhất một biến dự báo trong mô hình có ý nghĩa giải thích rất cao đến việc lệch giờ đến arr_delay Để xét ảnh hưởng cụ thể của từng biến độc lập, ta xét trọng số (hệ số βi ) và p - value tương ứng. Ta thấy rằng p - value tương ứng với các biến carrierHA, carrierVX, carrierWN, dep_delay, distance bé hơn 2e - 16, điều này nói lên rằng ảnh hưởng của các biến này có ý nghĩa rất cao lên việc lệch giờ đến arr_delay. 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 arr_delay 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ể,βc 12 = 9.965e-01 thì khi chênh lệch giữa giờ bay tăng 1 phút ta có thể kỳ vọng chênh lệch giữa giờ đến sẽ tăng lên 9.965e - 01 phút (giả sử rằng các biến dự báo khác không đổi). Vớiβc 13 = -2.684e-03 thì khi khoảng cách giữa 2 sân bay tăng tăng 1 dặm, ta có thể kỳ vọng chênh lệch giờ đến sẽ giảm -2.684e - 03 phút (giả sử rằng các biến dự báo khác không đổi). Hệ số R2 hiệu chỉnh bằng 0.8577 nghĩa là 85.77% sự biến thiên trong việc lệch giờ đến được giải thích bởi các biến các biến độc lập. Kiểm tra các giả định của mô hình Nhắc lại các giả định của mô hình hồi quy: Yi = β0 + β1 .X1 + .. + βi .Xi + εi , i = 1, ..., n. + 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ố: εi N (0, σ 2 ) + Các sai số ε1 , ..., εn thì độc lập với nhau. Ta thực hiện phân tích thặng dư để kiểm tra các giả định của mô hình: Code R và kết quả khi vẽ đồ thị phân tích thặng dư để kiếm tra các giả định của mô hình par(mfrow = c(2,2)) plot(lm_model_1) # ve cac do thi phan tich thang du kiem tra cac gia dinh Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 34/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét: - Đồ thị thứ 1 (Residuals vs Fitted) biểu diễn các giá trị phần dư của mô hình theo các giá trị biến phụ thuộc ước lượng từ mô hình. Đồ thị này cho thấy các giá trị phần dư tập trung quanh đường Residuals = 0 nên mô hình có thể xem là tạm chấp nhận được. – Đồ thị Normal Q-Q vẽ giá trị phần dư và giá trị kì vọng dựa vào phân phối chuẩn. Chúng ta thấy các số phần dư tập trung gần các giá trị trên đường chuẩn, do đó mô hình có thể xem là chấp nhận được - Đồ 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 cũng bị vi phạm. Ta thấy sự vi phạm này có thể do có quá nhiều sai số. + Đồ thị thứ 4 chỉ ra có các quan trắc thứ 52723, 55299 và 120906 có thể là các điểm có ảnh hưởng Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 35/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 4 Kết Luận Đối với các dữ liệu lớn, R là một công cụ hữu dụng, giúp giảm thời gian và chi phí tính toán rất nhiều. Việc tìm hiểu ngôn ngữ R là một điều cần thiết trong thời đại khoa học dữ liệu phát triển mạnh mẽ hiện nay, nhằm để cải thiện và nâng cao chất lượng cuộc sống của xã hội. Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 36/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh 5 HĐ riêng 5.1 5.1.1 Dẫn Nhập Tổng quan về tập dữ liệu Ở phần riêng chúng em sẽ thực hiện thống kê làm rõ dữ liệu và mô hình hóa dữ liệu trên tập tin SkillCraft1_Dataset.csv. Nguồn dữ liệu được lấy từ trang Machine Learning Repository - một trang web chứa rất nhiều dataset phục vụ cho nghiên cứu về trí tuệ nhân tạo cụ thể là về Machine Learning. Sơ lược về tập dữ liệu này, đây là dữ liệu được tổng hợp lại và phân tích dựa trên quá trình người chơi tham gia chơi tựa game StarCraft. Tập bao gồm 20 cột chứa các thông tin như số tuổi người chơi (Age), tổng thời gian chơi (TotalHours), trình độ người chơi (LeagueIndex), và rất nhiều thông số liên quan đến tốc độ xử lí trong game. 5.1.2 Hướng xử lí dữ liệu Cũng như ở phần trên nhóm sẽ làm các bước như sau : • Đọc vào dữ liệu • Làm sạch dữ liệu • Làm rõ dữ liệu • Sử dụng mô hình hồi quy tuyến tính để phân tích các yếu tổ ảnh hưởng đến tốc độ xử lí khi chơi game. Ở đây nhóm sẽ sử dụng biến APM (Action Per Minute) để xét tốc độ xử lí của các người chơi 5.2 5.2.1 Thực Hiện Đọc vào dữ liệu Để sử dụng lệnh read.csv ta cần install thư viện readr. library(readr) Skill_Craft <-read.csv("E:/Download/SkillCraft1_Dataset.csv") 5.2.2 Làm sạch dữ liệu Vì file data có rất nhiều biến nên nhóm quyết định chỉ lấy những biến chính để khảo sát. Những biến được khảo sát là: LeagueIndex, Age, TotalHours và APM. Sử dụng câu lệnh : SkillCraft<- Skill_Craft[,c("LeagueIndex","Age","TotalHours", "APM")] Tạo ra data frame mới có tên SkillCraft chỉ chứa các cột là biến chúng ta quan tâm Tiếp đến chúng ta sẽ tìm các dữ liệu Na để xử lí. Tuy nhiên trong dataset này không sử dụng kí hiệu Na mà lại dùng dấu ’ ?’. Thế nên ta sẽ thay các giá trị là ’ ?’ thành NA rồi in ra số giá trị Na của từng cột Sử dụng lệnh: SkillCraft$LeagueIndex[SkillCraft$LeagueIndex == "?"]<-NA #Thay Thế ? là NA SkillCraft$Age[SkillCraft$Age == "?"]<-NA SkillCraft$TotalHours[SkillCraft$TotalHours == "?"]<-NA Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 37/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh SkillCraft$APM[SkillCraft$APM == "?"]<-NA apply(is.na(SkillCraft), 2, sum) #tong hop Na Kết quả cho thầy các biến Age và TotalHours có lần lượt là 55 và 57 giá trị Na. Vì số lượng chiếm không nhiều 3% nên nhóm quyết định xóa ra khỏi data frame. SkillCraft<-na.omit(SkillCraft) apply(is.na(SkillCraft), 2, sum) Kiếm tra kiểu dữ liệu nhóm thấy rằng biến Age và TotalHours đang ở kiểu char do đó cần phải được chuyển sang kiểu num để có thể phân tích tiếp str(SkillCraft) SkillCraft$Age<-as.numeric(SkillCraft$Age) SkillCraft$TotalHours<-as.numeric(SkillCraft$TotalHours) str(SkillCraft) Tiếp đến ta cần khảo sát và xử lí những giá trị outlier. Khi kiểm tra outliers của biến TotalHours nhóm nhận thấy có những giá trị quá cao như 1 000 000, 25 000, 20 000, 18 000, ... là số giờ chơi của người chơi. Nhận thấy đây là những con số bất hợp lí nhóm quyết định xóa ra khỏi data frame những số lớn hơn 5000 giờ ( 208 ngày chơi liên tục) boxplot(SkillCraft$TotalHours, horizontal = TRUE) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 38/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh boxplot(SkillCraft$TotalHours, main = "So gio choi",horizontal = TRUE) SkillCraft <- subset(SkillCraft, TotalHours < 5000) boxplot(SkillCraft$TotalHours, main = "So gio choi",horizontal = TRUE) 5.2.3 Mô tả dữ liệu Dùng lệnh summary để xem được mô tả dữ liệu đầy đủ summary(SkillCraft) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 39/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Nhận xét: • Số người chơi có bậc rank là 4 chiếm nhiều nhất • Đa phần người chơi ở lứa tuổi 21, người chơi có tuổi cao nhất là 44 và độ tuổi nhỏ nhất chơi tựa game này là 16 • Đa phần người chơi dành hơn 600 giờ để chơi game, người chơi game ít nhất chỉ là 3 tiếng và người chơi nhiều nhất là 4000 tiếng • Đa số người chơi có tốc độ xử lí trong game là 114 hành động trên phút, người thấp nhất là 22 và cao nhất là 389 5.2.4 Xây dựng mô hình hồi quy tuyến tính Dùng lệnh pairs để vẽ biểu đồ tương quan giữa các biến pairs(SkillCraft) Theo biểu đồ tương quan ta thấy các biến đều có sự phụ thuộc vào nhau Sử dụng rcorr (thuộc thư viện Hmisc) để đưa ra ma trận tương quan và mức ý nghĩa của các yếu tố với nhau rcorr(as.matrix(SkillCraft)) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 40/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Từ ma trận tương quan ta thấy các chỉ sổ đều nằm trong khoảng từ -1 đến 1 và bảng giá trị P tất cả các giá trị đều nhỏ hơn 0.05 tức là các yếu tố đều có ý nghĩa thống kê Xây dựng mô hình hồi quy Chia dữ liệu thành 2 phần (sử dụng thư viện caTools): • 2/3 số lượng dữ liệu để xây dựng mô hình • 1/3 số lượng dữ liệu để kiểm định lại mô hình set.seed(123) split = sample.split(SkillCraft$APM, SplitRatio = 2/3) Vì hàm sample.split() là một hàm ngẫu nhiên nên phải sử dụng set.seed để tránh sự khác nhau dữ các máy khi xài cùng đoạn code này Tách mẫu ban đầu thành 2 mẫu: xây dựng và kiểm định xaydung = subset(SkillCraft, split == TRUE) kiemdinh = subset(SkillCraft, split == FALSE) Xây dựng mô hình Dùng mẫu xây dựng đã tạo và hàm lm() để xây dựng mô hình cho biến APM dựa vào các biến khác trong mẫu moHinh = lm(APM~ ., data = xaydung) summary(moHinh) Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 41/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Ý nghĩa của bảng số summary • Estimate: Hệ số Beta của mô hình hồi quy • Std. Error: Độ lệch chuẩn ước lượng của hệ số Beta tương ứng • t value = Estimate/Std. Error: giá trị t trong kiểm định giả thiết Nếu t có giá trị tuyệt đối lớn hơn giá trị tới hạn thì hệ số beta có ý nghĩa thống kê • Pr(>|t|): giá trị p-value trong kiểm định H0 : Beta = 0, H1 : Beta ̸= 0 Bên cạnh các hàng yếu tố bảng số có những dấu "*" tức là các yếu tố đó mang ý nghĩa thống kê. Trong trường hợp này tất cả các yếu tố có trong mô hình đều mang ý nghĩa (giống với kết luận phía trên) R2 của mô hình bằng 0.4214 Tìm R2 của dự báo theo mẫu kiểm định dubao_kiemdinh = predict(moHinh, kiemdinh) RSS_kiemdinh = sum((dubao_kiemdinh - kiemdinh$APM)^2) TSS_kiemdinh = sum((mean(xaydung$APM)-kiemdinh$APM)^2) R2_kiemdinh = 1- RSS_kiemdinh/TSS_kiemdinh Tìm được R2 của dự báo theo mẫu kiểm định là 0.4106 xấp xỉ với R2 của mô hình suy ra mô hình không bị overfitting Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 42/ 43 lOMoARcPSD|12836001 Trường Đại Học Bách Khoa Đại học quốc gia tp Hồ Chí Minh Tài liệu [1] https://libguides.library.kent.edu/spss/onewayanova [2] https://phantichspss.com/phan-tich-phuong-sai-mot-yeu-to-anova.html [3] https://bnc.edu.vn/upload/download/6010_bai-giang_mon-thong-ke_chuong-1_130_2.pdf Bài tập lớn môn Xác xuất thống kê - Niên khóa 2021-2022 Downloaded by Bu Bu (alobudaydayday@gmail.com) Trang 43/ 43